You DiD what?
Is it outsourcing?! Is it team sourcing?! No! It's distributed development!
Dive into the topic of distributed development and get all the information needed to kick-start your project in a distributed development setup.
1. What is it?
Distributed development is a powerful way to carry out project research, development, and realisation across two or more physical locations. The difference between outsourcing and distributed development is that, in a DD setup, all the organisation is working together on the same level with a common goal of realising the project.
2. How does it work?
In the DD setup, there are multiple team members distributed to at least two locations. It's usual for the whole team to meet at one location where they have an opportunity to meet each other in person, meet their clients, stakeholders and get direct contact with all the key members of the project.
Transparency in the team is one of the most important aspects and the key element for creating a one-team feel. All team members should share ideas, experience, information, resources, and decisions.
Team collaboration is internet-based, which means that it uses online tools for daily work such as Skype, email, Jira, Slack, Whiteboard, Retrium, Trello etc.
Organisational tools are remote and co-located pair programming and knowledge sharing sessions. They help to make the team's knowledge base stronger and boost up their confidence and mutual trust to perform as one team.
3. What are the main benefits?
Scalability of the team is close to limitless since it is not dependent on one location. Finding skilled team members as the best expert for the job is easier in DD setup since it creates access to a larger pool of employees. In addition, it helps to keep in close proximity to the market and the customer. Cost benefits are positively affected since it allows a project to hire team members from other locations with lower rates but keeping the same quality of and desired expertise level. DD, with its distributed locations, increases competitiveness on the global market and allows companies to meet growing market interest. Companies have an opportunity to meet new people, travel and exercise knowledge sharing throughout the whole organisation. It also decouples employees and their work from their physical location which means no location boundaries. They can work from home or from any office (across the whole organisation). As the DD setup is the vendor's internal organisation process, there are no overheads for the customer.
4. What are the challenges and how to overcome them?
Language barrier - bilingual
English, as a common language of communication, is one of the best practices for distributed development setups. But as they cover the global market, the most common challenge is the language barrier. This comes mainly from the customer side, which is understandable and realistic. Simply, there are no exclusive conditions that all the business representatives should know how to speak English. This can be solved by using a bilingual approach for all shared resources, better planning and facilitating meetings where there are participants that use different languages for communication.
Different time zones - time management
A DD setup can also work with different time zones. Time planning and management is important, so the team can use the time overlaps in the best possible way as the project progresses. This should be considered at the project's earliest phases.
On-site support - proxy
Projects usually provide on-site production support for customers. This could have limitations if the team is distributed in locations far away from the customer or in other countries, and also from a legal perspective. This is solved by introducing proxy roles within the team that is closest to the customer. This role allows the whole team to be involved and contribute to the production support on their project.
Cultural differences and initial mindset/one-team feel - co-located kick-off, regular visits, distributed sessions and coffee breaks
If the team is distributed between different countries, it is important that they are aware of and understand cultural differences. Also, the initial mindset of one team can be challenging to achieve. It is a key to a very successful distributed team. This mindset can be achieved by a co-located project kick-off, having regular bidirectional visits, and organising distributed sessions for knowledge sharing, pair programming, planning and decision-making. In this way, team members can learn about each other, get to know the cultural differences and, by understanding them, communicate and perform better as one team. Other powerful tools are informal distributed sessions such as distributed coffee breaks. Yes, it's as simple as that: grab a coffee or your beverage of choice, join the group meeting, turn on the camera and have fun - talk with your team members about anything you want :)
5. What can you distribute?
Almost any role that doesn't require close proximity to the customer can be distributed. We have experience of distributing roles such as PO, Scrum master, meeting facilitator, software engineer, QA, SD, UX, DevOps, PM, Agile coaches and many more.
6. What setup do you need for it?
Internet of course, and people :) Infrastructure is an important aspect that needs to be sorted out by having dedicated rooms/places for video conferences, good headsets, and other video and audio equipment. If properly set up, each of your teammates is only a click of a button away. Team spirit and motivation should develop as the project progresses, but there is nothing better than getting the whole team together at one location and defining a good onboarding plan for new members. It is also important to set up online tools and do all the necessary preparation (accounts, spaces, licenses etc.) at the earliest possible stage.
After all is said and done, with good preparation following the above guidelines, distributed development can be a very powerful asset to the company and a very fun and efficient way to run projects.
By Marko Ivanović
- Distributed development introduction Short blog about kick start of Zühlke distributed development setup with Belgrade office
- Managing distributed development Blog post about distributed development from a project managing point of view