the whys and hows
play

THE WHYS AND HOWS Rebecca Parsons Chief Technology Officer - PowerPoint PPT Presentation

E v o l u t i o n a r y A r c h i t e c t u r e THE WHYS AND HOWS Rebecca Parsons Chief Technology Officer ThoughtWorks @rebeccaparsons WHY SHOULD I CARE? Why should we care? 2 Were good at requirements change. 3 What about


  1. E v o l u t i o n a r y A r c h i t e c t u r e THE WHYS AND HOWS Rebecca Parsons Chief Technology Officer ThoughtWorks @rebeccaparsons

  2. WHY SHOULD I CARE? Why should we care? 2

  3. We’re good at requirements change. 3

  4. What about ecosystem change? 4

  5. How is long term planning possible under constant change? 5

  6. How do we maintain this dynamic equilibrium? 6

  7. 7

  8. How do we know we’re maintaining our “ilities” over time? 8

  9. WHAT IS EVOLUTIONARY ARCHITECTURE? What is evolutionary architecture? 9

  10. An evolutionary architecture supports guided incremental change across multiple dimensions. 10

  11. An evolutionary architecture supports guided incremental change across multiple dimensions. 11

  12. An evolutionary computing fitness function characterizes how close a solution is to the desired result 12

  13. An architectural fitness function characterizes how close a system is to the desired architectural characteristics. 14

  14. ▫ Atomic vs holistic TYPES OF FITNESS FUNCTIONS ▫ Static vs dynamic ▫ Triggered vs continuous ▫ Manual vs automated ▫ Temporal ▫ Domain-specific? 15

  15. ▫ Cyclic dependencies EXAMPLE FITNESS FUNCTIONS ▫ Consumer driven contracts ▫ Caching with staleness ▫ Monitoring ▫ Synthetic transactions ▫ Chaos Monkey 16

  16. An evolutionary architecture supports guided incremental change across multiple dimensions. 17

  17. Two aspects of incremental change - application and operations 18

  18. Application functionality 19

  19. Incremental from an operations perspective 20

  20. An evolutionary architecture supports guided incremental change across multiple dimensions. 21

  21. -ilities accessibility reliability repeatability accountability extensibility reproducibility accuracy failure transparency resilience adaptability fault-tolerance responsiveness administrability fidelity reusability affordability flexibility robustness agility inspectability safety auditability installability scalability autonomy integrity seamlessness availability interchangeability self-sustainability compatibility interoperability serviceability composability learnability supportability configurability maintainability securability correctness manageability simplicity credibility mobility stability customizability modifiability standards compliance debugability modularity survivability degradability operability sustainability determinability orthogonality tailorability demonstrability portability testability dependability precision timeliness deployability predictability traceability discoverability process capabilities transparency distributability producibility ubiquity durability provability understandability effectiveness recoverability upgradability efficiency relevance usability 22

  22. PRINCIPLES 23

  23. ▫ Last responsible moment PRINCIPLES OF EVOLUTIONARY ARCHITECTURE ▫ Architect and develop for ▫ Postels Law evolvability ▫ Architect for testability ▫ Conway’s Law 24

  24. Last responsible moment 25

  25. Architect and develop for evolvability 26

  26. Postel’s Law 27

  27. Architect for testability 28

  28. Conway’s Law 29

  29. TECHNIQUES 30

  30. ▫ Database refactoring TECHNIQUES OF EVOLUTIONARY ARCHITECTURE ▫ Choreography ▫ Contract testing 31

  31. EVOLVABILITY OF DIFFERENT SOFTWARE ARCHITECTURES Evolvability of different software architectures 32

  32. Big ball of mud 33

  33. Structured monolith 34

  34. Layered monolith 35

  35. Micro-kernel 36

  36. Microservices 37

  37. MECHANICS 38

  38. ▫ Define your architectural fitness MECHANICS function 39

  39. ▫ Define your architectural fitness MECHANICS ▫ Select a dimension you’re most function worried about 40

  40. ▫ Define your architectural fitness MECHANICS ▫ Select a dimension you’re most function ▫ Start improving on that worried about dimension 41

  41. ▫ Define your architectural fitness MECHANICS ▫ Select a dimension you’re most function ▫ Start improving on that worried about ▫ Focus on what matters most dimension 42

  42. MECHANICS ▫ Define your architectural fitness ▫ Select a dimension you’re most function ▫ Start improving on that dimension worried about ▫ Focus on what matters most ▫ Monitor trends, adapt and repeat 43

  43. THANK YOU @rebeccaparsons 44

Recommend


More recommend