Evolutionary architecture
Upcoming SlideShare
Loading in...5

Evolutionary architecture



Rebecca Parsons - Agile East ATL

Rebecca Parsons - Agile East ATL



Total Views
Views on SlideShare
Embed Views



1 Embed 2

https://tweetdeck.twitter.com 2


Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
Post Comment
Edit your comment

Evolutionary architecture Evolutionary architecture Presentation Transcript

  • EvolutionaryArchitecture Rebecca Parsons CTO ThoughtWorks
  • AgendaEmergent design vs evolutionaryarchitecturePrinciples of evolutionary architectureTechniques of evolutionary architectureHow to achieve an evolutionaryarchitecture in practice
  • Design and ArchitectureEvolutionary versus EmergentDesign and ArchitectureEvolutionary Architecture and EmergentDesign
  • Principles of Evolutionary ArchitectureLast responsible momentArchitect and develop for evolvabilityPostel’s LawArchitect for testabilityConway’s Law
  • 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
  • Architect for EvolvabilitySensible breakdown of functionalityConsider data lifecycle and ownershipAppropriate couplingLightweight tooling and documentation
  • Develop for EvolvabilitySoftware internal quality metrics focusingon ease of changeFind hotspots and focus efforts thereMeasure continually, focusing on trends
  • Reversability
  • 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
  • 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
  • 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)
  • TechniquesDatabase RefactoringContinuous DeliveryHATEOS
  • 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
  • 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
  • HATEOASHypermedia as the Engine of ApplicationStateDistribution of informationConsumer driven contractsEvolvable contractsIdempotency and other properties
  • 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
  • Questions? http://rebeccaparsons.comhttp://www.thoughtworks.com