Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Software architecture also needs agile

990 views

Published on

How to keep software architecture part of the Agile process: from system requirement specifications to documentation of important decisions

Published in: Software
  • Be the first to comment

Software architecture also needs agile

  1. 1. Software Architecture Also Needs Agile Boyan Mihaylov @bmihaylov Agile Day Riga 2015
  2. 2. Grammatically correct Agile Day Riga 2015 2 agile [aj-uh l, -ahyl] adjective 1. quick and well-coordinated in movement; lithe: an agile leap 2. active; lively: an agile person 3. marked by an ability to think quickly; mentally acute or aware: She's 95 and still very agile http://dictionary.reference.com/browse/agile
  3. 3. Software architecture also needs Agile… 3Agile Day Riga 2015 Thinking ExecutionPractices
  4. 4. Typical software architecture Agile Day Riga 2015 4 Web Interface Business Logic Data Access Database Caching Authorization Client Application API External services
  5. 5. What is software architecture Agile Day Riga 2015 5 Software architecture is the fundamental organization of a SYSTEM embodied in its COMPONENTS, their RELATIONSHIPS to each other, and to the ENVIRONMENT, and the principles guiding its design and evolution. IEEE 1471
  6. 6. When I mention Agile… Agile Day Riga 2015 6 “Yes, we are doing SCRUM”
  7. 7. Agile Day Riga 2015 7 Agile ≠ SCRUM Agile methodologies SCRUM
  8. 8. What is Agile all about? Welcome changing requirements, even late in development Deliver working software frequently Reflect on how to become more effective Agile Day Riga 2015 8 CHANGE It is all about reacting to http://www.agilemanifesto.org/principles.html
  9. 9. Agile in practice Practice Degree of applying Refactoring rather often Simple Design rather often Test-Driven Development sometime Clean Code rather rare Non-Solo Development rather rare Clean Architecture rather very rare Agile Day Riga 2015 9 http://agiledesign.org/2014/09/09/i-roadmap-to-an-agile-design/
  10. 10. Agile software architecture Agile Day Riga 2015 10 Agile teams don't necessarily create agile software architectures A good architecture enables agility but Agility and the essence of software architecture, Simon Brown
  11. 11. Agile Day Riga 2015 11 Doing software architecture is also an iterative process
  12. 12. Start as early as possible Every meeting with a client should be attended of at least one Agile Day Riga 2015 12
  13. 13. Always ask questions Agile Day Riga 2015 13 Clients do not know what they do not know Clients do not know what IT can Clients do not know how to improve their processes- Clients know what they do every day +
  14. 14. Specification of the system (1) Any kind of documentation that specifies what the system should do ◦ Word documents ◦ Wireframes / sketches ◦ Post-it notes ◦ White board drawings ◦ Photo shots Agile Day Riga 2015 14
  15. 15. Specification of the system (2) Agile Day Riga 2015 15 Can potentially include too many artifacts Can become chaotic Document content is hard to keep up-to-date- Core functionalities are described very quickly Visual representation of the future system Customer can see it on-the-fly and add input+
  16. 16. Why to keep documentation Write decisions down – every decision is important Be able to justify your past decisions Future maintenance of the system Some people leave, some people come Agile Day Riga 2015 16
  17. 17. How to do documentation (1) Agile Day Riga 2015 17 UML? People tend to ignore it
  18. 18. How to do documentation (2) Agile Day Riga 2015 18 NoUML Everything can be used to do documentation
  19. 19. How to do documentation (3) Agile Day Riga 2015 19
  20. 20. How to do documentation (4) Agile Day Riga 2015 20
  21. 21. Agile Day Riga 2015 21 Developers should learn how to do sketches
  22. 22. Agile Day Riga 2015 22 Don’t be a slave to tools, make your own rules
  23. 23. Case example Ferry company wants a new web system for selling tickets The inventory is already managed by an external system The new system should be decoupled in a way that the back-end part could be rewritten in other language in the future Agile Day Riga 2015 23
  24. 24. Iteration #1 The inventory service has a custom token-based authentication mechanism The inventory service has limitations to the required data Agile Day Riga 2015 24 Service layer (API) External inventory web service Browser application Data store
  25. 25. Iteration #2 The inventory service has performance issues The inventory service stop functioning when “stressed too much” Agile Day Riga 2015 25 Service layer (API) External inventory web service Browser application Data store Inventory service proxy
  26. 26. Iteration #3 Customers see tickets that are actually sold-out Agile Day Riga 2015 26 Service layer (API) External inventory web service Browser application Data store Inventory service proxy Cache
  27. 27. Iteration #4 Agile Day Riga 2015 27 Service layer (API) External inventory web service Browser application Data store Inventory service proxy Cache External inventory system Clear inventory cache
  28. 28. Take-away tips Start simple, grow slowly It is creative work ◦ People should enjoy it Add complexity only when needed ◦ Try to postpone it as much as possible ◦ Do NOT predict the future, it changes a lot Document important decisions ◦ You will regret not doing this at a later point Agile Day Riga 2015 28
  29. 29. Ļoti pateicos! 29Agile Day Riga 2015 http://bit.ly/adr15-boyan Rate meGet in touch hey@boyan.in @bmihaylov Afterparty

×