Successfully reported this slideshow.

Agile Architecture

604 views

Published on

Agile/Lean architecture presentation. Starts going through important concepts and pros/cons of upfront work vs

Published in: Technology, News & Politics
  • Be the first to comment

Agile Architecture

  1. 1. Agile architectureThe next silver bullet to solve all your problemsMagnus Mickelsson, Citerus ABmagnus.mickelsson@citerus.se 1
  2. 2. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183 Upfront 2
  3. 3. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183 Upfront 3
  4. 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
  5. 5. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183 Engineering Practices DONE 5
  6. 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. 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. 8. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183 Where do we place ourselves on the scale? 8
  9. 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. 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. 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. 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. 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. 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. 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. 16. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183 Whirlpool model exploration method 16
  17. 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
  18. 18. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183 Explore, think, test, measure, improve... 18
  19. 19. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183 ... and maybe, just maybe ... 19
  20. 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. 21. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183 Model-View-Controller Model View Customer Service Controller Account 21
  22. 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
  23. 23. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183 DCI - Data, Context, Interaction Model/Data View Customer Controller Account Account transfer Source Target account account Interaction 23
  24. 24. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183 DCI - Data, Context, Interaction Model/Data View Customer Controller Account Account transfer Source Target account account Account Account Interaction 24
  25. 25. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183 DCI - Data, Context, Interaction Model/Data View Customer Controller Account Account transfer € Source Target account account Account Account Interaction 25
  26. 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
  27. 27. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 0708-444183 Questions? magnus.mickelsson@citerus.se magnus.mickelsson@gmail.com Twitter: magnusmickel 27
  28. 28. Citerus - Magnus Mickelsson, 2011 - magnus.mickelsson@citerus.se - 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) 28

×