109
EVOLUTIONARY ARCHITECTURE @patkua 1

Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

  • Upload
    others

  • View
    1

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

EVOLUTIONARY ARCHITECTURE@patkua

1

Page 2: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Who is @thoughtworks

Page 3: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Who is @patkua

tiny.cc/retrostiny.cc/twtl

#architect#developer#leader#coach

#lifelong-learner

#author#facilitator

#speaker

Page 4: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Evolutionary Architecture

Rebecca Parsons (ThoughtWorks CTO)

Neal Ford (Meme Wrangler)

Patrick Kua (Technical Principal)

Photos by Martin Fowler: http://martinfowler.com/albums/ThoughtWorkers/

Page 5: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Introductions

If you haven’t done so, please introduce yourself the people around you - you will be working in pairs

• Name • Role/Title • Company/Institution • Background

Page 6: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

What is one thing you want to get out of this talk?

STICKY-SESSION

COLLECT THESE ON FLIPCHARTS

Page 7: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

EVOLUTION

Page 8: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

NGECHA

… is inevitable

Page 9: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

NGECHA

Technical Domain

Page 10: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

TechnicalProgramming languages

Libraries

Frameworks

Tools

Operating environments

Technical constraints

Page 11: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

NGECHA

Technical Domain

Page 12: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

DomainRevenue models

Base technology adoption

Competitors

Customer needs

Markets

Products

Page 13: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

NGECHA

… is inevitable

Page 14: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

NGECHA

… is inevitable

If

then

Page 15: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture
Page 16: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture
Page 17: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

?

Page 18: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

CASE STUDY

18

Page 19: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Customer case study

Page 20: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Customer case study

Page 21: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

WHAT IF…

We architected a system specifically for change?

Page 22: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

DEFINITIONOur current working version

Page 23: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

DEFINITIONAn evolutionary architecture supports

continual and incremental change as a first principle along multiple dimensions

Page 24: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

But our architecture already supports change!

Page 25: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

or does it?

Page 26: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Example Architectural Patterns

Big Ball of Mud Layered Architecture

Microkernel Microservices

Page 27: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

How do each of these architectures support change (Technical + Domain)

Big Ball of Mud Layered Architecture

Microkernel Microservices

Page 28: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Big ball of mud

classes

coupling connectionsDIMENSIONS: 0

Page 29: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Layered architecture

PRESENTATION COMPONENT COMPONENT COMPONENT

BUSINESS COMPONENT COMPONENT COMPONENT

PERSISTENCE COMPONENT COMPONENT COMPONENT

DATABASE

DIMENSIONS: 1

Page 30: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Layered architecture

PRESENTATION COMPONENT COMPONENT COMPONENT

BUSINESS COMPONENT COMPONENT COMPONENT

PERSISTENCE COMPONENT COMPONENT COMPONENT

DATABASE

DIMENSIONS: 1

request

Page 31: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Layered architecture

PRESENTATION COMPONENT COMPONENT COMPONENT

BUSINESS COMPONENT COMPONENT COMPONENT

PERSISTENCE COMPONENT COMPONENT COMPONENT

DATABASE

DIMENSIONS: 1

request

SERVICE COMPONENT COMPONENT COMPONENT

Page 32: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Layered architecture

MVC

Page 33: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

PLUGIN PLUGIN

Microkernel

DIMENSIONS: 1

PLUGIN

PLUGIN

PLUGIN

PLUGIN

CORE SYSTEM

Page 34: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Microkernel

Page 35: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

DOMAIN SHIFT

35

Page 36: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Layered architecture

PRESENTATION COMPONENT COMPONENT COMPONENT

BUSINESS COMPONENT COMPONENT COMPONENT

PERSISTENCE COMPONENT COMPONENT COMPONENT

DATABASE

DOMAIN DIMENSIONS: 0

Page 37: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Microservices

APICUSTOMER

MODULE

MODULE

MODULE

USER/ROLE

MODULE

MODULE

MODULE

ACCOUNT

MODULE

MODULE

MODULE

PRODUCT

MODULE

MODULE

MODULE

INVENTORY

MODULE

MODULE

MODULE

FULFILLMENT

MODULE

MODULE

MODULE

CLIENT REQUESTS CLIENT REQUESTS CLIENT REQUESTS

DIMENSIONS: N

Page 38: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

DEFINITIONAn evolutionary architecture supports

continual and incremental change as a first principle along multiple dimensions

Page 39: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

PRINCIPLES

Page 40: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Does not dictate schedule

Supports fast feedback

Appropriate coupling

Iterative

Technical DomainMatches business capabilities

Enables experimentation

Decentralised governance

Fitness function

Page 41: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Fitness function

Page 42: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Fitness functionNFRs CFRs

Quality Attributes

Low response timeLarge # of users

IMPORTANT UNIMPORTANT

Strong audit trail

AvailabilityHeavy legal compliance

Internationalisation & Localisation Monitoring

Mobile responsive

Page 43: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Fitness functionNFRs CFRs

Quality Attributes

Low response timeLarge # of users

IMPORTANT UNIMPORTANTStrong audit trail

Availability Heavy legal compliance

Internationalisation & Localisation

MonitoringMobile responsive

Page 44: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Fitness functionNFRs CFRs

Quality Attributes

Metrics Tests

Page 45: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Fitness functionNFRs CFRs

Quality Attributes

Metrics Tests

There are known knowns

Page 46: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

There are known unknowns

There are known knowns

But there are also unknown unknowns

- Donald Rumsfeld

Page 47: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Generations

6 months

3 months

1 month

daily?

Page 48: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Time taken to get a single change into production

repeatablyreliably

Generations = Cycle time

Page 49: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Generations = Cycle time

Page 50: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Conway’s Law

organisations which design systems ... are constrained to produce designs

which are copies of the communication structures of these organisations

en.wikipedia.org/wiki/Conway%27s_law

- Melvin Conway, 1968

Page 51: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Conway’s Law Side Effect

UI Specialists

Middleware Specialists

DBAs

Page 52: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Monolith’s vs Microservices

Page 53: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

user interface

server-side

DBA

Page 54: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Orders

ShippingCatalog

Page 55: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Inverse conway manoeuvre

Orders

ShippingCatalog

Page 56: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Inverse conway manoeuvre

cross-functional teams… …organised around business capabilities

Because Conway’s Law!

Page 57: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

DDD’s “bounded context”

…physically realised

Page 58: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Products, not projects

projects:

products:

‘s “You build it, you run it”

Page 59: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Last responsible moment

time

com

plex

ity

Page 60: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Last responsible moment

Page 61: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Last responsible moment

Page 62: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Last responsible moment

Domain

Adapters

Ports and Adapters

Page 63: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Last responsible moment

Page 64: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Last responsible moment

this is not an excuse to abstract all the things!

Page 65: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Sense and probe

over

Page 66: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Last responsible moment

Architectural Spikes

Page 67: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Bring the pain forward

Page 68: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Bring the pain forward

deployment pipelines

database migrations/ refactoring automation

continuous integration

Page 69: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Principle driven architecture

over

Page 70: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

PUTTING IT INTO PRACTICE

Page 71: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

React v0.14

CustomerInfo 4.3.1

Customer 1.3.5

Hibernate

view

controller

model

ORM

PostgreSQL 9.4

Architecture is abstract until operationalised

view

controller

model

ORM

DB

React v0.14

CustomerInfo 4.3.1

Customer 1.3.5

Hibernate 4.3.11

view

controller

model

ORM

PostgreSQL 9.4

Hibernate 5.1.0

nealford.com/memeagora/2015/03/30/architecture_is_abstract_until_operationalized.html

Page 72: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Evolving your architecture

Architect Develop Release

Page 73: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Evolving your architecture

Architect

Develop

Release

Page 74: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Evolving your architecture

Architect

Develop

Release

Reflect

Page 75: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Evolving your architecture

Architect

Develop

Release

Reflect

Cycle time = constraint

Page 76: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

ENABLING CHANGE

Foster architectural

thinking

Page 77: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

ENABLING CHANGE

Foster architectural

thinking

with

ARCHITECTURAL BRIEFINGS

Page 78: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

ARCHITECTURAL BRIEFINGSARCHITECTURAL BRIEFINGS

Page 79: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

ARCHITECTURAL BRIEFINGS

Design decision Tool Implementation

Page 80: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

ARCHITECTURAL BRIEFINGS

?

?

Page 81: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

ARCHITECTURAL BRIEFINGS

Page 82: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

ARCHITECTURAL BRIEFINGS

Page 83: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

ARCHITECTURAL BRIEFINGS

Page 84: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

ARCHITECTURAL BRIEFINGS

Page 85: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

ARCHITECTURAL BRIEFINGS

Page 86: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

ARCHITECTURAL BRIEFINGS

Page 87: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

ARCHITECTURAL BRIEFINGS

Page 88: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

ARCHITECTURAL BRIEFINGS

Everyone becomes an Architect

Page 89: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Think like a town planner

Page 90: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Development practices that help

Continuous Delivery Cross Functional Teams

Architectural briefings

Feature Toggles Branch by abstraction

Tracer bullet deploymentsReview fitness functions

Early identification of fitness functions

Spikes

Page 91: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

CHOOSING STYLES

Page 92: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Build Buy

Page 93: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Build Buy

Page 94: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Build Buyand/or

Page 95: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Build Buyand/or

Libraries Frameworks COTS or Software Products

Custom code

Functionality

Page 96: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Build Buyand/or

Libraries Frameworks COTS or Software Products

Custom code

Functionality

Ability to change

Page 97: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Strategic

Commodity

Need for rapid change HighLow

Low

HighVa

lue

gene

ratin

g

Support

Experimental Best fit

Page 98: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Things that prevent change

Coupling Cohesion

Slow feedback cycles

Page 99: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

Cohesion

Functional

Sequential

Informational

Procedural

Temporal

Logical

Coincidental

Page 100: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

TRAPS

Page 101: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

TRAPS: EXUBERANT COUPLING

WSDLs

Page 102: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

TRAPS: PRODUCT CUSTOMISATION

Page 103: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

TRAPS: INTEGRATION AT THE DB LAYER

Page 104: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

TRAPS: INTEGRATION AT THE DB LAYER

Page 105: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

TRAPS: SOA VIA THE ESB ROUTE

Hidden Coupling

Smart Endpoints Dumb Pipes

Page 106: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

DEFINITIONAn evolutionary architecture supports

continual and incremental change as a first principle along multiple dimensions

Page 107: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

TO CONSIDERArchitectural choices Decision making process + thinking Organisational and cultural elements

Page 108: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

@patkua

THANK YOU

Page 109: Evolutionary Architecture - Carnegie Mellon University · Evolutionary Architecture Author: Patrick Kua \(ThoughtWorks\) Subject: This talk explores what evolutionary architecture

@patkua

QUESTIONS OR COMMENTS?