This post is the third part of a series on setting up and scaling a distributed development team and addresses various phases involved in setting up a distributed team from its inception to success.
Defining a proper set of objectives for the various phases of the distributed team model helps in setting goals and managing expectations of all the involved stake holders.
From a Software Product Development and associated services stand point, the distributed team team could help in:
- Extending the Product Development stream (Release and Research initiatives)
- Extending the Product Engineering stream (Support and Maintenance)
- Extending the Service Delivery stream (Custom Software and Project based delivery)
Each of the above streams involves a different mix of technical skill(s) and experience background to provide the needed jump-start in the initial phase and also sustaining the setup in its journey to subsequent phases.
Key points to remember for the sustenance and success of the team:
- To limit the number of variables at play, it is advisable to agree on the various work processes and workflows that will be used in the distributed team model.
- With the team in its nascent stage, experimenting on processes may add further stress in stabilizing the operations. The existing set of work procedures have proven fit and have undergone the needed refinement over the period and are best fit for roll-out in the new unit. Established practices help in gaining momentum and can be adopted to suit the needs of specific team constructions and/or other aspects of distributed team development.
- To get a good jump start, it is highly advisable to recruit a good number of senior professionals who possess atleast medium level experience. However as the distributed team embeds itself into the organization and moves into the stabilization phase, it is good to get a fair mix between senior, medium and junior profiles across the various functions to ensure that a majority of the members have a clear growth path in the organization. Not everyone on board will retire in the current organization :). Identifying key members and grooming appropriate members to pick up the various operational and leadership roles is a critical component of the stabilization phase to create a sustainable organization.
- Knowledge management is another crucial aspect to manage effectively. It is important that no knowledge gaps or impact on work continuity occur when certain members leave the project.
- The distribution of work across the two sides must also be balanced in terms of mundane/routine and challenging/interesting nature.
Living with the idea that the counterparts on the other side get to do all the new/interesting work will surely hamper the motivation of the smart workforce that we hired :).
Of course it must be noted that, it is not before the distributed team builds up the required level of knowledge on the various technology and functional aspects that these aspirations can be met. Working in collaboration with the parent team over a period of time should give the distributed team enough leverage to function independently on the stable aspects of work before aiming for more leading edge nature of work.
- Matching the interests/expectations of a mixed workforce is not practical. However, it is crucial to be able to retain the critical mass to ensure work continuity, required level of knowledge retention and sustainable capacity. The crucial factor then is to prepare for a certain level of churn out and its impact on knowledge and capacity.
- After the strategic phase of narrowing down to having a distributed team, there are a number of operational elements that need to be managed in a timely manner to shape up the distributed team to match its vision, get it embedded in the parent organization and collaborate and contribute to success.
- In this series, I have drawn the above observations having worked closely in setting up and running both captive and hosted offshore development setups over the course of last seven years. I have tried to touch upon various elements at play from the operational aspects of establishing and managing a distributed team.
Rajaram Parimi has over 15 years of experience in Software R&D, Consulting. All these years he has been part of distributed development setups of major European software companies. He is been participating in Agile development since 2006 and successfully embedding Agile concepts and strategies in the various growth phases across multiple software development companies. In his last assignment he has successfully set up an offshore software development centre in Hyderabad, India for a major Dutch ISV and scaling it to a size of 50+ people and grooming the next level of agile leaders.