O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.
Principles and Techniques of
Evolutionary Architecture
Rebecca Parsons
Chief Technology Officer
ThoughtWorks
Principles of evolutionary architecture
Why should I care?
Emergent design vs evolutionary
architecture
How to achieve an ...
It’s harder to predict the future
Expectations for pace of change are
increasing rapidly
Business model lifetimes are shor...
Evolutionary Architecture and Emergent
Design
Evolutionary versus Emergent
Design and Architecture
Design and
Architecture
Postel’s Law
Last responsible moment
Architect and develop for evolvability
Conway’s Law
Architect for testability
Princip...
Minimizes technical debt from complexity
Delay decisions as long as you can, but no
longer
Maximizes the information you h...
Consider data lifecycle and ownership
Sensible breakdown of functionality
Lightweight tooling and documentation
Appropriat...
Software internal quality metrics focusing
on ease of change
Find hotspots and focus efforts there
Measure continually, fo...
Reversability
Only validate what you need
Be conservative in what you send
Be liberal in what you receive
Use version changes when a con...
Business sensible components
Aiming towards testability produces a
well-architected system
Messaging infrastructure used f...
Broken communications imply complex
integration
Organization’s design systems reflecting
their communication structures
If ...
Database Refactoring
Continuous Delivery
Contract testing
Techniques
Changes compose in the same way
functions compose
De-compose big change into series of
small changes
Each change is a refa...
Automate testing at all levels
Automate environments and configurations
Automate builds and deployments and use
continuous ...
Maximizes parallel independent work
Acceptance tests at the systems’ interface
Documents assumptions made
One traditional ...
Understand various forms of technical
debt
Define your architectural fitness function
Delay your decisions as long as you ca...
Thank you!
http://rebeccaparsons.com
http://www.thoughtworks.com
Próximos SlideShares
Carregando em…5
×

Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons

3.363 visualizações

Publicada em

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

Principles and Techniques of Evolutionary Architecture with Dr. Rebecca Parsons

  1. 1. Principles and Techniques of Evolutionary Architecture Rebecca Parsons Chief Technology Officer ThoughtWorks
  2. 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. 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. 4. Evolutionary Architecture and Emergent Design Evolutionary versus Emergent Design and Architecture Design and Architecture
  5. 5. Postel’s Law Last responsible moment Architect and develop for evolvability Conway’s Law Architect for testability Principles of Evolutionary Architecture
  6. 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. 7. Consider data lifecycle and ownership Sensible breakdown of functionality Lightweight tooling and documentation Appropriate coupling Architect for Evolvability
  8. 8. Software internal quality metrics focusing on ease of change Find hotspots and focus efforts there Measure continually, focusing on trends Develop for Evolvability
  9. 9. Reversability
  10. 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. 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. 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
  13. 13. Database Refactoring Continuous Delivery Contract testing Techniques
  14. 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. 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. 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. 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
  18. 18. Thank you! http://rebeccaparsons.com http://www.thoughtworks.com

×