Practice: Evolutionary Architecture
Analyze the major technical concerns that affect the solution, and capture those architectural decisions to ensure that those decisions are assessed and communicated.
Why adopt this practice

The Evolutionary Architecture practice describes how to incrementally build and improve the software architecture while uncovering and addressing architectural issues during software development. This reduces technical risk without requiring significant up-front architectural effort.

This practice:

  • Improves quality and productivity by reducing the need to make time-consuming, error-prone fixes to late-detected problems that result from architectural flaws. This is possible because the architecture is validated early, and key architectural problems are corrected before the majority of development is done.
  • Reduces time to market by focusing on reuse. It improves the consistency and maintainability of the system by incorporating lessons learned from development back into the architecture and applying those lessons to the rest of development.
  • Improves predictability by identifying and implementing the highest-risk technical areas first. It improves the team's responsiveness to change by shortening the architectural cycle and minimizing time wasted in architectural scrap and rework when changes arise.
Application

The best way to read this practice is to first familiarize yourself with its overall structure: what is in it and how it is organized.

Next, review the key concepts for the practice. An especially important concept is Concept: Software Architecture. After you understand what architecture is, turn your attention to the Architecture Notebook. Then review the tasks, accessing guidelines and tool mentors associated with each task as needed. You can also access the guidance provided by the practice directly through the Guidance folder.

Be sure to take a look at the list of enablement materials for additional sources of information. See the Additional Resources section of this page.

For step-by-step instructions on how to adopt this practice, see Roadmap: How to adopt the Evolutionary Architecture practice.

Additional Information

Additional resources

See these sources for more information on the evolutionary architecture approach:


For more information on this practice,  see the practice resource page on IBM® DeveloperWorks®.