This artifact describes the Software Architecture.
It provides a place for maintaining the list of architectural issues, along with the associated architectural
decisions, designs, patterns, code documented (or pointed at),etc. all at appropriate level to make it easy to
understand what architectural decisions have been made, and are still left to be made.
Architects should use this artifact to collaborate with other team members in developing the architecture, and to help
team members understand the motivations behind architectural decisions so those decisions can be robustly implemented.
For example, the architect may place constraints on how data is packaged and communicated between different parts of
the system. This may appear to be a burden, but the justification in the Architecture Notebook can explain that there
is a significant performance bottleneck when communicating with a legacy system. The rest of the system must adapt to
this bottleneck by following a specific data packaging scheme.
This artifact should also inform the team members how the system is partitioned or organized so the team can adapt
itself to the needs of the system. It also gives whoever must maintain and change the architecture later their first
glimpse of the system and its technical motivations.
|