What’s Agile? Working Software (Principle #7)
Nothing demonstrates real progress better than delivering working software to the customer frequently. That’s the focus of the seventh principle of Agile:
Working software is the primary measure of progress.Principles behind the Agile Manifesto
Don’t Trust the Reports
Color-coded Gantt charts, beautiful reports, and Earned Value charts are no match for actual working software.
Jeff Sutherland, one of the co-founders of Scrum, thinks that Gantt charts are complete fiction. He’s banned them on his Scrum project for years. I tend to agree – at least the way they’re typically used.
We’ve all experienced the disappointment of finding out that the system isn’t working as well as the progress reports indicated. As a result, we’ve learned not to trust reports as much as getting our hands on the software.
“Go and see“, right? That’s one of the principles of the Toyota Way and the Lean movement. Here it is applied to software development.
Agile Delivers Working Software; Not Just Demos
Working software means delivered to the customer. Not just working on your machine, or in your test environment. The customers need to be able to actually use it.
And not as a demo or prototype. Actual, real, live, deployed software. If the system is already live, then each sprint should add useful functionality to the live system.
Agile Delivers Working Software Frequently
Of course, with a live system, you’ll usually want to get customer feedback in the sprint review before deploying it to the live system.
However, you shouldn’t be shy about deploying frequently. If you’re doing it right, applying best practices of continuous delivery, you won’t be so hesitant to deploy. (I recommend you start with Jez Humble and David Farley’s book, Continuous Delivery.)
You can use feature toggles to limit usage at first, before you make it available to everyone. And to turn features off quickly if needed.
A/B testing can help you determine the best of various options.
Rollback plans are your safety net.
To be Agile, you need to use such best practices in order to minimize the risks, and maximize the benefits of frequently delivery.
To fail fast, you need to first make it safe to fail.
Agile Delivers Working Software Starting with the Minimum Viable Product
If this is a new system, don’t wait too long to release the first version. You should release when it’s still embarrassing.
It’s better to get feedback early on an extremely limited initial release than to spend a lot of time on features that turn out not to be of value after all.
Is Agile Really This Much Work?
Are you starting to feel like Agile is too much work? Agile isn’t easy, but it’s worth it. If you think it’s easy, you’re probably missing something.
Read this next: What’s Agile? Sustainable Pace (Principle #8)