Agile architecture

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

description

Lean/Agile system architecture presentation. Goes through pros/cons of upfront work and the xp/agile approach. Defines important concepts, shows examples of how things could be done and goes through tools/things that can help along the way.

Transcript of Agile architecture

Page 1: Agile architecture

1

Agile architecture

The next silver bullet to solve all your problems

Magnus Mickelsson, Citerus AB

[email protected]

Page 2: Agile architecture

2

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

Upfront

Page 3: Agile architecture

3

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

Upfront

Page 4: Agile architecture

4

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

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

5

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

Engineering Practices

DONE

Page 6: Agile architecture

6

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

Cowboy-architecture

• Hack something that works, then ”refactoring”

• Structures and patterns emerge..

• .... sometimes.

Page 7: Agile architecture

7

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

Cowboy-architecture

• Hack something that works, then ”refactoring”

• Structures and patterns emerge..

• .... sometimes.

Page 8: Agile architecture

8

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

Where do we place ourselves on the scale?

Page 9: Agile architecture

9

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

Lean-principles

• Go out and see

• Optimize value flow

• Eliminate waste

• 5xWhy?

• Pull, not push

Page 10: Agile architecture

10

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

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

11

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

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

12

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

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

13

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

”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

14

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

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

15

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

DDD is not just application design

• Big Balls of Mud + Entropy -> Core Domain

• Context mapping

Page 16: Agile architecture

16

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

Whirlpool model exploration method

Page 17: Agile architecture

17

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

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

18

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

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

Page 19: Agile architecture

19

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

... and maybe, just maybe ...

Page 20: Agile architecture

20

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

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

21

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

Model-View-Controller

Account

Customer

Model

View

Controller Serv

ice

Page 22: Agile architecture

22

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

DCI - Data, Context, Interaction

Account

Customer

Model/Data

View

Controller Context

Role Role

Interaction

Page 23: Agile architecture

23

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

DCI - Data, Context, Interaction

Account

Customer

Model/Data

View

Controller Account transfer

Source account

Target account

Interaction

Page 24: Agile architecture

24

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

DCI - Data, Context, Interaction

Account

Customer

Model/Data

View

Controller Account transfer

Source account

Target account

Account Account

Interaction

Page 25: Agile architecture

25

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

DCI - Data, Context, Interaction

Account

Customer

Model/Data

View

Controller Account transfer

Source account

Target account

Account Account

Interaction

€$

Page 26: Agile architecture

26

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

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

27

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

Questions?

[email protected]@gmail.com

Twitter: magnusmickel

Page 28: Agile architecture

28

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

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)