The document discusses agile architecture and lean principles. It advocates applying systems thinking to understand how users and processes really work in order to improve them without relying solely on technology. The document also discusses techniques like domain-driven design, modeling approaches like data-context-interaction, and the importance of exploring architecture and design upfront through spikes and prototypes to develop the right system.
4. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183
Agile methods
• Deliver working software
• Individuals/communication > processes and tools
• Close to the business
As a .. <role>
• User stories I want .. <function>
So that .. <purpose>
• Engineering practices
4
6. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183
Cowboy-architecture
• Hack something that works, then ”refactoring”
• Structures and patterns emerge..
• .... sometimes.
6
7. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183
Cowboy-architecture
• Hack something that works, then ”refactoring”
• Structures and patterns emerge..
• .... sometimes.
7
8. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183
Where do we place ourselves on the scale?
8
9. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183
Lean-principles
• Go out and see
• Optimize value flow
• Eliminate waste
• 5xWhy?
• Pull, not push
9
10. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183
Lean-principles
• Defects
• Go out and see
• Waiting
• Optimize value flow
• Over-production
• Eliminate waste
• Transport
• 5xWhy?
• Complexity
• Pull, not push
• Unused creativity
10
11. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 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
11
12. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 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
12
13. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 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
13
14. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 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
14
15. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183
DDD is not just application design
• Big Balls of Mud + Entropy -> Core Domain
• Context mapping
15
16. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183
Whirlpool model exploration method
16
17. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 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
17
19. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183
... and maybe, just maybe ...
19
20. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 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
20
21. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183
Model-View-Controller
Model
View Customer
Service
Controller Account
21
22. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183
DCI - Data, Context, Interaction
Model/Data
View Customer
Controller Context Account
Role Role
Interaction
22
26. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 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
26