Within a distributed development model, team members physically located in different places—work collaboratively to complete project deliverables. With the right approach, a distributed development team can avoid or overcome common challenges and become a high performing team that enjoys working together to deliver business value. They need to collaborate and work on common principles and values, failing which can lead to low productivity and quality. Based on my experience, the following are best practices for distributed development teams, particularly those utilizing agile and scrum methodologies. Some of them might be relevant to collocated teams, but play a bigger role in distributed teams. Run a camp to build relation – This is a common saying – Either spend on travel or spend on dealing with low productivity – Idea of this camp is to bring people together and encourage participation, this can be kick-off meetings or inception of project. I find PI Planning meeting bringing this thought to reality. Designate a leader at each worksite – This could be super scrum master or one who can take care of all the teams. This leader serve as a single point of contact and represent the needs of the local team so that the entire team doesn’t get pulled into every meeting, email thread, or instant message conversation. In this way, the lead will streamline communication and ensure the team has the support and guidance they need to keep focused and stay on track. In short, a go to person, who is responsible for resolving all impediments and dependencies local team has from distributed teams. Use Tools - It doesn't matter if it is an Agile or non-Agile model -- communication and collaboration can make or break any mission. Though realizing this does not require much effort in collocated Agile, in distributed Agile it requires a dedicated arrangement. A typical case would include facilitating an effective communication channel across the globe with the help of superior audio and video conferencing systems and collaboration tools that can substitute whiteboards and sticky notes. Therefore, it is vital for every organization to invest in setting up the necessary infrastructure to promote seamless communication and collaboration across the remote teams. Some recommended tools are hangout tools, slack, Mind Mapping, Online Whiteboard etc. Build a culture – Culture has different meaning in different context. Here I mean culture if good IT practices and soft skills. The engineering best practices, or the engineering culture, encompasses project architecture, choice of tools and technology, coding standards, etc. which should be agreed by teams. One of the recommended hybrid approach here is pair programming. Twist is rather than doing pairing of people in same location, do cross location pairing. This creates cross pollination. They learn each other coding style, understand each other and brings everyone on same page. Make sure that the members of remote team are never treated like “helpers” for the team members in the “main” location. If remote team members feel like hired hands rather than full team members, they may have less commitment to the project. Other way is In a daily developer scrum, developers meet briefly to collaborate on technical issues or approaches. This practice fosters code sharing and re-usability, and it usually results in greater team bonding. Uniform work distribution – Work should be assigned based on skill, capacity, and overall release or sprint goals. It is important to make sure each team member is given ownership of a feature or component of the solution so everyone on the team feels accountable for the success of the project regardless of their location. Ensure capacity calculation and allocation is checked as part of sprint planning activity. Also have SWAT(Subjective Workload Assessment Technique) analysis done. Agile Workshops - there is no doubt that workshops play an important role in building understanding, teaching key concepts, and practicing the theories. Even after starting the program with a brilliant workshop, the learning obtained and the memories can fade due to the mere passage of time. To re energize the team about the Agile culture, periodic Agile workshops are important. Cultivate Commitment to Quality and Delivery - Not everyone understands the importance of quality and delivery. Make sure to educate your team members about the level of quality and the delivery requirements you expect for every project. Constantly look for ways to improve quality and to reward people who demonstrate an eye for quality and are willing to take ownership of and responsibility for a project end to end. Based on my experience working with distributed teams over multiple years, as well as collaborating with others who have had similar experiences, I've found that acceptance of these practices will set the stage for building an effective distributed Agile team.