The Art of Agile Development: Chapter 7: Releasing

The second edition is now available! The Art of Agile Development has been completely revised and updated with all new material. Visit the Second Edition page for more information, or buy it on Amazon.

Full Text

The following text is excerpted from The Art of Agile Development by James Shore and Shane Warden, published by O'Reilly. Copyright © 2008 the authors. All rights reserved.

Releasing

What is the value of code? Agile developers value "working software over comprehensive documentation."1 Does that mean a requirements document has no value? Does it mean unfinished code has no value?

1The Agile Manifesto, http://www.agilemanifesto.org/

Like a rock at the top of a hill, code has potential—potential energy for the rock and potential value for the code. It takes a push to realize that potential. The rock has to be pushed onto a slope in order to gain kinetic energy; the software has to be pushed into production in order to gain value.

It's easy to tell how much you need to push a rock. Big rock? Big push. Little rock? Little push. Software isn't so simple—it often looks ready to ship long before it's actually done. It's my experience that teams underestimate how hard it will be to push their software into production.

To make things worse, software's potential value changes. If nothing ever pushes that rock, it will sit on top of its hill forever; its potential energy won't change. Software, alas, sits on a hill that undulates. You can usually tell when your hill is becoming a valley, but if you need weeks or months to get your software rolling, it might be sitting in a ditch by the time you're ready to push.

In order to meet commitments and take advantage of opportunities, you must be able to push your software into production within minutes. This chapter contains seven practices that give you leverage to turn your big release push into a ten-minute tap:

  • "Done Done" ensures that completed work is ready to release.

  • No Bugs allows you to release your software without a separate testing phase.

  • Version Control allows team members to work together without stepping on each others' toes.

  • A Ten-Minute Build builds a tested release package in under ten minutes.

  • Continuous Integration prevents a long, risky integration phase.

  • Collective Code Ownership allows the team to solve problems no matter where they may lie.

  • Post-hoc Documentation decreases the cost of documentation and increases its accuracy.

2The value stream map was inspired by [Poppendieck & Poppendieck].

If you liked this entry, check out my best writing and presentations, and consider subscribing to updates by email or RSS.