Video description
Software architecture has often been described as "the parts that are hard to change later." But the widespread adoption of microservices demonstrates that when architects build evolvability into the architecture, change becomes easier. This video introduces the principles of evolutionary architecture—the software architecture 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, the course equips you with the knowledge and tools you'll need to put evolutionary architecture into practice.
- Understand what evolutionary architecture means and get introduced to 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
Dr. Rebecca Parsons (CTO), Patrick Kua (Principal Technical Consultant), and Neal Ford (Director/Meme Wrangler) help drive the future of software for Thoughtworks, a global IT consultancy (4,500 employees, 15 countries, 42 offices) focused exclusively on end-to-end software development and delivery. Parsons is a 30+ year industry vet with extensive experience creating large-scale distributed object applications and integrating disparate systems; Kua has over a decade of experience in agile and lean development processes; and Ford is an internationally known software architect who speaks world-wide (700 developer conferences, 3000+ presentations) on evolutionary architecture, continuous delivery, functional programming, and other cutting edge software innovations.
Table of Contents
What is Evolutionary Architecture?
Defining Fitness Functions
Incremental Change Building Blocks
Pitfalls and Antipatterns—Lack of Speed to Release
Combining Incremental Change Fitness Functions
Hypothesis-Driven Data-Driven Development
Understanding architectural characteristics
Pitfalls and Antipatterns—Code Reuse Abuse
Pitfalls and Antipatterns—Inappropriate Governance
Pitfalls and Antipatterns—Reporting
Modularity Architectural Quantum
Pitfalls and Antipatterns—Product Customization
Evolvability of Architectural Styles
Pitfalls and Antipatterns—Leaking Abstractions
Evolutionary Data
Building Evolvable Architectures
Guidelines for Evolutionary Architectures
Pitfalls and Antipatterns—Vendor King
Pitfalls and Antipatterns—Last 10% Trap
Putting Evolutionary Architecture into Practice