Upload
magnus-mickelsson
View
416
Download
2
Tags:
Embed Size (px)
DESCRIPTION
Agile/Lean architecture presentation. Starts going through important concepts and pros/cons of upfront work vs
Citation preview
1
Agile architectureThe next silver bullet to solve all your problems
Magnus Mickelsson, Citerus [email protected]
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>
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
6
Cowboy-architecture
• Hack something that works, then ”refactoring”
• Structures and patterns emerge..
• .... sometimes.
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
7
Cowboy-architecture
• Hack something that works, then ”refactoring”
• Structures and patterns emerge..
• .... sometimes.
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
8
Where do we place ourselves on the scale?
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
9
Lean-principles
• Go out and see
• Optimize value flow
• Eliminate waste
• 5xWhy?
• Pull, not push
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
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
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
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
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
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
15
DDD is not just application design
• Big Balls of Mud + Entropy -> Core Domain
• Context mapping
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
16
Whirlpool model exploration method
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
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
18
Explore, think, test, measure, improve...
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
19
... and maybe, just maybe ...
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
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
21
Model-View-Controller
Account
Customer
Model
View
Controller Serv
ice
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
22
DCI - Data, Context, Interaction
Account
Customer
Model/Data
View
Controller Context
Role Role
Interaction
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
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
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
€
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
Citerus - Magnus Mickelsson, 2011 - [email protected] - 0708-444183
27
Questions?
[email protected]@gmail.com
Twitter: magnusmickel
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)