Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons
Video avaialble here: https://www.youtube.com/watch?v=ZIsgHs0w44Y&feature=youtu.be
Manchester Geek Nights
ThoughtWorks
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons
1. Principles and Techniques of
Evolutionary Architecture
Rebecca Parsons
Chief Technology Officer
ThoughtWorks
2. Principles of evolutionary architecture
Why should I care?
Emergent design vs evolutionary
architecture
How to achieve an evolutionary
architecture in practice
Techniques of evolutionary architecture
Agenda
3. It’s harder to predict the future
Expectations for pace of change are
increasing rapidly
Business model lifetimes are shortening
If you miss your minute of fame...
Why Should I Care?
4. Evolutionary Architecture and Emergent
Design
Evolutionary versus Emergent
Design and Architecture
Design and
Architecture
5. Postel’s Law
Last responsible moment
Architect and develop for evolvability
Conway’s Law
Architect for testability
Principles of Evolutionary
Architecture
6. Minimizes technical debt from complexity
Delay decisions as long as you can, but no
longer
Maximizes the information you have
Evolutionary, neither emergent nor based
on guesswork
Decide early what your drivers are, and
prioritize decisions accordingly
Last Responsible
Moment
7. Consider data lifecycle and ownership
Sensible breakdown of functionality
Lightweight tooling and documentation
Appropriate coupling
Architect for
Evolvability
8. Software internal quality metrics focusing
on ease of change
Find hotspots and focus efforts there
Measure continually, focusing on trends
Develop for
Evolvability
10. Only validate what you need
Be conservative in what you send
Be liberal in what you receive
Use version changes when a contract
must be broken
Holds for any information exchange
Postel’s Law
11. Business sensible components
Aiming towards testability produces a
well-architected system
Messaging infrastructure used for
messaging, not business logic
Build pipelines support the volume
Testing at many levels, including contract
Architect for
Testability
12. Broken communications imply complex
integration
Organization’s design systems reflecting
their communication structures
If you don’t want your product to look like
your organization, change your
organization (or your product)
Silos often result in broken communication
Conway’s Law
14. Changes compose in the same way
functions compose
De-compose big change into series of
small changes
Each change is a refactoring/migration
pair (or triple if you include access code)
And apply in the various environments
during promotion
And of course, version control the
changes
Database
Refactoring
15. Automate testing at all levels
Automate environments and configurations
Automate builds and deployments and use
continuous integration
Just because you CAN release at any
time doesn’t mean you HAVE to
Deployment should be boring!!
Continuous
Delivery
16. Maximizes parallel independent work
Acceptance tests at the systems’ interface
Documents assumptions made
One traditional role of Enterprise
Architect
Used in conjunction with Postel’s Law
Contract Testing
17. Understand various forms of technical
debt
Define your architectural fitness function
Delay your decisions as long as you can
Create and maintain the testing safety
net
Implement evidence based re-use
Evolutionary
Architecture