18F/18f.gsa.gov

View on GitHub
_posts/2016-04-18-the-teams-they-are-a-changin.md

Summary

Maintainability
Test Coverage
---
title: "The teams, they are a changin’"
date: 2016-04-18
authors:
- michael-torres
tags:
- agile
- hub
- communication tools and practices
- how we work
- best practices
excerpt: "To truly harness the power of agile practices, you need a stable
team. But people leave under normal circumstances for a variety of
reasons. While recognizing the need for stable teams, there are things our team does and should do to be resilient in the face of change."
description: "To truly harness the power of agile practices, you need a stable
team. But people leave under normal circumstances for a variety of
reasons. While recognizing the need for stable teams, there are things our team does and should do to be resilient in the face of change."
image:
---

*Business people and developers must work together daily throughout the
project.*
*—* [*Agile Manifesto*](http://www.agilemanifesto.org/)

My team has experienced a lot of change in the past few weeks. We were a
team of seven, and now we’ve been reduced to two. We’re off-boarding
two developers, a content specialist, and the product owner, and we’re
onboarding a new content specialist and another developer. This is a lot
of change to absorb at once.

It has caused disruption, added friction to our delivery schedule, and
caused some frustration amongst team members. Agile practices are
designed to optimize for change; however, the focus of agile practice is
primarily around *external* change:

*Welcome changing requirements, even late in development.* <br/>
*Agile processes harness change for the customer's competitive
advantage.*
*—* [*Agile Manifesto*](http://www.agilemanifesto.org/)

To truly harness the power of agile practices, **you need a stable
team**. But people leave under normal circumstances for a variety of
reasons: maternity, new jobs, retirement, etc. ***While recognizing the
need for stable teams***, there are things our team does and should do
to be resilient in the face of change.

The costs and challenges of team changes
----------------------------------------

Any time a team member leaves or a new one comes on board, there’s a
cost associated with redirecting focus to account for that change. This
adds friction to projects that is not just technical:

-   Off-boarding any existing team members
-   Getting new members up to speed on codebase, product vision, issue backlog, and any research
-   Integrating the new team member and learning how to work with them

All of these translate into dollar costs, and if your project is running
on a tight budget, these costs will affect planning and delivery.
Further, having to manage these costs on a frequent basis can lead to
fatigue, and lower team morale.

Agile optimizes for change — to a point
---------------------------------------

Being agile means that you inherently optimize for change. Our primary
tool for responding to change is agile communication practices. My team
does this in a number of ways:

-   A design studio to go over user research, and together come up with ideas and priorities going forward
-   Bi-weekly meetings to groom our backlog and plan each iteration
-   Regular retrospectives to make sure we’re addressing any process issues that come up

All of these activities create a shared understanding of what we’re
working on and why, and how we go about it. This keeps the team aligned
and makes it much easier to onboard new members.

We want to always ask ourselves “How would I explain what we’re doing to
someone who is new?”, and our daily work produces artifacts that
communicate the status of the project and the history of our decisions.

-   Our **user stories** represent work that needs to be done, but they can also serve as an easy historical record of our work.
-   We use **automated tests** to ensure that any accepted code modification passes the tests. The tests are integral to our daily work so these documents are always kept up to date.
-   We use **vignettes** as a way to express the use cases driving our work. Anyone can read them and quickly get a sense of what we are trying to accomplish.
-   Our **story map and project wikis** contain summaries of the goals, hypotheses, risks and milestones.

Lastly, we try to stay positive in the face of change. Becoming
frustrated unnecessarily takes the focus off of our work, and blocks us
from coping with the change itself. Accepting that some change is
inevitable helps us stay positive and actively optimize our processes to
cope with it, and helps us stay focused on delivery.

In teams without shared understanding and documentation, huge changes
can be devastating. But, agile practices mitigate against this risk; and
the work my team has done should help the new team members get up to
speed much more quickly than they would otherwise.

Get your team ready for change
------------------------------

Agile practices are centered around optimizing for change, because the
world changes. Though stable teams are the goal, teams will change,
sometimes quite frequently. Your team can take steps to account for the
disruption caused by change:

-   Better documentation → better tests → more stable code
-   Frequent communication → shared understanding → building the right thing
-   Staying positive → focus stays on delivery → consistent velocity

Agile techniques can help your team deal with change, but only up to a
point. Stable teams, stable code, and delivering the right thing with
consistent velocity is the goal. Teams should do what they can to
minimize team changes, while also working to minimize the negative
impact of change, because team happiness and productivity go hand in
hand.