agile architecture
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
![Page 1: Agile architecture](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/1.jpg)
1
Agile architecture
The next silver bullet to solve all your problems
Magnus Mickelsson, Citerus AB
![Page 4: Agile architecture](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/4.jpg)
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 6: Agile architecture](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/6.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/7.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/8.jpg)
8
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
Where do we place ourselves on the scale?
![Page 9: Agile architecture](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/9.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/10.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/11.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/12.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/13.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/14.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/15.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/16.jpg)
16
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
Whirlpool model exploration method
![Page 17: Agile architecture](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/17.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/18.jpg)
18
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
Explore, think, test, measure, improve...
![Page 19: Agile architecture](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/19.jpg)
19
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
... and maybe, just maybe ...
![Page 20: Agile architecture](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/20.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/21.jpg)
21
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
Model-View-Controller
Account
Customer
Model
View
Controller Serv
ice
![Page 22: Agile architecture](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/22.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/23.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/24.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/25.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/26.jpg)
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](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/27.jpg)
27
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
Questions?
[email protected]@gmail.com
Twitter: magnusmickel
![Page 28: Agile architecture](https://reader036.vdocuments.net/reader036/viewer/2022062704/555a7633d8b42a972b8b52ff/html5/thumbnails/28.jpg)
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)