EvolutionaryArchitecture  Rebecca Parsons CTO ThoughtWorks
AgendaEmergent design vs evolutionaryarchitecturePrinciples of evolutionary architectureTechniques of evolutionary archite...
Design and         ArchitectureEvolutionary versus EmergentDesign and ArchitectureEvolutionary Architecture and EmergentDe...
Principles of Evolutionary         ArchitectureLast responsible momentArchitect and develop for evolvabilityPostel’s LawAr...
Last Responsible       MomentDelay decisions as long as you can, but nolongerMaximizes the information you haveMinimizes t...
Architect for       EvolvabilitySensible breakdown of functionalityConsider data lifecycle and ownershipAppropriate coupli...
Develop for        EvolvabilitySoftware internal quality metrics focusingon ease of changeFind hotspots and focus efforts ...
Reversability
Postel’s LawBe conservative in what you sendBe liberal in what you receiveOnly validate what you needHolds for any informa...
Architect for        TestabilityAiming towards testability produces awell-architected systemMessaging infrastructure used ...
Conway’s LawOrganizations design systems reflectingtheir communication structuresBroken communications imply complexintegra...
TechniquesDatabase RefactoringContinuous DeliveryHATEOS
Database         RefactoringDe-compose big change into series ofsmall changesEach change is a refactoring/migrationpair (o...
Continuous          DeliveryAutomate environments and configurationsAutomate builds and use continuousintegrationAutomate t...
HATEOASHypermedia as the Engine of ApplicationStateDistribution of informationConsumer driven contractsEvolvable contracts...
Evolutionary       ArchitectureDefine your architectural fitness functionDelay your decisions as long as you canUnderstand v...
Questions?  http://rebeccaparsons.comhttp://www.thoughtworks.com
Upcoming SlideShare
Loading in...5
×

Evolutionary architecture

1,068

Published on

Rebecca Parsons - Agile East ATL
2011

Published in: News & Politics, Technology
0 Comments
1 Like
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
1,068
On Slideshare
0
From Embeds
0
Number of Embeds
1
Actions
Shares
0
Downloads
12
Comments
0
Likes
1
Embeds 0
No embeds

No notes for slide

Evolutionary architecture

  1. 1. EvolutionaryArchitecture Rebecca Parsons CTO ThoughtWorks
  2. 2. AgendaEmergent design vs evolutionaryarchitecturePrinciples of evolutionary architectureTechniques of evolutionary architectureHow to achieve an evolutionaryarchitecture in practice
  3. 3. Design and ArchitectureEvolutionary versus EmergentDesign and ArchitectureEvolutionary Architecture and EmergentDesign
  4. 4. Principles of Evolutionary ArchitectureLast responsible momentArchitect and develop for evolvabilityPostel’s LawArchitect for testabilityConway’s Law
  5. 5. Last Responsible MomentDelay decisions as long as you can, but nolongerMaximizes the information you haveMinimizes technical debt from complexityDecide early what your drivers are, andprioritize decisions accordinglyEvolutionary, neither emergent nor basedon guesswork
  6. 6. Architect for EvolvabilitySensible breakdown of functionalityConsider data lifecycle and ownershipAppropriate couplingLightweight tooling and documentation
  7. 7. Develop for EvolvabilitySoftware internal quality metrics focusingon ease of changeFind hotspots and focus efforts thereMeasure continually, focusing on trends
  8. 8. Reversability
  9. 9. Postel’s LawBe conservative in what you sendBe liberal in what you receiveOnly validate what you needHolds for any information exchangeUse version changes when a contractmust be broken
  10. 10. Architect for TestabilityAiming towards testability produces awell-architected systemMessaging infrastructure used formessaging, not business logicBusiness sensible componentsTesting at many levels, including contractBuild pipelines support the volume
  11. 11. Conway’s LawOrganizations design systems reflectingtheir communication structuresBroken communications imply complexintegrationSilos often result in broken communicationIf you don’t want your product to look likeyour organization, change yourorganization (or your product)
  12. 12. TechniquesDatabase RefactoringContinuous DeliveryHATEOS
  13. 13. Database RefactoringDe-compose big change into series ofsmall changesEach change is a refactoring/migrationpair (or triple if you include access code)Changes compose in the same wayfunctions composeAnd of course, version control thechangesAnd apply in the various environmentsduring promotion
  14. 14. Continuous DeliveryAutomate environments and configurationsAutomate builds and use continuousintegrationAutomate testing at all levelsAutomate deploymentJust because you CAN release at anytime doesn’t mean you HAVE to
  15. 15. HATEOASHypermedia as the Engine of ApplicationStateDistribution of informationConsumer driven contractsEvolvable contractsIdempotency and other properties
  16. 16. Evolutionary ArchitectureDefine your architectural fitness functionDelay your decisions as long as you canUnderstand various forms of technicaldebtImplement evidence based re-useCreate and maintain the testing safetynet
  17. 17. Questions? http://rebeccaparsons.comhttp://www.thoughtworks.com
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×