The best agile software development teams are those that have stayed together through multiple projects. Those teams have time to grow, evolve and adapt. It takes time. Greatness doesn’t just happen; it takes practice.
Unfortunately, software development teams tend to experience significant turnover among their members. There are many reasons for it, but in the end we need to face the new reality that company loyalty is in decline and there are far more career opportunities available than ever before.
It’s not uncommon for a software development team of 5-9 members to lose 2-3 of them each year. That means the team is constantly training new people while trying to meet commitments and stay on plan.
Obviously, reducing turnover should be a priority but I’ll leave that topic for another time. The point of this post is delivering within a high turnover environment.
How can your team stay agile?
There are steps you can take to make it easier for the team to operate in a high turnover environment.
1. Document your process
Yes, being agile means reducing documentation. However, when a new team member arrives, she will need to understand how things work and what policies exist. At the very least, have a quick-start guide that defines how the team operates and what the rules are (e.g. the definition of done).
It’s also a good idea to have a list of the team members and key stakeholders along with their contact information and pictures. You’ll save yourself a lot of time and repetition.
Any such documentation will need to be kept updated as the team’s process evolves. Make those updates part of the retrospective meetings.
2. Reward longevity
Identify at least one person (and preferably two) who has been with the team a comparatively long time and is likely to stay. The Scrum Master would be ideal though not required. This individual will serve as the point person when it comes to questions about how the team operates.
The point person either knows the answers or knows how and where to find them. This person needs to be a mentor for the team. Your responsibility is to keep him around.
3. Keep user stories short
Short stories are easier to understand and implement. They are particularly good for newcomers because of their narrow scope. They also help in enabling someone new to demonstrate their implementation abilities quickly.
A short story is one that can be completed (“done”) in less than 16 hours. This isn’t a hard and fast agile rule but a general guideline that you should consider. Not every story has to be short but many of them should be.
4. Use short sprint durations
Many agile teams make sprints about 4-weeks long. I don’t know why that’s the case but I suspect it feels more comfortable to those having been trained in the waterfall approach to software development. It’s too long!
Keep your sprints to 2 weeks or less. Short sprints force you to keep stories shorter. They provide frequent checkpoints and opportunities to self-correct. They also make it easier to handle the usual two-week notice when someone decides to leave.
5. Standardize the tool set
In some development shops, there is a vast array of software development tools in use. Everyone uses their favorite text editor, compiler, make utility, unit test tool, etc. In a high turnover environment, this is a key failure point.
Have a standard set of software tools. If you are comfortable with giving team members some flexibility in tool selection, that’s fine, but you still need a standard set. A new person will need to know what is expected and the tool set is a key part of it.
High turnover is a big problem but one that agile techniques can help you manage.