Agile architecture
-
Upload
magnus-mickelsson -
Category
Technology
-
view
581 -
download
0
description
Transcript of Agile architecture
1
Agile architecture
The next silver bullet to solve all your problems
Magnus Mickelsson, Citerus AB
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>
6
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
Cowboy-architecture
• Hack something that works, then ”refactoring”
• Structures and patterns emerge..
• .... sometimes.
7
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
Cowboy-architecture
• Hack something that works, then ”refactoring”
• Structures and patterns emerge..
• .... sometimes.
8
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
Where do we place ourselves on the scale?
9
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
Lean-principles
• Go out and see
• Optimize value flow
• Eliminate waste
• 5xWhy?
• Pull, not push
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
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
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
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
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
15
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
DDD is not just application design
• Big Balls of Mud + Entropy -> Core Domain
• Context mapping
16
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
Whirlpool model exploration method
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
18
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
Explore, think, test, measure, improve...
19
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
... and maybe, just maybe ...
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
21
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
Model-View-Controller
Account
Customer
Model
View
Controller Serv
ice
22
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
DCI - Data, Context, Interaction
Account
Customer
Model/Data
View
Controller Context
Role Role
Interaction
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
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
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
€$
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
27
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
Questions?
[email protected]@gmail.com
Twitter: magnusmickel
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)