organic, not chaotic

Post on 01-Dec-2014

506 Views

Category:

Technology

1 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

Organic,not Chaotic:How to growyour Architecture

Liz Keogh

liz@lunivore.com

@lunivore

The Problem

The Solution?

Architectstry to get it

right.

Development teamstry to get it

done.

It’s alwaysa people problem.

It’s also apoliticalproblem.

Tragedyof the

Commons

Hierarchy

Manager

Architect

Dev Dev

Architect

Dev

Whole Team

Analysis Dev Test Release

Assumeyou got it

wrong.

Agile focuses onusing

fast feedback.

Lean focuses onmaking slow feedback

faster.

Architectureis a

commitment.

Real Options

Options have value.

Options expire.

Never commit earlyunless you know why.

A Thought Experiment

Learning is60% - 80%

of software development

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

The value of optionsincreases

as uncertainty rises

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

Chris Matts

Deliberate Discovery

Traditional

Rework

Developers Testers

Deliberate Discovery skills

BDD

Less Rework

Developers Testers

Deliberate Discovery skills

Testers

Gatekeepers

Rework

Developers Architects

Strategicplans

Architects

Tactical constraints

Newplans

Educators

Architects

Architectural“tests”

Less Rework

DevelopersArchitects

The Feature Injection template

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

An Example

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

Stakeholders, not Users

Architectural Scenarios

SpecificMeasurableAchievableRelevantTimeboxed

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

Given a contextWhen an event happens

Then an outcome should occur

Given Fred Brownis using the reporting app

When Fred Brown goesto the trading app

Then he should belogged on automatically

Is there a context in whichthis architecture will create

a different outcome?

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

Is this the only outcomethat matters?

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

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

Having conversations

is more important thancapturing conversations

is more important thanautomating conversations

Dependent Aspects

Walking Skeleton

Prioritisiation

The Big Bucket

A Gantt Chart…

1 1 1

3 3

2 2

1

2

3

1

1

1

3

3

2

2

…on its side

Backlog1

1

1

3

3

2

2

Prioritizing for deadline

$$$$$$$$

$$$$$$$$

$$$$$$$$

$$$$$

$$$$$

$$

$$

$$

Shipped (1 year)

Not ShippedDeadline

Minimum Marketable Feature

$$$$$$$$

$$$$$$$$

$$$$$$$$

$$$$$

$$$$$

$$

$$

$$

Shipped (2 months)

Not Shipped

Not Shipped

Shipped (2 months)

Focusing on Risk

Options have value

Options expire

Shared Libraries

Smallis

beautiful

EnterpriseData

Dictionary

Bounded Contexts

The Best Approach

Gembaor

getting your hands dirty

Liz Keoghliz@lunivore.com@lunivore

Booklist

“Managing the Design Factory”,Don Reinertsen

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

“Domain Driven Design”,Eric Evans

top related