In the last twenty years, the agile approach to digital engineering has become the accepted standard for developing and delivering digital initiatives. The agile movement has centered around cross-functional teams, smaller workgroups, flexibility, collaboration, trust, and the delivery of incremental improvements from its earliest days. When the Agile Manifesto was published in 2001, the world of work looked very different from the workplace, most of us would recognize today. While agile doesn’t explicitly mandate co-workers to be co-located, there’s an underlying assumption that collaboration, trust, and brainstorming work best when people can reliably meet physically. In the intervening decades, the world of work has moved in the opposite direction. Distributed environments have become increasingly common, which means practicing agile involves factoring different office locations, time zones, countries, and continents into the workflow.
We get a lot of practice at distributed agile at Infostretch: our own teams are dispersed across three continents and multiple offices. When asked, our customers highlight the level of skills they encounter, the quality of the people and the successful outcomes that they enable. Finetuning our working processes, policies, behavior, and habits to fit a distributed agile model isn’t just good business; it also makes for a better work culture.
Here are ten tips and tricks we’ve learnt along the way to ensure organizations stays agile in a distributed environment:
- Pin down the strengths and challenges in your particular environment – Distributed teams vary a lot. It matters which roles are co-located and which ones are distributed, so a distributed agile model that worked for one team may not fit the distribution of another. With each engagement, it is important to examine the size and complexity of the team and project. For instance, how many locations and time zones are involved? Is the majority of the team co-located with only a few distributed workers, or is the distribution evenly spread?
- Build better teams – Talent, skills, availability and of course the scope of work all dictate how teams are constructed. Creating the perfect match is possible if you are careful about how you assign roles. For instance, features-based work is often easier to fit into a distributed working model, rather than more horizontal tasks. Recognize which team members need to work most closely. That might mean product owners being co-located with the dev team, while some roles might need to be juggled or swapped to ensure efficient team working. Other, softer skills are also important, so aside from core technical expertise, consider the person’s motivation levels and if they can build trust or promote collaboration.
- Mapping workflows – Related to how teams are structured, it’s important to have a clear understanding of how the project will run. This means mapping your activity and your goals to the intended workflow. It’s an opportunity to spot any obstacles that would prevent a team from working in an agile way and deal with them. It’s also an opportunity to discuss and gain buy-in from the whole team of the short, mid, and long-term goals and deadlines.
- Communications – Systems of engagement that facilitate communication and collaboration between team members take on new importance when the work is complex and the teams distributed. While application lifecycle management tools can take care of logging a project’s progress, teams also need to be able to discuss, brainstorm, and communicate easily. Collaboration technology comes in many forms (chat platforms, video conferencing, distributed source-code management, etc.). It’s worth experimenting until you find what works, or be guided by what the team already works with. We love Slack and Zoom, though every company has its preferences.
- Keep communications simple – When cities, countries, and time zones, separate team members, cultural and language barriers can turn seemingly minor misunderstandings into major issues. The clarity in communications becomes paramount. In the distributed environment, nuanced comments or office politics can be lost in translation. Instead, prioritize transparency, because this is how you rapidly build trust in distributed teams.
- Teamwork makes the dream work – Trust and respect are the foundations of a high-performing team. It’s a small matter of phrasing, but working as a team rather than with a team can significantly impact team dynamics. Treat team members equally and with consideration. This might mean thinking carefully when scheduling calls to find a time zone that works for everyone, for example.
- Recruit with distributed agile in mind – Distributed agile skills include being highly motivated, a team player, and a clear communicator. Team cohesion is important to great distributed agile practitioners, which means they’ll go above and beyond their own personal scope of work to facilitate the team working as a whole.
- Knowing when to bring teams together physically – Consider in advance when it makes sense to bring team members together in the same location, and budget for it. We often work alongside our clients in their offices because it’s so beneficial for getting us up to speed with all the minutiae of the engagement. Sprints are also an obvious candidate for co-located working, especially at the early stages when team members really need to get to know one another and build trust.
- Work time zones in your favor – If it isn’t practical to meet up, often due to distances or time zones or budget, use the fact that the team is geographically dispersed to your own advantage to create round-the-clock progress. This is also good advice because, without sensible planning, time zones can actually hold up a team as members wait for co-workers in other time zones to start their day before they can progress their own work.
- Set aside team time – With the distributed working of any kind, but especially in software development, there can be a tendency for team members to zone in on their own piece of the puzzle and lose sight of the whole. Agile working relies on cross-functional teams collaborating closely. To improve collaboration and team spirit, we hold regular get-togethers both in person and virtually that enable people to get to know each other. For specific projects, we ensure we set aside time to check-in with team members individually, to offer an opportunity to raise issues or ask questions, and crucially, we listen. Not only does it increase trust and respect between teams, but it also improves outcomes by heading off potential issues before they blow up into problems.
We’ve been practicing agile since the company launched over 16 years ago, and we’re always learning new ways to hone our skills. Distributed agile is an approach that ensures we take the best of agile and map it onto the digital requirements of a new age. If you have a digital challenge, share it with us, and we will solve it for you. Get in touch using the form below.