Commitment is a huge concept in agile. So many teams are so used to treating commitments as if they are really the ‘good ole’ college try’ and can you blame them? When a couple smart guys get into a room and come up with some Ludacris plan and sign the whole team up for it what option do they really have?
This is why, in agile, we estimate and plan together. It’s about breeding accountability into the team and enabling the team to commit, and by commit, I mean really commit.
The reality is it’s really hard. I mean, we’re working against decades of conditioning to bluff, pad, and blow smoke to avoid true commitment. Bluffing is like a drug in waterfall. We bluff all. the. time. From the moment we come up with our first estimate to the time, each % complete status update we give on our tasks, and every stop light status report we give to executive leadership. It’s just nuts.
When going through an agile transformation, getting your teams off bluffing is like breaking an addition. It takes time and you have to start with small and consistent victories. In order to make this happen we need to start getting teams comfortable with delivering what they commit to 100% of the time. This requires us to dump the age old process of just dividing up the list of tasks to do equally between iterations. Agile planning is different and variable. It assumes variable velocities of the teams.
We need to do a few things:
1. Don’t load sprints to 100% capacity.
2. Always set stretch objectives but don’t commit to them.
3. Recalculate each team’s velocity at the end of every iteration.
Sprints loaded 100% are a great sign that your team is overcommitting. What behaviors does this lead to? It breeds into the team that it’s okay to commit to something and not do it. We set ourselves up for this by making idealistic and unrealistic plans and then failing time and time again. Let’s be real people!
Teams that don’t set Stretch Objectives are really committing to all user stories within the iteration. This means we don’t have anything on deck when we overachieve. It sets the mindset within the team that they will never outperform their original estimations. This is defeatism at its core. The team’s PI Objectives are what they are committing to. The team’s Stretch Objectives are what’s on deck and ready when they knock it out of the park.
Velocity calculated using ‘Initial Velocity Calculation’ for every Program Increment is a sure fire way to overload some teams and bore others. We need to ensure we are calculating velocity for each team at the end of every sprint based on actual delivery. Without doing so we are not recognizing the inherent differences in velocity between teams and we won’t be able to track an individual team’s performance over time.
It’s so important that we establish good practices that encourage teams to commit to each other and to the broader program or value stream, without it, we lose predictability and our ability to forecast at the program level.