Thoughts on AI and Agile Development

Throughput vs Goodput - What Really Matters

Scot Campbell May 17, 2024 #agile #definition of done #throughput #goodput #quality #first time quality #velocity

As an agile consultant, I’ve seen countless teams grapple with the concepts of throughput and goodput. These terms often pop up in discussions about team performance and project outcomes, but there’s often confusion about what they really mean and why they matter.

Let’s break it down.

Understanding Throughput and Goodput

Throughput: Quantity Over Quality

Throughput is basically the total amount of work a team churns out over a given period. It’s a raw measure of productivity - all the tasks, stories, and features delivered, regardless of their quality or value. On paper, high throughput looks great. “Look at all this stuff we’re getting done!” But here’s the catch: it doesn’t tell you if any of that work is actually useful.

Goodput: Quality and Value

Goodput, on the other hand, is where the rubber meets the road. It focuses on the quality and value of the work completed. It’s about delivering features that not only work as intended but also provide real value to the customer and align with the project’s goals. In other words, goodput is about effective productivity, not just busy work.

The Impact on Velocity

Now, why does this distinction matter? It all comes down to velocity.

In the agile world, velocity is our crystal ball. It helps us predict how much work a team can handle in a sprint, which is crucial for planning and setting realistic timelines. But here’s where things can go sideways: if a team is all about throughput, they might seem to have high velocity. “We completed 50 story points this sprint!” Sounds impressive, right?

But what if half of those features are buggy, don’t meet customer needs, or create technical debt? Suddenly, that high velocity becomes a mirage. The team ends up spending future sprints fixing issues, refactoring code, and dealing with unhappy stakeholders. I’ve seen this scenario play out more times than I can count, and it’s always painful for everyone involved.

Focusing on goodput, however, is like choosing the tortoise over the hare. It might seem slower at first, but it’s a much more sustainable approach. When teams prioritize quality and value, they might deliver fewer features in the short term, but those features work well, meet customer needs, and don’t create headaches down the line.

Shifting Focus to Goodput

So, how do we shift our focus to goodput? It’s not just about changing metrics - it requires a cultural shift within the team. Let’s explore some practical ways to put this into action:

1. Integrate Quality Assurance

First and foremost, make quality assurance an integral part of your development process. Don’t treat it as an afterthought. Implement automated testing and continuous integration from the get-go. Make code reviews a regular practice, not just a checkbox to tick. By baking quality into every step of your process, you’ll catch issues early and prevent them from snowballing into bigger problems.

2. Improve Planning and Estimation

Next, take a hard look at your planning and estimation process. Are your user stories well-defined? Do they have clear acceptance criteria? If not, it’s time for a change. Start each sprint planning session by really digging into what each story means and what “done” looks like. This extra time upfront will pay dividends in the form of more accurate estimates and fewer half-baked features.

3. Foster Collaboration

Collaboration is key in any agile team, but it’s especially crucial when focusing on goodput. Encourage your team members to share knowledge and skills. Try implementing pair programming sessions or regular tech talks. The more your developers understand each other’s work, the better they can contribute to overall quality.

4. Refine the Definition of “Done”

Don’t forget to regularly revisit and refine your definition of “done”. It should go beyond just functional completion. Consider factors like code quality, documentation, and test coverage. By setting a high bar for completion, you ensure that every feature that makes it to “done” is truly adding value.

5. Celebrate the Right Successes

Finally, take a look at how you celebrate success. Are you only recognizing team members who churn out the most code? Start acknowledging those who contribute to improving processes, reducing technical debt, or delivering particularly high-value features. This shift in recognition can go a long way in reinforcing the importance of quality over quantity.

Conclusion

Remember, at the end of the day, your customers don’t care how many features you shipped. They care about how well your product solves their problems. By focusing on goodput, you’re aligning your team’s efforts with what truly matters.

It’s not always an easy shift to make. I’ve worked with teams who initially resist the idea, fearing it will make them look less productive. But time and time again, I’ve seen how this focus on quality and value leads to more sustainable velocity, happier customers, and ultimately, more successful projects.

So, the next time you’re reviewing your team’s performance, look beyond the raw numbers. Ask yourself: Are we delivering value, or just keeping busy? The answer to that question can make all the difference in your agile journey.

More on Simplminded Robot