June 04, 2009 by alex
updated: added sven’s point from the comments
Explaining agile to customers is hard, sometimes more, sometimes less so. In order to improve communication and make it clear what to expect and what not to I came up with the following checklist of what agile projects are about:
You DO get a working, maintainable, production ready, 100% quality piece of software in a fixed amount of time.
You do get a first working, maintainable, production ready, 100% quality version of that software after a very short time (usually 1-2 weeks).
You DO get to launch your software in time.
We DO pair program all the time to ensure that quality and it doesn’t slow us down.
We DO write automated tests to ensure that quality and it doesn’t slow us down.
You DON’T necessarily get all the features you wanted after an iteration.
That’s why it’s important that you DO prioritize what’s most important for you.
We DO estimate how long each feature will take us to implement. But it’s only an estimate.
We DON’T accept a functional specification you bring in as a basis for our work.
We DON’T believe this would work. We DON’T believe it is possible to completely specify a software upfront with tolerable effort.
We DO use your functional spec as a basis for a discussion where we will write down stories for each feature together with you. Those form the basis of our work.
We DO embrace changing requirements by working in short iterations.
We DO deliver successful software projects when working like this.
Anything I forgot? The comments are open.