When Agile was first developed in the 1970s, no one intended for teams to work remotely. Today, Agile development teams are not only remote, they’re thriving. Advancements in technology have enabled near-flawless communication across borders and time zones, allowing development and delivery teams to adapt the way they work.
What is Distributed Agile?
Distributed Agile simply means that an engineering team using Agile methodologies is not all sitting in the same office. Distributed projects are separated by either distance, time zone, or culture.
Scarcity of Technical Talent
Finding technical talent is a problem for all companies—regardless of geography. Innovative companies cannot staff engineers fast enough. In the U.S., the scarcity of technical talent is at an all-time high. The unemployment rate for software developers was just 1.9% in 2017, down from 4 percent in 2011.
Graph by Bloomberg Technology
All companies must evaluate how to best recruit, train, and retain technical talent, and will need to consider multiple channels.
Distributed Agile is both a solution to scarcity and a new reality for how teams build software. We’re in a new era of engineering; the rise of distributed Agile teams has corresponded with the decline of the waterfall approach. In an Agile approach, teams care more about real-time decision making and collaboration.
Companies make the decision to source distributed talent based on urgency, frequency, and long-term need. The primary considerations for any distributed team are proximity, time zone overlap, and cultural similarities.
What Makes Distributed Development Appealing?
- Specialized Talent – More and more companies have to travel to find developers with specialized skills in technologies such as AI, blockchain, and cybersecurity.
- Cost differentials – Businesses are increasingly tapping into the talent pool in burgeoning tech hubs like Mexico and Eastern Europe.
- Global Presence – Global clients demand flexibility. Having a distributed team allows organizations to offer their services around the clock.
How to Successfully Implement Distributed Agile
Focus on building unity. Achieving a united development culture entails overcommunicating and finding opportunities to build rapport across teams. Building trust between offices helps organization and morale. Leverage open text and voice channels like Slack. Prioritize face to face communication with regular video conferencing and visits to remote offices when possible.
Conduct daily stand-ups. Daily check-ins between teams keep projects on time. It also ensures bugs, hiccups, and miscommunications are caught earlier in development. Schedule stand-ups at a time that works for everyone on the project. When that’s not possible, focus on finding the right tools and communication mechanisms to be agile—loosely coupled architecture, empowered teams, and “fail fast” mentality.
Eliminate ambiguity. It’s important to clearly define when projects are considered done or complete. This eliminates any ambiguity and ensures everyone is on the same page. Does complete mean code has been written, reviewed, and merged? How are bugs reported? Define these things early on.
For companies with distributed offices like Wizeline, the reality is that every team works remotely. Every team in the organization needs to adapt, learn how to share work between offices, communicate effectively, and grow a consistent culture across geographies—not just the developers. A good work culture is one that doesn’t make the remote offices conform to the headquarters’ culture. It is one in which every office can learn something from the others.
Adapting to a new methodology takes commitment and investment, even when everyone agrees on its value. Wizeline consults with companies of all sizes on how they can implement Agile best practices within their organizations. Reach out to us if you’d like to see Distributed Agile in action.