Building technical agility with patterns and techniques
Embracing new technologies for adding new features or incrementally enhancing live systems without disruptions necessitate an evolutionary architecture. Carefully choosing the right patterns and techniques enhances software evolution and, hence, technical agility.
Neal Ford from ThoughtWorks defines evolutionary architecture as an architecture that supports guided, incremental changes across multiple dimensions. Evolvability needs to be considered as a first-class citizen when targeting technical agility. A sound, evolvable architecture demonstrates patterns and techniques such as simplicity, well-formed structures, and modular, repetitive components.
Many real-world architectural marvels, such as the Taj Mahal and Tower Bridge, reflect these characteristics. These large architectural monuments were built using the principle of self-replicating geometry and symmetry of architectural elements, as illustrated in the following...