Roadmap: How to adopt the Evolutionary Architecture practice
This roadmap describes how to adopt the Evolutionary Architecture practice.
Main Description

Getting started 

Begin by making sure that the team and key stakeholders understand what software architecture is and the value of capturing it in a separate artifact. See Concept: Software Architecture.

After there is agreement that the architectural information should be captured, it is important to come to an agreement on what architectural information you want to capture and what format it should take. Review the Artifact: Architecture Notebook and associated guidance. Agree on what you want to document.

Next, review Concept: Architectural Views and Viewpoints and Concept: Architectural Mechanism. Both are crucial to understanding how to define and communicate the architecture.

Now you can turn your attention to deciding, as a team, how and when the architectural tasks should be performed.

  • If you are working on a new project and you are at the beginning of the lifecycle, review Task: Envision the Architecture.
  • If you are working on a project that is already underway, take time to document the decisions that have already been made and continue to evolve the architecture as development proceeds. See Task: Refine the Architecture.

Common pitfalls

The architect should not work in isolation and just throw an architectural specification over the wall to the developers. This requires too much documentation and makes it difficult for team members to understand why the architecture needs to work the way it does. Building the architecture is an activity that requires collaboration to be successful.

Avoid creating significant and detailed architectural documentation for agile projects. Don't get caught up in defining exactly what the structure of the Architecture Notebook should be. Focus on capturing the key decisions and the rationale for these decisions. Refer to more detailed documentation where necessary, and don't duplicate material. Keep the documentation clear and concise. Make sure that the people who use the architecture (the development team) are comfortable with the format and content of the architecture. Is there more or different information that they would like to see? Would they like to see less, instead?

Document important decisions. Team members may be close by and you may be in constant contact with them, but teams change and software architects move on to other projects. Failure to document important decisions raises the risk of failure later because future team members won't have the benefit of being involved in today's collaborative decisions. Consider future team members as collaborators that you simply don't have the opportunity to speak to face-to-face.

More Information