Iterative Development and the Evolving Architecture

The benefits of an iterative development approach both from a business and technical perspective have been very apparent in the projects I have managed over the last few years. But, that is not to say there have not been challenges along the way. Regardless of the software development approach, mitigating risk on a project is one of the top priorities for the Project Manager.
Frequently, architectural unknowns present a project risk. The Architect is often challenged to stand up a preliminary architecture or components of an architecture quickly, so the development team can start implementing features. The architecture is expected to evolve and mature with successive iterations, especially the early iterations. One risk in this scenario is that the initial architecture may not be sufficient due to a variety of unknowns during the early iterations and significant changes will be required in future iterations. Another common risk on large projects is alignment with existing technologies or architectures within the enterprise.

Mitigating these risks in an iterative fashion requires careful attention to a few details:

  • Remain diligent in unit and integration testing

  • Document compromises and future To Do’s with each iteration

  • Communicate to the business and technical stakeholders the relative maturity of the architecture along with the functionality of each iteration

Communication is probably the most important. When the stakeholders understand from the beginning how iterative development works, they won’t be as surprised when a change in course has an impact on cost or schedule.


Paying special attention to architectural risks and mitigation techniques goes a long way toward realizing the benefits of iterative development and crafting a solution that meets both the business and technical requirements.

0 comments: