Over the last decade, agile project management methodologies have become a generally accepted standard. As of 2015, 91% of companies, represented by respondents of the Hewlett-Packard Development Company, L.P survey, have been practicing at least some agile methods.
At the same time, we can see a global shift to remote work and distributed teams taking place worldwide. For instance, based on the survey by Dell, 77% of organizations have seen an increase in the number of remote workers last year. Moreover, 83% of them expect the numbers to grow again in 2016. Many leading technology companies have distributed teams, e.g. Basecamp (formerly known as 37Signals), Automattic (the team behind the WordPress.com), GitHub, Shopify and Transferwise.
These two trends might seem inconsequential at first. One of the twelve principles behind the Agile Manifesto declares face-to-face communication to be “the most efficient and effective method of conveying information to and within a development team”. However, the advance of technical capabilities allows for an optimal combination of agile practices and benefits of distributed team.
In fact, the latest State of Agile survey by VersionOne Inc. showed that more than 82% of the respondents had at least some distributed teams practicing agile within their organizations. To future-proof your business, tailor your agile processes to the challenges of remote work with these 4 principles.
Core Principles to Follow
Set Up An Efficient Сommunication and Collaboration Process
Agile is all about teamwork. But with UI/UX team working from Australia, engineering staff being located in Europe, and the stakeholders living in the USA, for example, it might be extremely hard to set up proper communication. Yet, there are lots of tools aimed at overcoming these barriers.
The best way to build communication within your team is to take a hybrid approach through blending team members from different locations. You can have the so-called ambassadors visiting remote teams to improve engagement and share the corporate vision among the employees. Or you can set up regular gatherings and have all your team members work together for some time. This, by the way, is a great way to start a new project and ensure smooth interactions from the beginning.
Following Agile methodologies, you need to have regular status and stand-up meetings. You can use Skype, Google Hangouts, GoToMeeting, Join.me or any other video conference tool you like. The key aspect to consider is the time difference. You need to find the time that fits all of your team members to make sure team members stay on the same page.
Instant messaging (Slack or Hipchat seem to be undisputed leaders among corporate IM tools) is often considered a distraction. But it is also a great way to keep in sync with the rest of your team. This informal communication can contribute to the corporate culture and overall team engagement.
Have the Roles and Leadership Clearly Defined
Scrum, one of the most popular agile methodologies, implies specific roles being distributed within a team. Namely, there should be the Scrum Master (usually a project manager), a Product Owner (stakeholder or his representative), and the Team itself (a cross-functional group of people).
The best way to ensure efficient project management within a distributed team is to have a dedicated Scrum Master at every location. This will keep the rest of the team members focused on the project while ensuring constant communication and orderly internal processes.
The product owner’s purpose is to take an active part in the product development by providing timely feedback on the deliverables and being a source of the information about the project. Although, you don’t necessarily have to participate in the daily meetings, you do need to be always available to the team and ready to provide insights when needed.
With agile processes being built on the self-organization within the teams, you need to empower the leadership among your employees. Proactive and motivated engineers are a huge source of insights and ideas. Depending on the cultural differences, this might be a big challenge for some teams. European and American people tend to be more ambitious and free-thinking, and thus can easily take a great deal of responsibility and initiative. Yet, the Asian and Indian teams sometimes struggle with overcoming the deference to superiors that is deeply connected with their culture.
Apply Common Engineering Standards and Practices
Applied to software engineering, agile methodologies rely on a set of technical practices, commonly known as Extreme Programming. Those are Test-Driven Development (TDD), Refactoring, Continuous Integration (CI), and Pair Programming.
TDD serves as a way to ensure the requirements are communicated clearly and the deliverables will meet the expectations. Paired with refactoring, it constitutes the red-green-refactor cycle, allowing for increasingly high software quality and the best possible code design.
Sustainable continuous integration and continuous delivery processes help the teams deliver stable, automated builds consistently and frequently. In conjunction with version control, the CI allows for easy remote source code management. Thus, distributed teams can all have round-the-clock access to the project mainline and contribute to it autonomously.
Pair programming, applied to the distributed team model, has also found a new format. Screen sharing and video calls enable live collaboration when it’s physically impossible for two engineers to gather in one place and have a pair programming session.
Keep the Project Documentation and Artifacts Updated
In order to set up easy onboarding and spread the project knowledge across the teams, you need to keep documentation orderly and up-to-date. In this regard, the so-called agile artifacts – product vision statement, backlog, roadmap, release plan, and sprint backlog – come in handy. Those might not necessarily be actual paper documents – there are plenty of online tools (Google Docs, Excel or OneNote) that serve the purpose equally well.
Many teams use simple wikis to keep and share the general project information. When it comes to tasks and issues, they can be tracked using tools like Jira, Basecamp, Trello or Redmine. They improve the visibility of the project and help you keep track of the progress. Acceptance tests, as mentioned above, can serve as a way to communicate requirements.
Going Global With Agile
With more organizations expanding their R&D centers to remote locations, the distributed agile practices are here to stay. The question is: is it worth the effort to follow this trend?
Distributed team model allows for better flexibility, access to the pool of excellent price-for-value global talent, while keeping administrative cost and effort low. However, it takes time and experience to set up proper distributed agile processes.
In order to keep up with the challenge, make sure to amend your agile routine with modern tools and practices, adhere to the common standards and adapt communication within your team accordingly.