Continuous Architecture is an approach to software architecture that follows six simple principles:
- Principle 1: Architect products. Evolve from projects to products. Architecting products is more efficient than just designing point solutions to projects and focuses the team on its customers.
- Principle 2: Focus on quality attributes, not on functional requirements. Quality attribute requirements drive the architecture.
- Principle 3: Delay design decisions until they are absolutely necessary. Design architectures based on facts, not on guesses. There is no point in designing and implementing capabilities that may never be used—it is a waste of time and resources.
- Principle 4: Architect for change. Leverage the “power of small.” Big, monolithic, tightly coupled components are hard to change. Instead, leverage small, loosely coupled software elements.
- Principle 5: Architect for build, test, deploy, and operate. Most architecture methodologies focus exclusively on software building activities, but we believe that architects should be concerned about testing, deployment, and operation, too, in order to support continuous delivery.
- Principle 6: Model the organization of your teams after the design of the system you are working on. The way teams are organized drives the architecture and design of the systems they are working on.
These six principles help architects to focus on the most important aspects of software architecture for modern applications, while working in the incremental and evolving way that supports Agile and DevOps ways of working.