It is hard to read a piece about Agile development without finding it associated with the adjective evolutionary. When I learned about DSDM, and it was not such a long time ago, the phases during which the development was done was labelled Exploration and Engineering phases. Now, it is an Evolutionary Development phase.
I am here taking advantage of my background in Biology to assess how evolutionary Agile development is.
The association probably comes from the fact that Agile development, like evolution, can work incrementally. I am afraid the comparison stops here.
- Evolution has no objective, no scope, no plan, no end.
Evolution does not have a goal in mind. Imagine doing development at random, without plan or objective! Furthermore, evolution does not stop. A never-ending, random project definitely does not fit the Agile, or any, definition.
- Evolution only works on what is already there.
Evolution cannot work from scratch. Evolution works by incorporating changes in existing systems. If Agile development was really evolutionary, building new systems would be out of its scope.
- Changes in evolution are random.
Evolution works because changes in the genetic code always happen, at random. In evolution, beneficial changes are kept, harmful changes removed and most changes just overlooked because they are neutral. Is Agile really about developing at random?
These three basic points should be enough to show that Agile development does not follow an evolutionary process.
It may be time to rethink the association, as it does justice neither to Agile development, nor to evolution.