Evolutionary Architecture
This practice analyzes the major technical concerns that affect the solution and captures those architectural decisions to ensure that those decisions are assessed and communicated.
Relationships
Main Description

The Evolutionary Architecture practice contains the method elements needed to analyze the major technical concerns that affect the solution and capture those architectural decisions to ensure that those decisions are assessed and communicated.


The Essence of Evolutionary Architecture

The following capture the key principles of the Evolutionary Architecture practice:

  • Architecture work is prioritized with all other work (architect "just in time" and evolve the architecture over time). Architectural issues are explicitly identified, discussed by the team, and prioritized with any other work within the context of iteration planning. Prioritization is based on need for technical risk mitigation versus value creation.  Assigning architectural issues to an iteration drives 'just-in-time' architecture work and the architecture evolves over time.
  • Document key architectural decisions and outstanding issues.  The Architecture Notebook provides a place to maintain a list of the architectural issues, along with any supporting materials documented at the appropriate level to make it easy to understand what architectural decisions have been made, and are still left to be made.
  • Implement and test key capabilities as a means to address architectural issues.  Resolving an architectural issues typically requires not only architectural brainstorming, but also associated prototyping.  In other words, implement enough code (hopefully code that becomes production code, minus what had to be thrown away because proven invalid) to validate the assumptions behind the architecture.


Why Adopt this Practice?

[*** Include some content here that describes the business value of this practice -- what do you get when you adopt it?  This section is essentially the value proposition for the practice.  You may want to describe some common problems and how this practice solves those problems.   ***]   

How to Read this Practice

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

The best place to start is with the Key Concepts for the practice -- those concepts that are critical to understand in order to adopt the practice.  An especially important concept for the Evolutionary Architecture practice is Concept: Software Architecture.  Once you understand what architecture is, you can turn your attention to the artifact produced by the practice, the Artifact: Architecture Notebook.   Then you can review the practices Tasks.  From the work products and the tasks, you can access applicable guidance -- guidelines and tool mentors associated with each task provide details of how to perform the task. Templates and checklists associated with the work products guide you in their completion and evaluation. You can also access the guidance provided by the practice directly, via Guidance folder.

Once you have an understanding of these key elements of the practice, you can take a look at the provided list of enablement materials (see the "Additional Information" section of this document.

For step-by-step instructions on how to adopt this practice, see Roadmap: How to Adopt This Practice.

Additional Resources

For more information on the evolutionary architecture approach, see the following: