SlideShare a Scribd company logo
Evolutionary
Architecture
  Rebecca Parsons
 CTO ThoughtWorks
Agenda
Emergent design vs evolutionary
architecture
Principles of evolutionary architecture

Techniques of evolutionary architecture

How to achieve an evolutionary
architecture in practice
Design and
         Architecture
Evolutionary versus Emergent

Design and Architecture

Evolutionary Architecture and Emergent
Design
Principles of Evolutionary
         Architecture
Last responsible moment

Architect and develop for evolvability

Postel’s Law

Architect for testability

Conway’s Law
Last Responsible
       Moment
Delay decisions as long as you can, but no
longer

Maximizes the information you have
Minimizes technical debt from complexity

Decide early what your drivers are, and
prioritize decisions accordingly
Evolutionary, neither emergent nor based
on guesswork
Architect for
       Evolvability
Sensible breakdown of functionality


Consider data lifecycle and ownership


Appropriate coupling


Lightweight tooling and documentation
Develop for
        Evolvability
Software internal quality metrics focusing
on ease of change

Find hotspots and focus efforts there

Measure continually, focusing on trends
Reversability
Postel’s Law
Be conservative in what you send

Be liberal in what you receive

Only validate what you need

Holds for any information exchange
Use version changes when a contract
must be broken
Architect for
        Testability
Aiming towards testability produces a
well-architected system

Messaging infrastructure used for
messaging, not business logic
Business sensible components
Testing at many levels, including contract
Build pipelines support the volume
Conway’s Law
Organizations design systems reflecting
their communication structures

Broken communications imply complex
integration

Silos often result in broken communication

If you don’t want your product to look like
your organization, change your
organization (or your product)
Techniques

Database Refactoring


Continuous Delivery


HATEOS
Database
         Refactoring
De-compose big change into series of
small changes
Each change is a refactoring/migration
pair (or triple if you include access code)
Changes compose in the same way
functions compose
And of course, version control the
changes
And apply in the various environments
during promotion
Continuous
          Delivery
Automate environments and configurations

Automate builds and use continuous
integration

Automate testing at all levels
Automate deployment
Just because you CAN release at any
time doesn’t mean you HAVE to
HATEOAS
Hypermedia as the Engine of Application
State

Distribution of information

Consumer driven contracts

Evolvable contracts

Idempotency and other properties
Evolutionary
       Architecture
Define your architectural fitness function
Delay your decisions as long as you can

Understand various forms of technical
debt
Implement evidence based re-use

Create and maintain the testing safety
net
Questions?
  http://rebeccaparsons.com
http://www.thoughtworks.com

More Related Content

Similar to Evolutionary architecture

How ServiceChannel Automated Their AWS Environment with Puppet
 How ServiceChannel Automated Their AWS Environment with Puppet How ServiceChannel Automated Their AWS Environment with Puppet
How ServiceChannel Automated Their AWS Environment with Puppet
Amazon Web Services
 
Adopting DevOps at Scale on AWS with VirtusaPolaris
Adopting DevOps at Scale on AWS with VirtusaPolarisAdopting DevOps at Scale on AWS with VirtusaPolaris
Adopting DevOps at Scale on AWS with VirtusaPolaris
Amazon Web Services
 
Changing the culture of it
Changing the culture of itChanging the culture of it
Changing the culture of it
Matt Mansell
 
How to build successful blocks of DevOps
How to build successful blocks of DevOpsHow to build successful blocks of DevOps
How to build successful blocks of DevOps
Cygnet Infotech
 
How to build successful blocks of DevOps
How to build successful blocks of DevOpsHow to build successful blocks of DevOps
How to build successful blocks of DevOps
Cygnet Infotech
 
ClearScale: Continuous Automation with Docker on AWS
ClearScale: Continuous Automation with Docker on AWSClearScale: Continuous Automation with Docker on AWS
ClearScale: Continuous Automation with Docker on AWS
Amazon Web Services
 
IT Outsourcing: Business Continuity by Design by OneNeck IT Services
IT Outsourcing: Business Continuity by Design by OneNeck IT ServicesIT Outsourcing: Business Continuity by Design by OneNeck IT Services
IT Outsourcing: Business Continuity by Design by OneNeck IT Services
oneneckitservices
 
Recycling Legacy Applications
Recycling Legacy ApplicationsRecycling Legacy Applications
Recycling Legacy Applications
Inés Gabriel
 
Phase Two: What’s Next for Life Sciences and Enterprise Content Management
Phase Two: What’s Next for Life Sciences and Enterprise Content ManagementPhase Two: What’s Next for Life Sciences and Enterprise Content Management
Phase Two: What’s Next for Life Sciences and Enterprise Content Management
Scott Abel
 
Princípios de Arquitetura Evolutiva
Princípios de Arquitetura EvolutivaPrincípios de Arquitetura Evolutiva
Princípios de Arquitetura Evolutiva
ThoughtWorks Brasil
 
Improving The Software Development Lifecycle With Visual Studio Team System
Improving The Software Development Lifecycle With Visual Studio Team SystemImproving The Software Development Lifecycle With Visual Studio Team System
Improving The Software Development Lifecycle With Visual Studio Team Systemmatthewphillips
 
Devops
DevopsDevops
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_contextMajong DevJfu
 
AWS re:Invent 2016: Lift and Evolve – Saving Money in the Cloud is Easy, Maki...
AWS re:Invent 2016: Lift and Evolve – Saving Money in the Cloud is Easy, Maki...AWS re:Invent 2016: Lift and Evolve – Saving Money in the Cloud is Easy, Maki...
AWS re:Invent 2016: Lift and Evolve – Saving Money in the Cloud is Easy, Maki...
Amazon Web Services
 
Synergy 7.0 Sales 10312008
Synergy 7.0 Sales 10312008Synergy 7.0 Sales 10312008
Synergy 7.0 Sales 10312008Bill Duncan
 
02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt
RohanBorgalli
 
How to implement DevOps for Enterprise
How to implement DevOps for EnterpriseHow to implement DevOps for Enterprise
How to implement DevOps for Enterprise
Simform
 
Implementing Azure DevOps with your Testing Project
Implementing Azure DevOps with your Testing ProjectImplementing Azure DevOps with your Testing Project
Implementing Azure DevOps with your Testing Project
RTTS
 
Creating a DevOps Practice for Analytics -- Strata Data, September 28, 2017
Creating a DevOps Practice for Analytics -- Strata Data, September 28, 2017Creating a DevOps Practice for Analytics -- Strata Data, September 28, 2017
Creating a DevOps Practice for Analytics -- Strata Data, September 28, 2017
Caserta
 
DevOps, from inception to conclusion
DevOps, from inception to conclusionDevOps, from inception to conclusion
DevOps, from inception to conclusionAbhishek Gaurav
 

Similar to Evolutionary architecture (20)

How ServiceChannel Automated Their AWS Environment with Puppet
 How ServiceChannel Automated Their AWS Environment with Puppet How ServiceChannel Automated Their AWS Environment with Puppet
How ServiceChannel Automated Their AWS Environment with Puppet
 
Adopting DevOps at Scale on AWS with VirtusaPolaris
Adopting DevOps at Scale on AWS with VirtusaPolarisAdopting DevOps at Scale on AWS with VirtusaPolaris
Adopting DevOps at Scale on AWS with VirtusaPolaris
 
Changing the culture of it
Changing the culture of itChanging the culture of it
Changing the culture of it
 
How to build successful blocks of DevOps
How to build successful blocks of DevOpsHow to build successful blocks of DevOps
How to build successful blocks of DevOps
 
How to build successful blocks of DevOps
How to build successful blocks of DevOpsHow to build successful blocks of DevOps
How to build successful blocks of DevOps
 
ClearScale: Continuous Automation with Docker on AWS
ClearScale: Continuous Automation with Docker on AWSClearScale: Continuous Automation with Docker on AWS
ClearScale: Continuous Automation with Docker on AWS
 
IT Outsourcing: Business Continuity by Design by OneNeck IT Services
IT Outsourcing: Business Continuity by Design by OneNeck IT ServicesIT Outsourcing: Business Continuity by Design by OneNeck IT Services
IT Outsourcing: Business Continuity by Design by OneNeck IT Services
 
Recycling Legacy Applications
Recycling Legacy ApplicationsRecycling Legacy Applications
Recycling Legacy Applications
 
Phase Two: What’s Next for Life Sciences and Enterprise Content Management
Phase Two: What’s Next for Life Sciences and Enterprise Content ManagementPhase Two: What’s Next for Life Sciences and Enterprise Content Management
Phase Two: What’s Next for Life Sciences and Enterprise Content Management
 
Princípios de Arquitetura Evolutiva
Princípios de Arquitetura EvolutivaPrincípios de Arquitetura Evolutiva
Princípios de Arquitetura Evolutiva
 
Improving The Software Development Lifecycle With Visual Studio Team System
Improving The Software Development Lifecycle With Visual Studio Team SystemImproving The Software Development Lifecycle With Visual Studio Team System
Improving The Software Development Lifecycle With Visual Studio Team System
 
Devops
DevopsDevops
Devops
 
02 architectures in_context
02 architectures in_context02 architectures in_context
02 architectures in_context
 
AWS re:Invent 2016: Lift and Evolve – Saving Money in the Cloud is Easy, Maki...
AWS re:Invent 2016: Lift and Evolve – Saving Money in the Cloud is Easy, Maki...AWS re:Invent 2016: Lift and Evolve – Saving Money in the Cloud is Easy, Maki...
AWS re:Invent 2016: Lift and Evolve – Saving Money in the Cloud is Easy, Maki...
 
Synergy 7.0 Sales 10312008
Synergy 7.0 Sales 10312008Synergy 7.0 Sales 10312008
Synergy 7.0 Sales 10312008
 
02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt02_Architectures_In_Context.ppt
02_Architectures_In_Context.ppt
 
How to implement DevOps for Enterprise
How to implement DevOps for EnterpriseHow to implement DevOps for Enterprise
How to implement DevOps for Enterprise
 
Implementing Azure DevOps with your Testing Project
Implementing Azure DevOps with your Testing ProjectImplementing Azure DevOps with your Testing Project
Implementing Azure DevOps with your Testing Project
 
Creating a DevOps Practice for Analytics -- Strata Data, September 28, 2017
Creating a DevOps Practice for Analytics -- Strata Data, September 28, 2017Creating a DevOps Practice for Analytics -- Strata Data, September 28, 2017
Creating a DevOps Practice for Analytics -- Strata Data, September 28, 2017
 
DevOps, from inception to conclusion
DevOps, from inception to conclusionDevOps, from inception to conclusion
DevOps, from inception to conclusion
 

More from Kmanthei

Distributed Agile
Distributed AgileDistributed Agile
Distributed Agile
Kmanthei
 
Design in Practice (V1)
Design in Practice (V1)Design in Practice (V1)
Design in Practice (V1)
Kmanthei
 
We Can't Do That Here
We Can't Do That HereWe Can't Do That Here
We Can't Do That Here
Kmanthei
 
Agile Dependency Management
Agile Dependency ManagementAgile Dependency Management
Agile Dependency Management
Kmanthei
 
Technical Debt
Technical DebtTechnical Debt
Technical Debt
Kmanthei
 
Rails in the Large - Neal Ford
Rails in the Large - Neal FordRails in the Large - Neal Ford
Rails in the Large - Neal Ford
Kmanthei
 
4 tales of enterprise agility
4 tales of enterprise agility4 tales of enterprise agility
4 tales of enterprise agility
Kmanthei
 
Agile Design in Practice
Agile Design in PracticeAgile Design in Practice
Agile Design in Practice
Kmanthei
 
Rebecca parsons agile east
Rebecca parsons   agile eastRebecca parsons   agile east
Rebecca parsons agile eastKmanthei
 
Introduction to Continuous Delivery
Introduction to Continuous DeliveryIntroduction to Continuous Delivery
Introduction to Continuous DeliveryKmanthei
 

More from Kmanthei (10)

Distributed Agile
Distributed AgileDistributed Agile
Distributed Agile
 
Design in Practice (V1)
Design in Practice (V1)Design in Practice (V1)
Design in Practice (V1)
 
We Can't Do That Here
We Can't Do That HereWe Can't Do That Here
We Can't Do That Here
 
Agile Dependency Management
Agile Dependency ManagementAgile Dependency Management
Agile Dependency Management
 
Technical Debt
Technical DebtTechnical Debt
Technical Debt
 
Rails in the Large - Neal Ford
Rails in the Large - Neal FordRails in the Large - Neal Ford
Rails in the Large - Neal Ford
 
4 tales of enterprise agility
4 tales of enterprise agility4 tales of enterprise agility
4 tales of enterprise agility
 
Agile Design in Practice
Agile Design in PracticeAgile Design in Practice
Agile Design in Practice
 
Rebecca parsons agile east
Rebecca parsons   agile eastRebecca parsons   agile east
Rebecca parsons agile east
 
Introduction to Continuous Delivery
Introduction to Continuous DeliveryIntroduction to Continuous Delivery
Introduction to Continuous Delivery
 

Recently uploaded

Hindustan Insider 2nd edition release now
Hindustan Insider 2nd edition release nowHindustan Insider 2nd edition release now
Hindustan Insider 2nd edition release now
hindustaninsider22
 
Preview of Court Document for Iseyin community
Preview of Court Document for Iseyin communityPreview of Court Document for Iseyin community
Preview of Court Document for Iseyin community
contact193699
 
Hogan Comes Home: an MIA WWII crewman is returned
Hogan Comes Home: an MIA WWII crewman is returnedHogan Comes Home: an MIA WWII crewman is returned
Hogan Comes Home: an MIA WWII crewman is returned
rbakerj2
 
2024 is the point of certainty. Forecast of UIF experts
2024 is the point of certainty. Forecast of UIF experts2024 is the point of certainty. Forecast of UIF experts
2024 is the point of certainty. Forecast of UIF experts
olaola5673
 
03062024_First India Newspaper Jaipur.pdf
03062024_First India Newspaper Jaipur.pdf03062024_First India Newspaper Jaipur.pdf
03062024_First India Newspaper Jaipur.pdf
FIRST INDIA
 
31052024_First India Newspaper Jaipur.pdf
31052024_First India Newspaper Jaipur.pdf31052024_First India Newspaper Jaipur.pdf
31052024_First India Newspaper Jaipur.pdf
FIRST INDIA
 
01062024_First India Newspaper Jaipur.pdf
01062024_First India Newspaper Jaipur.pdf01062024_First India Newspaper Jaipur.pdf
01062024_First India Newspaper Jaipur.pdf
FIRST INDIA
 
AI and Covert Influence Operations: Latest Trends
AI and Covert Influence Operations: Latest TrendsAI and Covert Influence Operations: Latest Trends
AI and Covert Influence Operations: Latest Trends
CI kumparan
 
Letter-from-ECI-to-MeiTY-21st-march-2024.pdf
Letter-from-ECI-to-MeiTY-21st-march-2024.pdfLetter-from-ECI-to-MeiTY-21st-march-2024.pdf
Letter-from-ECI-to-MeiTY-21st-march-2024.pdf
bhavenpr
 
What Ukraine Has Lost During Russia’s Invasion
What Ukraine Has Lost During Russia’s InvasionWhat Ukraine Has Lost During Russia’s Invasion
What Ukraine Has Lost During Russia’s Invasion
LUMINATIVE MEDIA/PROJECT COUNSEL MEDIA GROUP
 
EED - The Container Port PERFORMANCE INDEX 2023
EED - The Container Port PERFORMANCE INDEX 2023EED - The Container Port PERFORMANCE INDEX 2023
EED - The Container Port PERFORMANCE INDEX 2023
El Estrecho Digital
 
Resolutions-Key-Interventions-28-May-2024.pdf
Resolutions-Key-Interventions-28-May-2024.pdfResolutions-Key-Interventions-28-May-2024.pdf
Resolutions-Key-Interventions-28-May-2024.pdf
bhavenpr
 
Sharjeel-Imam-Judgement-CRLA-215-2024_29-05-2024.pdf
Sharjeel-Imam-Judgement-CRLA-215-2024_29-05-2024.pdfSharjeel-Imam-Judgement-CRLA-215-2024_29-05-2024.pdf
Sharjeel-Imam-Judgement-CRLA-215-2024_29-05-2024.pdf
bhavenpr
 
Codes n Conventionss copy (1).paaaaaaptx
Codes n Conventionss copy (1).paaaaaaptxCodes n Conventionss copy (1).paaaaaaptx
Codes n Conventionss copy (1).paaaaaaptx
ZackSpencer3
 

Recently uploaded (14)

Hindustan Insider 2nd edition release now
Hindustan Insider 2nd edition release nowHindustan Insider 2nd edition release now
Hindustan Insider 2nd edition release now
 
Preview of Court Document for Iseyin community
Preview of Court Document for Iseyin communityPreview of Court Document for Iseyin community
Preview of Court Document for Iseyin community
 
Hogan Comes Home: an MIA WWII crewman is returned
Hogan Comes Home: an MIA WWII crewman is returnedHogan Comes Home: an MIA WWII crewman is returned
Hogan Comes Home: an MIA WWII crewman is returned
 
2024 is the point of certainty. Forecast of UIF experts
2024 is the point of certainty. Forecast of UIF experts2024 is the point of certainty. Forecast of UIF experts
2024 is the point of certainty. Forecast of UIF experts
 
03062024_First India Newspaper Jaipur.pdf
03062024_First India Newspaper Jaipur.pdf03062024_First India Newspaper Jaipur.pdf
03062024_First India Newspaper Jaipur.pdf
 
31052024_First India Newspaper Jaipur.pdf
31052024_First India Newspaper Jaipur.pdf31052024_First India Newspaper Jaipur.pdf
31052024_First India Newspaper Jaipur.pdf
 
01062024_First India Newspaper Jaipur.pdf
01062024_First India Newspaper Jaipur.pdf01062024_First India Newspaper Jaipur.pdf
01062024_First India Newspaper Jaipur.pdf
 
AI and Covert Influence Operations: Latest Trends
AI and Covert Influence Operations: Latest TrendsAI and Covert Influence Operations: Latest Trends
AI and Covert Influence Operations: Latest Trends
 
Letter-from-ECI-to-MeiTY-21st-march-2024.pdf
Letter-from-ECI-to-MeiTY-21st-march-2024.pdfLetter-from-ECI-to-MeiTY-21st-march-2024.pdf
Letter-from-ECI-to-MeiTY-21st-march-2024.pdf
 
What Ukraine Has Lost During Russia’s Invasion
What Ukraine Has Lost During Russia’s InvasionWhat Ukraine Has Lost During Russia’s Invasion
What Ukraine Has Lost During Russia’s Invasion
 
EED - The Container Port PERFORMANCE INDEX 2023
EED - The Container Port PERFORMANCE INDEX 2023EED - The Container Port PERFORMANCE INDEX 2023
EED - The Container Port PERFORMANCE INDEX 2023
 
Resolutions-Key-Interventions-28-May-2024.pdf
Resolutions-Key-Interventions-28-May-2024.pdfResolutions-Key-Interventions-28-May-2024.pdf
Resolutions-Key-Interventions-28-May-2024.pdf
 
Sharjeel-Imam-Judgement-CRLA-215-2024_29-05-2024.pdf
Sharjeel-Imam-Judgement-CRLA-215-2024_29-05-2024.pdfSharjeel-Imam-Judgement-CRLA-215-2024_29-05-2024.pdf
Sharjeel-Imam-Judgement-CRLA-215-2024_29-05-2024.pdf
 
Codes n Conventionss copy (1).paaaaaaptx
Codes n Conventionss copy (1).paaaaaaptxCodes n Conventionss copy (1).paaaaaaptx
Codes n Conventionss copy (1).paaaaaaptx
 

Evolutionary architecture

  • 1. Evolutionary Architecture Rebecca Parsons CTO ThoughtWorks
  • 2. Agenda Emergent design vs evolutionary architecture Principles of evolutionary architecture Techniques of evolutionary architecture How to achieve an evolutionary architecture in practice
  • 3. Design and Architecture Evolutionary versus Emergent Design and Architecture Evolutionary Architecture and Emergent Design
  • 4. Principles of Evolutionary Architecture Last responsible moment Architect and develop for evolvability Postel’s Law Architect for testability Conway’s Law
  • 5. Last Responsible Moment Delay decisions as long as you can, but no longer Maximizes the information you have Minimizes technical debt from complexity Decide early what your drivers are, and prioritize decisions accordingly Evolutionary, neither emergent nor based on guesswork
  • 6. Architect for Evolvability Sensible breakdown of functionality Consider data lifecycle and ownership Appropriate coupling Lightweight tooling and documentation
  • 7. Develop for Evolvability Software internal quality metrics focusing on ease of change Find hotspots and focus efforts there Measure continually, focusing on trends
  • 9. Postel’s Law Be conservative in what you send Be liberal in what you receive Only validate what you need Holds for any information exchange Use version changes when a contract must be broken
  • 10. Architect for Testability Aiming towards testability produces a well-architected system Messaging infrastructure used for messaging, not business logic Business sensible components Testing at many levels, including contract Build pipelines support the volume
  • 11. Conway’s Law Organizations design systems reflecting their communication structures Broken communications imply complex integration Silos often result in broken communication If you don’t want your product to look like your organization, change your organization (or your product)
  • 13. Database Refactoring De-compose big change into series of small changes Each change is a refactoring/migration pair (or triple if you include access code) Changes compose in the same way functions compose And of course, version control the changes And apply in the various environments during promotion
  • 14. Continuous Delivery Automate environments and configurations Automate builds and use continuous integration Automate testing at all levels Automate deployment Just because you CAN release at any time doesn’t mean you HAVE to
  • 15. HATEOAS Hypermedia as the Engine of Application State Distribution of information Consumer driven contracts Evolvable contracts Idempotency and other properties
  • 16. Evolutionary Architecture Define your architectural fitness function Delay your decisions as long as you can Understand various forms of technical debt Implement evidence based re-use Create and maintain the testing safety net