Agile Architecture

28
1 Agile architecture The next silver bullet to solve all your problems Magnus Mickelsson, Citerus AB [email protected]

description

Agile/Lean architecture presentation. Starts going through important concepts and pros/cons of upfront work vs

Transcript of Agile Architecture

Page 1: Agile Architecture

1

Agile architectureThe next silver bullet to solve all your problems

Magnus Mickelsson, Citerus [email protected]

Page 2: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

2

Upfront

Page 3: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

3

Upfront

Page 4: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

4

Agile methods

• Deliver working software

• Individuals/communication > processes and tools

• Close to the business

• User stories

• Engineering practices

As a .. <role>I want .. <function>So that .. <purpose>

Page 5: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

5

Engineering Practices

DONE

Page 6: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

6

Cowboy-architecture

• Hack something that works, then ”refactoring”

• Structures and patterns emerge..

• .... sometimes.

Page 7: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

7

Cowboy-architecture

• Hack something that works, then ”refactoring”

• Structures and patterns emerge..

• .... sometimes.

Page 8: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

8

Where do we place ourselves on the scale?

Page 9: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

9

Lean-principles

• Go out and see

• Optimize value flow

• Eliminate waste

• 5xWhy?

• Pull, not push

Page 10: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

10

Lean-principles

• Go out and see

• Optimize value flow

• Eliminate waste

• 5xWhy?

• Pull, not push

• Defects

• Waiting

• Over-production

• Transport

• Complexity

• Unused creativity

Page 11: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

11

Systems thinking

• How do things really work?

• How do our users work?

• What are the consequences of the current way?

• Improve the process (without IT)

• Pull IT into the improvement work

http://vimeo.com/19122939

Page 12: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

12

Lean/Agile architecture work

• Working software

• Working with people > specifications

• Increase knowledge in the organisation

• Eliminate waste

• Systems thinking - optimise the whole

• Be ready to get ”pulled” in

Page 13: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

13

”Lean Architecture” - Coplien/Björnvig

• ”All together, from early on”

• Reduce need for things that slow down

• Think Lean, be Agile

• Some upfront-work => what the system is

• Use-cases good for what the system does

Page 14: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

14

DDD - Domain-driven Design

• Cooperation with domain experts yields invaluable knowledge

• Let the domain control the solution design, not technology

• Design that makes maintenance and developer testing easier

Page 15: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

15

DDD is not just application design

• Big Balls of Mud + Entropy -> Core Domain

• Context mapping

Page 16: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

16

Whirlpool model exploration method

Page 17: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

17

Example #1 - simple/isolated webapp

• Now, target, expectations

• How do things really work?

• What can be done without IT?

• Gather user stories (detail a few)

• Ubiqutous language (DDD)

• Explore architecture/design - sprint 0

• 1-2 spikes

Page 18: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

18

Explore, think, test, measure, improve...

Page 19: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

19

... and maybe, just maybe ...

Page 20: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

20

Example #2 - average to large system

• Systems thinking

• Use-cases or user stories?

• Context mapping

• Architecture (form) - what is the system?

• Map subsystems to teams

• Explore what the system does

• Focus on Lean, to be Agile

Page 21: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

21

Model-View-Controller

Account

Customer

Model

View

Controller Serv

ice

Page 22: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

22

DCI - Data, Context, Interaction

Account

Customer

Model/Data

View

Controller Context

Role Role

Interaction

Page 23: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

23

DCI - Data, Context, Interaction

Account

Customer

Model/Data

View

Controller Account transfer

Source account

Target account

Interaction

Page 24: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

24

DCI - Data, Context, Interaction

Account

Customer

Model/Data

View

Controller Account transfer

Source account

Target account

Account Account

Interaction

Page 25: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

25

DCI - Data, Context, Interaction

Account

Customer

Model/Data

View

Controller Account transfer

Source account

Target account

Account Account

Interaction

Page 26: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

26

What’s worth taking home?

• What can be done without IT? Systems thinking

• Use-cases or user stories?

• How much ”form” upfront depends

• Lean principles help us stay Agile

• DDD, Context mapping, DCI

Page 27: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

27

Questions?

[email protected]@gmail.com

Twitter: magnusmickel

Page 28: Agile Architecture

Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183

28

Reading tips

• Lean architecture (Coplien/Björnvig)

• The Pragmatic Programmer (Hunt/Thomas)

• Domain Driven Design (Evans)

• Working effectively with legacy code (Feathers)

• Refactoring to patterns (Kerievsky)

• Lean Software Development (2*Poppendieck)

• Freedom from Command & Control ... (Seddon)

• Evolutionary architecture & Emergent Design (Ford)