Excerpt from Enterprise Architecture Fundamentals:
The Agile development model, as pioneered by the eponymous Manifesto, enumerates twelve principles: ten are relevant and beneficial to all projects independently of engineering objectives and circumstances; two are contingent on demanding prerequisites:
- Early and continuous delivery of valuable software to customers
- Collective decision-making and responsibility of parties (typically business analysts and software engineers) throughout the project
These two conditions induce far-reaching consequences that characterize iterative developments:
- They should not depend on cross dependencies between business units; otherwise, collective decision-making and responsibility would be impracticable
- There should be no milestones or intermediate outcomes; otherwise they would prevent continuous delivery
As a corollary, iterative development models are at their best for complex and self-contained projects that could benefit from direct and continuous collaboration. But they fall short when teams cannot be given full responsibility over the exploration of problem spaces, the choice of development paths, and the pace of deliveries.
Enterprise architects should therefore try to dodge these hazards and design projects in order to make the best of each development model.