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:
|