working on a computer.
At the end of the iteration, the customer reviews the working system functionality with the team. Based on the review, the customer can
- Reprioritize and change the next set of top-priority requirements
- Request that the demonstrated increment be delivered as a working system
- Increase the cost of future iterations by requesting that additional teams work on the product backlog
- Adjust the quality to increase or decrease the amount of functionality delivered in an iteration
- Not fund additional iterations because the business value received for the cost is inadequate
In any case, the customer controls the variables and is free to change them at the end of every iteration. The customer controls the project, guiding the work to deliver what constitutes business value. The ability to actively review what the team produces at every iteration greatly helps the customer make this determination. In this way, value driven development gives the customer flexibility. The customer is provided with the tools to maximize the business value produced with every iteration, and business value can be refocused before each new iteration.
Agile processes employ value driven development to increase the success of development projects. Side benefits include development team satisfaction, awareness of the business that they support, and reduced costs (since only the code that is needed is built).
Value-driven software development was described by James Bach in Process Evolution in a Mad World at Software Quality Week, 1994 (look for it under "Articles" at www.satisfice.com)--and by Ken Schwaber in Controlled Chaos, at OOPSLA in 1995. Since then, value driven software development has been incorporated into all of the agile processes, although the approach varies by process. However, collaboration between customer and development team is the common thread among all of them.
Agile methods and value driven software development are also described at the following sites:
- Extreme Programming
- Dynamic Systems Development Method
- Feature Driven Development
- Crystal Approach (www.crystalmethodologies.org
And in two recent books:
- Adaptive Software Development: A Collaborative Approach to Managing Complex Systems , by Jim Highsmith. (Dorset House Publishing, 2000. ISBN: 0-932633-40-4)
- Agile Software Development with SCRUM, First Edition , by Ken Schwaber and Mike Beedle. (Prentice Hall, 2002. ISBN 0-13-067634-9