ABSTRACT

I think it is safe to say that the term agile development will, in the long term, have more impact on software engineering than the terms mainframe, client-server, or object-oriented programming. The principles behind agile development suggest clearly that the more traditional approach to project, product, and people management may be fine for fields other than software development, but is not appropriate when we build software. For example, imagine building a house as an agile project. At the end of each 2-week iteration, the architect meets with the customer who says, “You know, it would be really cool if we could build a third f loor.” To which the architect answers, “Yes, it would, but the foundation was built to hold two f loors; it might collapse under three f loors.” To add a third f loor, the house would probably have to be torn down and rebuilt with a new foundation, costing the time and the materials.