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

the whys and hows
SMART_READER_LITE
LIVE PREVIEW

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


slide-1
SLIDE 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

slide-2
SLIDE 2

WHY SHOULD I CARE?

Why should we care?

2
slide-3
SLIDE 3

We’re good at requirements change.

3
slide-4
SLIDE 4

What about ecosystem change?

4
slide-5
SLIDE 5

How is long term planning possible under constant change?

5
slide-6
SLIDE 6

How do we maintain this dynamic equilibrium?

6
slide-7
SLIDE 7 7
slide-8
SLIDE 8

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

8
slide-9
SLIDE 9

WHAT IS EVOLUTIONARY ARCHITECTURE?

What is evolutionary architecture?

9
slide-10
SLIDE 10

An evolutionary architecture supports guided incremental change across multiple dimensions.

10
slide-11
SLIDE 11

An evolutionary architecture supports guided incremental change across multiple dimensions.

11
slide-12
SLIDE 12

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

12
slide-13
SLIDE 13
slide-14
SLIDE 14

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

14
slide-15
SLIDE 15

TYPES OF FITNESS FUNCTIONS

▫ Atomic vs holistic ▫ Static vs dynamic ▫ Triggered vs continuous ▫ Manual vs automated ▫ Temporal ▫ Domain-specific?

15
slide-16
SLIDE 16

EXAMPLE FITNESS FUNCTIONS

▫ Cyclic dependencies ▫ Consumer driven contracts ▫ Caching with staleness ▫ Monitoring ▫ Synthetic transactions ▫ Chaos Monkey

16
slide-17
SLIDE 17

An evolutionary architecture supports guided incremental change across multiple dimensions.

17
slide-18
SLIDE 18

Two aspects of incremental change - application and

  • perations
18
slide-19
SLIDE 19

Application functionality

19
slide-20
SLIDE 20

Incremental from an

  • perations perspective
20
slide-21
SLIDE 21

An evolutionary architecture supports guided incremental change across multiple dimensions.

21
slide-22
SLIDE 22 22

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

  • perability

sustainability determinability

  • rthogonality

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

  • ilities
slide-23
SLIDE 23

PRINCIPLES

23
slide-24
SLIDE 24

PRINCIPLES OF EVOLUTIONARY ARCHITECTURE

▫ Last responsible moment ▫ Architect and develop for

evolvability

▫ Postels Law ▫ Architect for testability ▫ Conway’s Law

24
slide-25
SLIDE 25

Last responsible moment

25
slide-26
SLIDE 26

Architect and develop for evolvability

26
slide-27
SLIDE 27

Postel’s Law

27
slide-28
SLIDE 28

Architect for testability

28
slide-29
SLIDE 29

Conway’s Law

29
slide-30
SLIDE 30

TECHNIQUES

30
slide-31
SLIDE 31

TECHNIQUES OF EVOLUTIONARY ARCHITECTURE

▫ Database refactoring ▫ Choreography ▫ Contract testing

31
slide-32
SLIDE 32

EVOLVABILITY OF DIFFERENT SOFTWARE ARCHITECTURES

Evolvability of different software architectures

32
slide-33
SLIDE 33

Big ball of mud

33
slide-34
SLIDE 34

Structured monolith

34
slide-35
SLIDE 35

Layered monolith

35
slide-36
SLIDE 36

Micro-kernel

36
slide-37
SLIDE 37

Microservices

37
slide-38
SLIDE 38

MECHANICS

38
slide-39
SLIDE 39

MECHANICS

▫ Define your architectural fitness

function

39
slide-40
SLIDE 40

MECHANICS

▫ Define your architectural fitness

function

▫ Select a dimension you’re most

worried about

40
slide-41
SLIDE 41

MECHANICS

▫ Define your architectural fitness

function

▫ Select a dimension you’re most

worried about

▫ Start improving on that

dimension

41
slide-42
SLIDE 42

MECHANICS

▫ Define your architectural fitness

function

▫ Select a dimension you’re most

worried about

▫ Start improving on that

dimension

▫ Focus on what matters most

42
slide-43
SLIDE 43

MECHANICS

▫ Define your architectural fitness

function

▫ Select a dimension you’re most

worried about

▫ Start improving on that dimension ▫ Focus on what matters most ▫ Monitor trends, adapt and repeat

43
slide-44
SLIDE 44

THANK YOU

@rebeccaparsons

44