Increasing productivity by collaborating with
a remote java
Enterprise Java development case study - introduction
already had an established IT department that supported their infrastructure. Still, new projects demanded an increase in the workforce. However,
due to the local labor market landscape, frequent job-hopping was the norm, especially among the mid- to senior-level IT professionals. Because
of this situation, the client saw severe and persistent productivity drops, rising training costs, and high replacement costs. These challenges were
impacting the client’s profits and were severely reducing their returns. Unable to influence the sentiment of the labor market, the client engaged in
discussions with a remote software development company – they wanted to find a way to expand their IT team and overcome the issue of
Before approaching Shinetech in 2014, the client had already been using the services of a traditional development team. At that time, the client
became increasingly disappointed with their traditional outsourcing approach based on the waterfall methodology. The client needed to spend the
same amount of management as well as development efforts but saw no actual results. It was imperative to change to a modern, self-
management remote team – something we at Shinetech specialize in. Also, having seen the practices our experts followed when working with
IKANO (IKEA’s sister company), the client’s IS Director was very comfortable with setting up a trial period and further discussing our cooperation.
At first, we assembled a four-person strong team – three Java development experts and one QA. The client started their one-week free trial with this team. After initially observing what our experts could do, the client initiated the vendor assessment process, which lasted another six weeks. During this process, which consisted of tracking and measuring daily practices, Shinetech experts produced high-quality code and features. Several factors influenced the client’s decision to choose Shinetech as their go-to vendor – high-quality deliverables, adaptable practices, and technical expertise, among others. After this assessment process, Shinetech became the client’s software development partner.
The team then gradually grew to 10 people, so in order to retain high-
level productivity and to have the workflow run smoothly, we
introduced numerous Agile practices, such as:
- Kanban in Jira – a visual work management system to make work transparent and to facilitate the exchange of information among team members.
- Standup Meeting – efficient short daily sessions that focus on sharing work updates, discussing challenges and coming up with a way to overcome these challenges.
- Pomodoro Technique – our developers began following this personal time management approach so as to prioritize the tasks and have the most substantial work impact.
- Frequent code reviews – to increase code quality and to understand various parts of the system.
- Retrospective meetings – done after every development sprint, these meetings have a purpose of revealing and eradicating iteration flaws noticed in the sprint. In turn, we saw a massive efficiency boost after each session.
attention we paid to code quality, design patterns, and automation. The client was delighted with the high delivery standards of our software and
our methods. They agreed to further enlarge the team – from 10 people to 30-person strong team. The team had dedicated BAs, QAs, full-stack
developers, frontend and backend developers, and DevOps experts, to name a few. The Shinetech team was slowly becoming incorporated within
the client’s in-house IT team. Naturally, we set up frequent onsite trips for further tech training and discussing new requirements.
The bigger the team – the bigger the challenges
Even though we had all the Java technical expertise (you can see our full Java tech stack here), we encountered numerous management challenges we needed to address. With such team enlargement, some of the amazing Agile practices that apply to smaller teams were very hard to run within 30 people. Other methods became inefficient while the rest took a long time to implement (just imagine having a Standup meeting with 30 people!)
Moreover, the team members started to lose initiative. New members couldn’t learn the ins and outs of the client’s business well, knowledge sharing practices were deteriorating, and continuing education – which allows developers to stay on top of the latest industry practices – was becoming very hard to push. This situation resulted in far fewer internal promotions, less personal development and growth, and team members’ happiness. The whole situation brought significant fatigue to the entire team, and it was evident on the client’s side in deliver quality drops and reduced productivity. This kind of service was not what Shinetech wanted to provide. The situation needed to change urgently; otherwise, we would risk becoming just another outsourcing company. Therefore, we set out to solve the issue together with the client. We organized our plan of action in four steps.
- The first step was to split the big Java team to 5 small teams, and each team had 5 – 6 members.
- Second – make sure each small team was fully functional and more focused on an individual product.
- Third, introduce the Scaled Agile Framework (or SAFe). This framework was essential in the sense that it allowed large teams to remain agile: all small teams were entirely in sync with each other and working towards a common goal. To illustrate this team synchronization: when the tools design team needs material specifications, the eCommerce team helps by introducing different materials and building the interface for them.
- Fourth, set up a permanent team onsite that operates from Wisconsin offices, at the client’s HQ location – a BA, a tech lead, and a team lead. This step helped with daily communication and information exchange between Shinetech teams and the client.
regained confidence over time and at their own pace. Also, each developer was able to get more in-depth business knowledge by focusing on one
product – we were able to streamline the learning process for all members. Consequently, each development release was increasingly more
focused on the values the product brought to the client. Being able to receive proper technical knowledge and gain a deep understanding of
the client’s business was a prerequisite for professional growth, and our developers were now ready to get promoted from intermediate to senior
After overcoming the organizational challenges that occurred when the Java team began to expand, the developers have been able to grow and
obtain specific in-depth knowledge. Professional growth has resulted in
building great releases, which, in turn, landed new promotions for the
developers. By becoming promoted, the team received the necessary
morale boosts which have propelled them to learn more about the
client’s business logic and to make an effort to further contribute to
And, in order to see the productivity increase further, we first needed
to create an environment where each team member’s effort and work
were appreciated. That is why we kept the teams small and agile. This
way, the team members were able to progress in their positions, get
promoted, and take on more responsibilities.
- Main eCommerce website,
- Partners website,
- Store Supplies Catalog bid product.
- Online bid product.
- Online garage design and fence design tools.
Shinetech Software are happy that we have been able to provide a
stable, reliable, and skillful development team to complement the