Software Architecture Fundamentals—Evolutionary Architecture
Published byO'Reilly Media, Inc.
Software, by its very nature, is and needs to be dynamic. It must be able to adapt to changing real-world conditions not only to reflect the ever-shifting requirements and expectations of users, but often simply to keep up to date with new technological innovations. Yet, designing systems that can fluidly change has traditionally been a difficult, if not sometimes insurmountable, challenge for many organizations. However, the widespread adoption of microservices demonstrates that when architects build evolvability into the core structure, change becomes easier.
In this learning path, the sixth and final in our series on software architecture fundamentals, hosts Neal Ford and Mark Richards introduce the principles of evolutionary architecture—an architectural paradigm that supports constant change. Designed for the intermediate-level software architect or developer tasked with migrating to or implementing a new cloud-based or distributed-system architecture, this learning path equips you with the knowledge and tools you'll need to put evolutionary architecture into practice. You’ll explore some common antipatterns that you need to avoid. You’ll even look at methods to help you better explain the benefits of evolutionary architecture that can make it easier for you to interact with nontechnical team members and stakeholders.
What you’ll learn—and how you can apply it
- Understand what evolutionary architecture means, including its constituent parts
- Explore the engineering practices that augment and enable evolutionary architecture
- Discover techniques for safely evolving database schemas in parallel with this architecture
- Learn to overcome the common pitfalls and antipatterns that block evolutionary architecture
- Understand how to describe evolutionary architecture's benefits to nontechnical colleagues
- Master the principles of creating software architecture that supports constant change
- Self-Paced Exercise: Creating Fitness Functions
This learning path is for you because…
- You’re an intermediate-level software architect or developer tasked with migrating to or implementing a new cloud-based or distributed-system architecture
- You should have knowledge of development workflows and programming experience
Materials or downloads needed in advance: None
Other learning paths in this series:
- Learning Path: Software Architecture Fundamentals—Architectural Thinking
- Learning Path: Software Architecture Fundamentals—Architecture Styles
- Learning Path: Software Architecture Fundamentals—Diagramming and Documenting Architecture
- Learning Path: Software Architecture Fundamentals—Architecture Techniques
- Learning Path: Software Architecture Fundamentals—Soft Skills