| <?xml version="1.0" encoding="UTF-8"?> |
| <org.eclipse.epf.uma:PracticeDescription xmi:version="2.0" |
| xmlns:xmi="http://www.omg.org/XMI" xmlns:org.eclipse.epf.uma="http://www.eclipse.org/epf/uma/1.0.5/uma.ecore" |
| xmlns:epf="http://www.eclipse.org/epf" epf:version="1.5.0" xmlns:rmc="http://www.ibm.com/rmc" |
| rmc:version="7.5.0" xmi:id="-TleqHW_wvIYc0qLQgZUchA" |
| name="new_practice,_uVnpQB4qEd2bS8fFOQ7WWA" guid="-TleqHW_wvIYc0qLQgZUchA" changeDate="2008-10-15T06:27:20.597-0700" |
| version="7.5.0"> |
| <mainDescription><h3>
 |
| The essence of evolutionary architecture
 |
| </h3>
 |
| <p>
 |
| In the Evolutionary Architecture practice, you analyze the major technical concerns that affect the solution and
 |
| document architectural decisions to ensure that you have assessed and communicated those decisions.
 |
| </p>
 |
| <h3>
 |
| The key principles of the Evolutionary Architecture practice are:
 |
| </h3>
 |
| <ul type="disc">
 |
| <li class="MsoNormal c3">
 |
| <strong><span class="c1">Perform architecture work "just in time" for all other work.</span></strong> <span
 |
| class="c1">When planning your project, identify and discuss architectural issues with your team, and then
 |
| prioritize architectural work with any other work.</span> Base your priorities on mitigating technical risk rather
 |
| than creating value. Deferring architectural issues to handle them "just in time" enables the architecture to
 |
| <em><span class="c2">evolve over time</span></em>.
 |
| </li>
 |
| </ul>
 |
| <ul type="disc">
 |
| <li class="MsoNormal c3">
 |
| <strong><span class="c1">Document key architectural decisions and outstanding issues</span></strong><span
 |
| class="c1">. The <a class="elementLink"
 |
| href="./../../../practice.tech.evolutionary_arch.base/workproducts/architecture_notebook_9BB92433.html"
 |
| guid="_0XAf0MlgEdmt3adZL5Dmdw">Architecture Notebook</a> a list of the architectural issues to make it easy to
 |
| understand which architectural decisions you've made and which you've not yet addressed.</span>
 |
| </li>
 |
| </ul>
 |
| <ul type="disc">
 |
| <li class="MsoNormal c3">
 |
| <strong><span class="c1">Implement and test key capabilities as a way to address architectural
 |
| issues</span></strong><span class="c1">. Resolving architectural issues typically requires not only architectural
 |
| brainstorming, but also associated prototyping. In other words: implement enough code to validate the assumptions
 |
| behind the architecture. The code becomes production code, except for anything thrown away because it proves the
 |
| architecture invalid.</span>
 |
| </li>
 |
| </ul></mainDescription> |
| <additionalInfo><h3> Additional resources </h3>
 |
| <p> See these sources for more information on the evolutionary architecture approach: 
 |
| </p>
 |
| <ul>
 |
| <li>
 |
| <a href="http://www.agilemodeling.com/essays/agileArchitecture.htm" target="_blank">Agile Architecture: Strategies
 |
| for Scaling Agile Development</a>
 |
| </li>
 |
| <li>
 |
| <a href="http://www.agilemodeling.com/essays/initialArchitectureModeling.htm" target="_blank">Architectural
 |
| Envisioning</a>
 |
| </li>
 |
| <li>
 |
| <a href="http://www.agiledata.org/essays/enterpriseArchitecture.html" target="_blank">Agile Enterprise
 |
| Architecture</a>
 |
| </li>
 |
| </ul><br /></additionalInfo> |
| <problem><p> <span class="c1">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.</span> </p>
 |
| <p>
 |
| <span class="c1">This practice:</span>
 |
| </p>
 |
| <ul>
 |
| <li>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.<span class="c1"></span> </li>
 |
| </ul>
 |
| <ul>
 |
| <li> 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.<span class="c1"></span> </li>
 |
| </ul>
 |
| <ul>
 |
| <li> 
 |
| <div class="MsoNormal c2"> <span class="c1">Improves predictability by identifying 
 |
| and implementing the highest-risk technical areas first.</span> 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. </div>
 |
| </li>
 |
| </ul></problem> |
| <application><p>
 |
| 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.
 |
| </p>
 |
| <p>
 |
| Next, review the key concepts for the practice. An especially important concept is <a class="elementLinkWithType"
 |
| href="./../../../core.tech.common.extend_supp/guidances/concepts/software_architecture_59A08DE0.html"
 |
| guid="__O7tAMVvEduLYZUGfgZrkQ">Concept: Software Architecture</a>. 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.
 |
| </p>
 |
| <p>
 |
| 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.
 |
| </p>
 |
| <p>
 |
| For step-by-step instructions on how to adopt this practice, see <a class="elementLinkWithType"
 |
| href="./../../../practice.tech.evolutionary_arch.base/guidances/roadmaps/how_to_adopt_evolutionary_arch_practice_FEFA2CCF.html"
 |
| guid="_Odpz8NciEdy1nJEYZGzN4A">Roadmap: How to adopt the Evolutionary Architecture practice</a>.
 |
| </p></application> |
| </org.eclipse.epf.uma:PracticeDescription> |