organic, not chaotic

58
Organic, not Chaotic: How to grow your Architecture Liz Keogh [email protected] @lunivore

Upload: liz-keogh

Post on 01-Dec-2014

506 views

Category:

Technology


1 download

DESCRIPTION

LSSC 2011 talk about incremental architecture. Includes some things about BDD and Real Options too.

TRANSCRIPT

Page 1: Organic, not chaotic

Organic,not Chaotic:How to growyour Architecture

Liz Keogh

[email protected]

@lunivore

Page 2: Organic, not chaotic

The Problem

Page 3: Organic, not chaotic

The Solution?

Page 4: Organic, not chaotic

Architectstry to get it

right.

Page 5: Organic, not chaotic

Development teamstry to get it

done.

Page 6: Organic, not chaotic

It’s alwaysa people problem.

Page 7: Organic, not chaotic

It’s also apoliticalproblem.

Page 8: Organic, not chaotic

Tragedyof the

Commons

Page 9: Organic, not chaotic

Hierarchy

Manager

Architect

Dev Dev

Architect

Dev

Page 10: Organic, not chaotic

Whole Team

Analysis Dev Test Release

Page 11: Organic, not chaotic

Assumeyou got it

wrong.

Page 12: Organic, not chaotic

Agile focuses onusing

fast feedback.

Lean focuses onmaking slow feedback

faster.

Page 13: Organic, not chaotic

Architectureis a

commitment.

Page 14: Organic, not chaotic

Real Options

Options have value.

Options expire.

Never commit earlyunless you know why.

Page 15: Organic, not chaotic

A Thought Experiment

Page 16: Organic, not chaotic

Learning is60% - 80%

of software development

Page 17: Organic, not chaotic

If a project has no risks, don’t do it.

Page 18: Organic, not chaotic

The value of optionsincreases

as uncertainty rises

Page 19: Organic, not chaotic

Don’t pick the right technology,pick the one that’scheapest to change.

Chris Matts

Page 20: Organic, not chaotic

Deliberate Discovery

Page 21: Organic, not chaotic

Traditional

Rework

Developers Testers

Deliberate Discovery skills

Page 22: Organic, not chaotic

BDD

Less Rework

Developers Testers

Deliberate Discovery skills

Testers

Page 23: Organic, not chaotic

Gatekeepers

Rework

Developers Architects

Strategicplans

Architects

Tactical constraints

Newplans

Page 24: Organic, not chaotic

Educators

Architects

Architectural“tests”

Less Rework

DevelopersArchitects

Page 25: Organic, not chaotic

The Feature Injection template

In order to achieve a goalAs the stakeholderI want some stuff.

Page 26: Organic, not chaotic

An Example

In order to reduce security operations costsAs the VP of operationsI want users to use our single sign on.

Page 27: Organic, not chaotic

Stakeholders, not Users

Page 28: Organic, not chaotic

Architectural Scenarios

Page 29: Organic, not chaotic

SpecificMeasurableAchievableRelevantTimeboxed

Or, how do we know when we’re done?

Page 30: Organic, not chaotic

Given a contextWhen an event happens

Then an outcome should occur

Page 31: Organic, not chaotic

Given Fred Brownis using the reporting app

When Fred Brown goesto the trading app

Then he should belogged on automatically

Page 32: Organic, not chaotic

Is there a context in whichthis architecture will create

a different outcome?

Page 33: Organic, not chaotic

Given Janet Green is not a trader

Given Janet is logged onto the reporting system

When Janet accesses thetrading system

Then Janet should be refused access

Page 34: Organic, not chaotic

Is this the only outcomethat matters?

If we could achieve it with pixies, would it be enough?

Page 35: Organic, not chaotic

Given Fred Brownis using the reporting app

When Fred Brown goesto the trading app

Then he should belogged on automatically

And his access for each appshould be logged

Page 36: Organic, not chaotic

Having conversations

is more important thancapturing conversations

is more important thanautomating conversations

Page 37: Organic, not chaotic

Dependent Aspects

Page 38: Organic, not chaotic

Walking Skeleton

Page 39: Organic, not chaotic

Prioritisiation

Page 40: Organic, not chaotic

The Big Bucket

Page 41: Organic, not chaotic

A Gantt Chart…

1 1 1

3 3

2 2

1

2

3

Page 42: Organic, not chaotic

1

1

1

3

3

2

2

…on its side

Page 43: Organic, not chaotic

Backlog1

1

1

3

3

2

2

Page 44: Organic, not chaotic

Prioritizing for deadline

$$$$$$$$

$$$$$$$$

$$$$$$$$

$$$$$

$$$$$

$$

$$

$$

Shipped (1 year)

Not ShippedDeadline

Page 45: Organic, not chaotic

Minimum Marketable Feature

$$$$$$$$

$$$$$$$$

$$$$$$$$

$$$$$

$$$$$

$$

$$

$$

Shipped (2 months)

Not Shipped

Not Shipped

Shipped (2 months)

Page 46: Organic, not chaotic
Page 47: Organic, not chaotic

Focusing on Risk

Page 48: Organic, not chaotic

Options have value

Page 49: Organic, not chaotic

Options expire

Page 50: Organic, not chaotic

Shared Libraries

Page 51: Organic, not chaotic

Smallis

beautiful

Page 52: Organic, not chaotic

EnterpriseData

Dictionary

Page 53: Organic, not chaotic
Page 54: Organic, not chaotic

Bounded Contexts

Page 55: Organic, not chaotic

The Best Approach

Page 56: Organic, not chaotic

Gembaor

getting your hands dirty

Page 57: Organic, not chaotic

Liz [email protected]@lunivore

Page 58: Organic, not chaotic

Booklist

“Managing the Design Factory”,Don Reinertsen

“Waltzing with Bears”,Tom de Marco and Timothy Lister

“Domain Driven Design”,Eric Evans