Both, companies and employees will have to orient themselves
to this new way of working and it is not going to be easy. Several challenges
will have to be overcome especially in case of Agile teams.
In such a scenario, how does one manage remote Agile teams? Agile
development was originally imagined for clustered teams, or teams physically
located together in the same office.
In keeping with the idea that "the most efficient and
effective method of conveying information to and within a development team is
face-to-face conversation", early agile teams
were meant to work together in close proximity.
some companies that did change because of distributed development teams. But
today, the Covid-19 pandemic is forcing full-time remote work for agile teams
which is contrary to the principles of Agile.
remote only environment presents challenges to the team leaders in managing the
teams and the work.
of the challenges include:
- Coordinating across time zones
- Building rapport when everyone is not in the same office
- Collaborating among different development cultures
- Scheduling meetings or informal conversations when both teams are online at the same time for only a few hours (or less)
these can be addressed and here are some tips and strategies.
to structure global teams
software architecture dictates modular design, so structure your teams the same
office should be self-sufficient in developing a single piece of technology,
which minimizes the amount of collaboration required with teams in other time
zones and makes them generally autonomous.
a project does require teams in different locations to pitch in, they can focus
on their integration points and APIs.
reviews also play an
important role. Since people are online at different times, distributing
knowledge of the code between offices makes support and maintenance much
a production issue emerges when the team is not online, another office can
easily step in to support and resolve the issue, thanks to the know-how they
gained from cross-team or cross-location code reviews.
Agile methodology recognizes
face-to-face communication as the most efficient and effective means to share
ideas. The benefits of sketching on cards or a whiteboard are two-fold —
increasing the level of understanding and decreasing the time it takes to
deliver the message.
Distributed teams must actively work to
avoid falling into communication traps. Encouraging the same close
communication expectations as co-located teams is the key to upholding Agile
process on distributed teams.
Here are some communication strategies
for remote agile teams:
a culture of continuous integration when builds are constantly discussed and
Creating a culture where continuous integration is the
norm is especially valuable on projects with extended timelines or when
managing remote teams.
In this structure, it’s easy to opt for dividing work
for teams along technical boundaries.
These technical boundaries may be divided by
frontend/backend work or even database and services layer/frontend.
Team bandwidth or security might drive the divisions. Resist maintenance
of two source code repositories.
Commit to regular builds, so you don’t prioritize upholding the plan over
It’s easy to produce a giant spec in lieu of
communicating daily with the offshore development team or let distance become a
reason to stay the course and avoid evolving the solution when challenges or
Building on a weekly schedule is good, daily is even
better. Hold your team accountable to submit a change set to the source code
control each time. Then, take advantage of your compiler as a stand-in team
member to ensure your source code has reached or exceeded quality expectations.
Adding smoke tests can move this dial even further.
Embrace the social process of developing custom software.
Most people assume custom software development is a
purely technical process. While it’s true it is a social process first and
relies on trust built between individuals.
Encourage knowledge sharing on every team. This is less
about cataloging processes in a Wiki and more about cultivating this naturally
in daily stand-ups or any time team members give updates.
Encourage your team to share beyond what pertains to
that day’s work. If a team member anticipates something they are working on may
impact another role the next day, call that out.
Once team members master the habit of sharing
meaningful, forward-looking insights to their work, that’s when true knowledge
sharing has been achieved.
Foster close communication between UX designers and business analysts to
accelerate throughput by a factor of two.
Encouraging close collaboration between designers and
business analysts, encouraging extra attention to the graphical interface. This
may mean additional time is spent creating visual artifacts for the technical
team to complement related user stories.
The reward? Less questions related to aesthetics and
fewer iterations created as a result of the mismatched expectations.
Discuss even non-functional requirements.
For teams who are co-located, it’s easy to address
questions around performance and scalability as they arise. Conceptualizing and
documenting requirements with the appropriate level of detail serves as the
link between the business and technical teams.
For distributed teams, understanding non-functional
requirement detail plays an even larger role. Without explicit directions
documented for the technical team, it might result in the creation of an
architecture that makes assumptions about the non-functional requirements
resulting in increased rework, time and spend later.
Managing a distributed team may mean documenting more.
While all Agile teams strive to write “just enough”
requirements, managing a distributed team means accepting “just enough” may
still mean documenting more than would be created for a co-located team.
Distributed team members can’t quickly sketch on a
whiteboard to work through a complex concept. Rather than leaving your
development and testing teams left guessing on the nuances that would otherwise
be delivered verbally, document them and “give the answers” before the test.
By augmenting user stories with test or acceptance
criteria you can set the technical team up for success without drastically
expanding the narrative.
Choose a suite of communication tools for your team that allows for the natural
escalation of communication needs.
When teams are co-located, the level of communication
needed escalates naturally. It might begin with co-workers speaking one-to-one
in the breakroom.
If clarifying details are needed, additional subject
matter experts may be pulled into the conversation. Then, the conversation
shifts from many-to-one or many-to-many, depending on the context.
Maintaining this escalation process is essential to
create outlets for quick answers or more in-depth conversations despite any
distance that may exist between team members.
does it take to succeed with distributed Agile software teams?
No electronic tool or communication strategy can replace
the perseverance of the leaders required to realize their potential. These
leaders must believe Agile can work for distributed teams. If they do, it will.