Agile Development is all about producing business value
Posted by Michael Franken mid-afternoon: July 26, 2006
Agile development is aimed at producing valuable software early and continuously. Sadly enough it seems to have only been picked up by the software development community. Many discussions on Agile development stress the importance of agile practices to the development process. The discussions treat the importance of TDD, pair programming and so on. These practices are very important and when done properly done will increase the quality of deliverables considerably. But the regular discussions on Agile obfuscate the real benefit of Agile development: Producing business value.
You would expect that business people, especially in marketing driven organizations, would be triggered by a way of producing software where business opportunities can be quickly transformed into value. Instead Agile development (and especially XP) is perceived as a means to develop software with more freedom for the individual developer. The lack of plan and (upfront) documentation is seen as a sign of negligence, not a wisely chosen trade-off.
Agile development needs to be promoted at the business level: VP Sales and Marketing (including their product management), CIO and even CEO. Finally the CFO (or procurement officer) needs to be convinced. This may include recoining the term 'Agile', since it is already associated too much with the software development process. A better term might be "Business Value Optimizing Development" (or whatever name suits you) since this is what it is really about: maximizing business value.
For every euro that we can spend, what is the best thing we can do to get more (than one euro of) business value?
This has many implications:
- We need to identify where we can make money and therefore we need to have real requirements, not the 80 pages that we normally write, with all the things we may need.
- We need to deliver early, as postponing releases means a decrease of money earned. This means splitting work into such small pieces that they produce business value as soon as possible. Compare this with the waterfall method where working software is put in production at the end of a project.
- We need to have continuous feedback from production, since that way we can really learn from business done.
- Software quality really matters (for business reasons!) right from the start, since we expect to have many changes.
Since a picture says more than 381 words, here's how the Agile method differs from traditional development is terms of cost and business value:
|
|
|
| Traditional Development | Agile Development |
As you can tell the total amount of business value earned (the area under the blue line) is much higher in the agile case. Also in general the business value of the software itself is higher since it has been capable of capturing changing requirements in a changing market. Furthermore the effect of releasing a system, and then paying lots of money to get it finally right (a typical 1st maintenance release) is absent in the Agile case.
Filed under: Agile, Articles, General