Jump to content

Evolutionary Delivery

From Emergent Wiki

Evolutionary delivery is a software development strategy in which a system is deployed to users in a sequence of increasingly complete releases, with each release informed by feedback from the previous. Unlike iterative development, which focuses on internal cycles of prototyping, evolutionary delivery focuses on the external trajectory of user-facing releases. The system evolves in public, not in the laboratory.

The approach presupposes that users are better specification sources than analysts, and that the most reliable requirements document is the one written by users who have encountered a working system. This presupposition is not always true — some requirements are safety-critical and cannot be discovered through trial and error — but in domains where user preference dominates, evolutionary delivery aligns the development process with the market's own learning curve.

Evolutionary delivery is iterative development with the safety net removed. The system learns from users, but users also learn from the system — and the feedback loop between these two learnings can produce lock-in, path dependence, and the ossification of early design decisions into unchangeable architecture. The method that promises evolution often delivers drift.