Since the term Distributed Agile became a thing, there has been much debate over its effectiveness. Purists have not been on board, as some feel the concept directly contradicts the Agile Manifesto principle of having face-to-face communication, as well as the presumed directive of Scrum and Extreme Programming for co-location of teams. Regardless of what you believe is the best way to execute, the situation we are all faced with today under the current circumstances demands us to adopt Distributed Agile. If we have not been distributed, we need to be. If we have been distributed and unsuccessful, we need to improve – and quickly. Here are some high-level areas to focus on when taking on this Distributed approach.
Foster the team dynamic – Whether in person or distributed, if you don’t have a cohesive team that works well together, you’re not likely to be successful in reaching established common goals. Focus on team building needs to happen at inception and has to be continuous. Team building can be more challenging when the team is not physically together. Therefore, it is important for teammates to take time to get to know one another. To make the work more personal, look for ways to invite more interaction than just defining and executing tasks.
Compromise to ensure collaboration – Many associate Distributed Agile with having teams in different time zones. In many cases this is true, but regardless, it is essential to have the team as a whole attend/connecting for every pertinent meeting. This may mean making sacrifices in schedule. It is essential that these sacrifices are shared, and that compromise occurs equally. This will help promote the feeling that the team is “all in it together” and that no team member is more important than the other.
Utilize technology to the fullest – There is a plethora of tools out there, not only for organizing the once manual Agile ceremonies and processes, but also for collaboration and communication. The tools you select should not dictate your process, instead they should support the successful processes that you want to follow, or have followed, as an organization. Tool selection should also be based on the full capability of these tools to enhance the collaboration and interaction needed to make Distributed Agile effective. Some of the most popular tools to investigate are video conferencing platforms and online collaboration boards. These tools will help organize communication and work in ways that support a Distributed effort.
Mutual support – Some might ask, “What about leadership”? Designating leadership separates out a group of individuals in an organization or on a team. When we do this, we create a small group to hold responsible for success or failure. What is really needed is for everyone to support one another, because everyone is responsible – team members all the way up through organizational leaders. We need to foster environments that emphasize support and growth, and minimize unnecessary competition and stepping on others to “get ahead”. Teams would be better served by engaging in less finger pointing and taking more collective ownership of both wins and losses. Agile coaches are fantastic resources, but we all need to be coaches for each other to ensure success.
We are faced with a very difficult time in the world right now. The concept of ideal is nothing we can even consider. Regardless of the situation, we must forge through, as a society, a community, and as organizations. How we take on these challenges is critical and a wait and see approach is not an option. As organizations, we must be agile in how we operate and execute in order to remain viable. Distributed Agile is our only option when it comes to software development. Let’s take it on and make it work.