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
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
E v o l u t i o n a r y A r c h i t e c t u r e
Rebecca Parsons Chief Technology Officer ThoughtWorks @rebeccaparsons
Why should we care?
2We’re good at requirements change.
3What about ecosystem change?
4How is long term planning possible under constant change?
5How do we maintain this dynamic equilibrium?
6How do we know we’re maintaining our “ilities” over time?
8What is evolutionary architecture?
9An evolutionary architecture supports guided incremental change across multiple dimensions.
10An evolutionary architecture supports guided incremental change across multiple dimensions.
11An evolutionary computing fitness function characterizes how close a solution is to the desired result
12An architectural fitness function characterizes how close a system is to the desired architectural characteristics.
14TYPES OF FITNESS FUNCTIONS
EXAMPLE FITNESS FUNCTIONS
An evolutionary architecture supports guided incremental change across multiple dimensions.
17Two aspects of incremental change - application and
Application functionality
19Incremental from an
An evolutionary architecture supports guided incremental change across multiple dimensions.
21accessibility 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
sustainability determinability
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
PRINCIPLES OF EVOLUTIONARY ARCHITECTURE
evolvability
Last responsible moment
25Architect and develop for evolvability
26Postel’s Law
27Architect for testability
28Conway’s Law
29TECHNIQUES OF EVOLUTIONARY ARCHITECTURE
EVOLVABILITY OF DIFFERENT SOFTWARE ARCHITECTURES
Evolvability of different software architectures
32Big ball of mud
33Structured monolith
34Layered monolith
35Micro-kernel
36Microservices
37MECHANICS
function
39MECHANICS
function
worried about
40MECHANICS
function
worried about
dimension
41MECHANICS
function
worried about
dimension
MECHANICS
function
worried about
@rebeccaparsons
44