One of the core principles of Agile is the idea of co-location. This means the development team is all located in the same office, each day they work. That reality is not in sync with the way most of us work. Many companies offer flexible work arrangements, with work from home and remote opportunities. Other companies are seeing outsourcing of development as a means of saving money. How can you make this work with Agile? How do distributed teams work and what are some tips to try out?
1. Use Technology to Your Advantage
Technology makes it possible to work in a distributed environment. We have the technology now with conference calls through both audio and video. Technology like Office 365, Google Drive, Slack, Microsoft Teams, and many more are essential to connecting teams. All of these tools need leveraging to keep the team in sync at all times. The technology exists, so use it to your advantage.
Other technology, such as screen sharing, messaging, and mobile-oriented solutions can keep the lines of communication open at all times. If you want someone to review your code, having a technology base there so you can call that team member, have them consider the code via a screen share, and then move on efficiently is pivotal.
2. Establish Team Norms Early
Development teams need to establish norms whether co-located or distributed. With a distributed team norms are even more critical. You must set things such as testing expectations, code review requirements, as well as documents such as the Definition of Done. Establishing these early with the whole development team present can create consistency.
3. Keep to a Schedule
Keeping a regular schedule is very important for distributed teams. If you have folks in varying time zones, try to make the daily stand-up at a time convenient for everyone. Make sure the whole team can attend the Sprint Planning, Sprint Review, as well as other pivotal Agile events. Where time zones restrict it entirely, use other means such as recording of meetings to keep all in alignment.
4. Receiving Regular Feedback
There is also the potential (and need) for two Scrum Masters to be put in place. Say you had a team in India and a team in the United States. You could have two Scrum Masters, working in tandem across the different time zones. When you have two Scrum Masters, they are the servant leader to the commanding officer, the Product Owner. They talk to each other, make sure they are in sync and their orders match, to drive value. Having two Scrum Masters can help when you have folks on completely different parts of the global map. In an ideal Agile world, each team in each location, even though they are technically the same team, should have its own Scrum Master.
A successful distributed Agile team will deliver quality software, incrementally. They will bring about value in each Sprint and drive towards significant progress. The Agile methodology will not be lost either, as long as you adhere to the tips above. Distributed teams can bring a lot of value when executed correctly. Use the tips above to have your team feel as though they all work in the same office.