O SlideShare utiliza cookies para otimizar a funcionalidade e o desempenho do site, assim como para apresentar publicidade mais relevante aos nossos usuários. Se você continuar a navegar o site, você aceita o uso de cookies. Leia nosso Contrato do Usuário e nossa Política de Privacidade.
O SlideShare utiliza cookies para otimizar a funcionalidade e o desempenho do site, assim como para apresentar publicidade mais relevante aos nossos usuários. Se você continuar a utilizar o site, você aceita o uso de cookies. Leia nossa Política de Privacidade e nosso Contrato do Usuário para obter mais detalhes.
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
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 reﬂectingtheir 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)
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 conﬁgurationsAutomate 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 ArchitectureDeﬁne your architectural ﬁtness functionDelay your decisions as long as you canUnderstand various forms of technicaldebtImplement evidence based re-useCreate and maintain the testing safetynet