Distributed software development – the hidden benefits and risks
Most software companies eventually reach a point of wanting to grow R&D capacity outside of their original core development centre. The obvious drivers include:
- Improving the cost profile via offshore regions with strong engineering credentials
- Expanding the talent supply pool beyond a competitive local recruitment & retention market
- Proximity to major customer markets
A less obvious benefit of distributed development is its catalytic effect in evolving the development process and culture. We have all seen the scenario of diminishing returns when we add more people into a well established development group. In contrast, when we seek to establish a remote team, the necessary rethink of the status quo can be the most positive outcome for the organisation as a whole. The challenge to comfort zones and established ways of working results in new efficiencies and improved market competitiveness.
Mistakes & Risk Mitigation
Distributed development presents a leadership and management challenge. A typical early mistake is to ignore the initial need for a higher level of communication and clarity in order to compensate for the lack of domain knowledge or corporate memory, and the time or cultural differences.
A bigger ongoing mistake is to retain the remote centre in a traditional outsource mode, offloading well defined lesser problems and getting lumps of code back in return. This completely limits the much greater reward of embracing the tools, communication, and process tweaks that allow a remote team to work in an integrated and fully collaborative manner, unlocking their personal and team contributions to the whole organisation.
When done well, then the original core teams also start to work together more efficiently, refreshing principles such as effective estimation, knowledge sharing and transparency. Dependencies on narrow groups begin to lift, and the leading engineers most at risk of being buried in a silo are among the biggest winners in the organisation.
Providing key engineering leaders with awareness and training in managing distributed site development (half day) will help mitigate potential mistakes. It is obviously essential that these leaders are facilitated and entrusted to take ownership and responsibility for the success of the project.
A softer risk that needs to be addressed is the inevitability of anxiety among some of the team who may worry that “The company is moving engineering “offshore”. Our jobs are going to disappear”.
To address this, we need to be upfront with communication. Transparency is crucial and will alleviate worry. For example, convey clearly if the objective is to secure an additional source of recruitment by establishing a satellite development centre. Share details of the centre such as size, and drive home the fact that headcount will not be reduced at home, and identify other comforts that resonate in your internal culture to alleviate these concerns and stop the rumour mill.
Build from scratch or use a partner?
An important decision is whether to build the remote operation from scratch or to use a software partnering company.
A natural desire to fully own the operation is balanced by the benefits that a partner can offer, including:
- Providing the flexibility to ramp capacity up or down with demand, rather than having another fixed permanent staff base
- Utilising the experience of the partner management team to keep the focus on the technical and process upside of the distributed development challenge
- Removing the admin/legal overhead of establishing a subsidiary, including long office leases and the risks around hiring & keeping the right management & staff
In these respects, it is worth noting that there are significant benefits to partnering with a company that has a strong local engineering presence in the home market together with its offshore capacity.
Sonalake Team Augmentation
In summary, the drivers and benefits of distributed site development are extensive and stretch way beyond the obvious. However there are challenges and risks that need to be mitigated. At Sonalake, we capture this experience, continuously improving our domain expertise to ensure success.
We call this business Team Augmentation. Alongside, and often in unison with our end-to-end Product Development service, we continue to build dedicated teams for clients across verticals including Fintech and Traveltech to increase development capacity while benefiting from our diverse experiences across a variety of traditional and contemporary technologies and tooling methodologies.
If you are considering distributing your development across a number of teams, we would be delighted to share our experiences with you.