Note: This blog post is based on a recent OutSystems Webinar discussing best practices for distributed Agile teams. I facilitated the session with my colleagues Trevor Hosch, Cari Mackay, and Goncalo Santos whose input is the basis for this article.
The COVID-19 pandemic is seriously testing our true agility.
Many of us working in Agile teams probably ended 2019 feeling great about our progress toward greater Agile maturity. We have a deep understanding of Agile principles and adapted them to maximize our team’s output. Then, depending on where you live in the world, in early 2020, the COVID-19 pandemic turned our worlds upside down.
We all know that co-location is a key point in the Agile Manifesto. Co-located work is also a widely accepted best practice for creative endeavors like digital product development and creating great software applications.
For some Agile teams, agility is directly tied to working in one physical location. In cases of Agile teams used to enjoying the benefits of co-located work, adapting to the physical isolation of remote work is especially challenging.
How to Make Distributed Agile Work
During this period of great change, pay close attention to team happiness, collaboration, productivity, and, of course, client satisfaction. Pay close attention to changes in your Team’s attitude and agility which may impact your overall performance.
Whether you are transitioning from working as a co-located team or you are experienced working remotely, you can improve your performance and productivity by adopting the following best practices for distributed Agile teams.
Teamwork and Collaboration
When defining how best to help your Agile team adapt to working remotely, start by focusing on how you will communicate and collaborate.
A critical first step is to ensure you have the right tools and practices for those tools in place. For example, it can be helpful to discuss and agree on when and why to use various tools like email, instant messaging, and video conferencing. Consistency across your team should provide more efficient and effective communication.
Even the most introverted of us have a need for social interaction. As a result, it’s really important to make sure we work together as real people, not just names in instant messaging. Encourage (require) your team to turn on their video during team meetings. Encourage them to communicate via video conferencing which creates a more personal connection and provides more nuanced feedback in our communication.
Where possible and appropriate, leave time for the team to lighten the mood away and make some personal connections by talking about non-work related topics like fitness, pets, music, books, travel (when we can again), etc. The COVID-19 lockdown is stressful for everyone for different reasons; look for ways to connect as individuals rather than just work colleagues.
Even while working remotely, having the right tools and communication should naturally lead to a greater sense of one team and reinforce your team culture. With that foundation in place, you can focus on creating and reinforcing a shared vision. The shared vision is the big picture view of the problems you want to solve, solutions you want to build, and value you want to deliver.
Let the team decide what to include in the shared vision. Encourage the team to include points about collaboration and teamwork in addition to the solution you are building and the problems you are solving. Creating a shared vision in cross-functional and cross-cultural remote teams is a critical foundation for planning and executing your work.
With a strong foundation around communication, collaboration, and vision, the team can focus on how best to execute their day to day work. A good place to start is a discussion about accountability. Working remotely enables the benefits of flexibility and independence, but it’s important to agree upon and reinforce shared expectations about accountability. For some people, working remotely makes it difficult for them to manage their time and stay focused. Ensure that everyone is clear on expectations related to working hours, availability, etc. while giving them time to disconnect from work.
For technical teams and team members, it is especially important to have clearly defined project vision, Agile ceremonies, project timelines, and regular feedback sessions. Developers need to have clear expectations of the requirements and access to business analysts and product owners for frequent collaboration. Focus on ensuring your technical team members are clear about deadlines and dependencies for their work; this is especially important and challenging in a remote work environment.
Throughout this process, leaders should monitor how individual team members are adapting to the new ways of working and provide regular coaching. Also, leaders should be prepared to reconfigure team members and roles as needed to maximize team and individual performance.
Building and Maintaining a Great Product Backlog
Communication, collaboration, and vision need to be put to use building great digital products. High-performing Agile teams can’t start delivering value until they have a high-quality product backlog describing what they want to build.
First, it’s critical at the start of an engagement to ensure the Team has a shared understanding of the process for building and managing a great product backlog. This applies to remote or co-located teams, but be sure to adapt your process to challenges and opportunities of remote teams. Perhaps you will add additional time during Sprint Planning to review the Product Vision or Roadmap. Maybe the Product Owner or a key business sponsor reinforces the goals and value of the engagement to the team.
Second, ensure you have regularly scheduled, mandatory backlog refinement meetings. Because it’s easy to miss informal, spontaneous interaction among team members, it’s essential the team regularly attends and actively participates in backlog refinement. This requires setting clear expectations about how the team should prepare for each session.
Meeting preparation is not enough, however. Be sure to use tools to engage your team during refinement and planning sessions. It’s easy for remote team members to get distracted or bored and work on other things instead of focusing on the backlog. Video conferencing is a must. Using techniques like online planning poker tools, video thumbs up/thumbs down, and having each team member lead a story discussion can help.
When working remotely, teams may find it easy to lose focus on the long-term. In addition to satisfying the immediate needs of sprint planning, Agile teams need to push to keep their backlog full of development ready stories. At a minimum, Agile teams, especially ones working with low-code, should have 2 sprints worth of development ready user stories and more, if possible. A deep backlog is critical to give the team the flexibility to construct sprints with stories across a range of sizes and functions while ensuring developers never run out of stories to build. For Distributed Agile teams, maintaining 2 sprints worth of user stories requires commitment to regularly scheduled, on-going backlog refinement even when you think you have enough.
Leveraging Low-Code for Distributed Agile Development
Remote Agile teams working with low-code have many advantages working in their favor.
Development moves fast with low-code; much faster than high-code. Therefore, Agile teams have to collaborate closely while working fast and efficiently to keep pace. Luckily, low-code platforms natively encourage and facilitate collaboration.
The core visualization tools in low-code platforms make it easy for technical and non-technical colleagues to work together remotely. For example, if a developer has a functional question while they are building a user story they easily walk through the flow in the workflow visualization tool. Compare this to trying to review lines of code in a programming language which the business stakeholder may not understand.
The same scenario applies when QA and development teams are analyzing and resolving defects. Issues are often resolved, republished, and validated in real-time with teams working across the globe. The reduction in cycle time and effort to identify, report, clarify, resolve, and validate issues can have a substantial impact on team velocity and efficiency.
OutSystems Can Help Distributed Agile Teams
For developers working remotely, low-code platforms offer several benefits and advantages over high-code. Low-code platforms, like OutSystems, have a modular architecture by design. This makes it easy for developers to work on separate modules without overlapping each others’ work.
Identifying and resolving dependencies are always a challenge for development teams. When working remotely in a distributed Agile team, managing dependencies is essential to avoid negatively impacting team performance. Fortunately, Agile teams using low-code platforms like OutSystems, dependencies are identified early and developers are required to resolve. This makes it easier for developers to understand dependencies even when they can’t just lean over to the next cube and check with their colleague. In the end, identifying dependencies early, minimizes technical debt from building up resulting in costly rework in later sprints.
In cases where developers need to work on the same modules concurrently, features such as providing version control, comparing code visually, and enabling code merges simplify asynchronous and distributed development work. Simple and continuous code integration with conflict identification and resolution can quickly identify issues when asking the person across the desk is not an option.
Working remotely is the new reality for many of us. For Agile teams unaccustomed to working in a distributed team, the change can be hard. However, by taking a few steps to leverage the significant advantages of remote work, you can further improve your Agile team’s performance. Remember to take time to:
- Ensure you have tools for easy and efficient communication and collaboration,
- Clearly define and reinforce the vision, goals, and requirements for your product, and
- Leverage the advantages of low-code platforms to enable high-performance, distributed Agile teams.
In the end, take advantage of the time you save commuting to exercise, read, or get outside!
To learn more about this topic, take a look at our webinar Agile Best Practices for Remote Teams.