General architectural guidelines
As we learned in Chapter 1, Basics of Agile System Modeling, in Figure 1.27, a good architecture has the following properties:
- It is architected early.
- It evolves frequently.
- It is as simple as possible (but no simpler than that).
- It is based on patterns.
- It integrates into project planning via technical work items.
- It optimizes important system properties.
- It is written down (specifically, it is modeled).
- It is kept current.
The Architecture 0 recipe in Chapter 1, Basics of Agile System Modeling, concentrated on creating an early model of the architecture so that more detailed engineering work had a structural context. Nevertheless, the expectation is that the architecture progresses as more development work is done, and as more functionality is added to the evolving system design.
This chapter provides some important recipes that cover defining architectures, whether this is done as a big design up-front...