Agile Teams and Architecture Tommy Ågren
Some guiding values and principles
What is Lean and Agile? A set of Values and Principles That have proven to work! Lean: Toyota (manufacturing & production) Agile: Software lightweight methods 2001 Agile Manifesto www.agesis.se 3
Adopting Lean & Agile Benefits and Why Wanted business effects! Values and Principles Principles that govern the wanted effects Creates context and alignment Practices, how to do it Processes, Organization, Methods and Tools Try out, learn and Adapt www.agesis.se 4
Agile & Lean Architecture Agile principles Continuous attention to technical excellence and good design enhances agility The best architectures, requirements, and design solutions emerge from self-organizing teams Simplicity is essential Lean Software principles Build Integrity in (system integrity and quality) No defects! The system should function as a cohesive unit www.agesis.se 5
Agile Teams Self-organizing (within a context) Cross-functional 5-9 members Long living Responsible for the result www.agesis.se 6
Roles, Skills and Responsibility I m the Tester I m the Designer Want to grow knowledge and skills, favor collaboration and coach team members to that take responsibility for the whole I m the Java Developer Want to avoid static and appointed responsibilities! www.agesis.se 7
An Agile Architect? A person highly skilled in architecture work Works in, or close with, an Agile Development Team Embraces the Agile/Lean values and principles Collaborates with and coaches team members Acknowledges and empowers people Communicates architecture and decisions (face-to-face) Accepts and adapts to ideas from others Keeps things simple - travels light! Embraces and manages change! www.agesis.se 8
An Agile Architecture? Supports Agile Development! Makes the system easy to understand, maintain and build upon Reduce system complexity Makes the system easy to test, integrate and deploy Supports change www.agesis.se 9
Examples of Architecture Requirements (Quality Attributes) Structural Modularity Maintainability Portability Reusability Integrability Testability Architectural Conceptual Integrity Correctness and completeness Run-time Performance Interoperability Scalability Reliability Availability Security Safety Usability www.agesis.se 10
Agile friendly Architecture Requirements (QAs), examples Modularity Maintainability Testability Integrability Conceptual Integrity Scaled development Interoperability Usability (UX) www.agesis.se 11
Product and Anatomy (meta model) Requirements are described as customer-oriented s Marketable Product/Service seen from the Customer perspective Customers / Stakeholders A working potentially releasable increment The product anatomy/structure seen as a set of modules/components/systems/services www.agesis.se 12
Smaller organization One or few independent teams
Smaller organization, one Development Team pull A cross-functional and self-organizing Development Team working releasable increment of the product (Customer perspective) The knowledge and the skills needed to build increments of the end-product, can be captured by one single team The team can take responsibility for architecture work www.agesis.se 14
Include Architecture work in the process events Example: Scrum Daily Scrum Sprint Planning Sprint Review (demo) Arch. Arch. QAs Development Team Retrospective SAD Definition of Done Backlog Management and Preparation www.agesis.se 15
and Component Teams two Development Team stereotypes
Teams Team Working product increment End-to-End oriented Take on (pull) customer-oriented s, and produce working product increments Highly cross-functional Able to work across the product structure Develop, integrate and deploy components independently of other teams www.agesis.se 17
Teams Team Working product increment Address Solution Architecture + Realize customer-oriented requirement + See to solution consistency + Integration, Acceptance Testing and Deployment + Address architecture requirements/qualities on solution level Performance Communication mechanisms Availability (overall fault detection and recovery) Scalability (solution level) www.agesis.se 18
Teams Team Working product increment! Usually need to work in parallel with other teams in the same code base Consistency and Conceptual Integrity (overall, components) Infrastructure and tools for cross-product and parallel work (CM, CI, CD) www.agesis.se 19
Component Teams Req. Req. Component Team Specialists on one particular part of the product structure - a component Owns and guards the component Develops, builds and delivers the component, as a result of their work www.agesis.se 20
Component Teams Req. Req. Component Team Address Component Architecture + Integrity and responsibility + Testability + Maintainability + Performance + Reliability (robustness & usage, well defined API, ) + Availability (fault isolation and detection, recovery, ) + Scalability www.agesis.se 21
Component Teams Req. Req. Component Team! Need to break down s into component-oriented requirements Understanding of the whole picture and Customer value! Awareness of overall Product Structure and Architecture Solution consistency and integrity www.agesis.se 22
What type of teams to prefer? Can mix Teams with Component Teams in various constellations Prefer Teams (focus on making s done) Complement with Component Teams where strategic Note: and Component Teams are stereotypes Try out what works, reflect and adapt www.agesis.se 23
Scaling up, multiple teams
A more complex product Higher demand of work Customers & Stakeholders working releasable increment of the product (Customer perspective) One single team cannot span all the skills needed to build increments of the product, nor meet the demand of work! www.agesis.se 25
A group of Development Teams with common focus Architecture and code must scale! A cross-functional and self-organizing group of teams Customers & Stakeholders Team C workflow (end-to-end) Team A Team D Component Team B working releasable increment of the product (Customer perspective) The teams need to collaborate and build working increments of the product solution together (common responsibility) The teams also need to take responsibility for the architecture! www.agesis.se 26
Multiple Development Teams, Architecture Governance
Multiple Development Teams, Governance and Support Cross-team governance, examples - Architecture - Strategies for testing - CM, CI, CD - Requirements and User experience (UX) - Infrastructure, environment and tools - workflow(s) end-results www.agesis.se 28
Architecture governance, example Who the heck has changed the interface? All integration test cases fail!?! Customers & Stakeholders Team A Team C workflow (end-to-end) I will create a new asynchronous interface for our component Component Team B Team D Hmm, what is the point with these asynchronous calls..? www.agesis.se 29
Architecture Forum, example Members from different teams can meet and coordinate architecture issues in a common Architecture Forum / Community - Possibly facilitated by a senior Agile Architect Architecture Forum (e.g. virtual team) Team A Arch. Arch. QAs Experts that support and governs the Development Teams Ensure common engineering practices overall consistency and integrity Works close with the Development Teams Communicate and explain the big picture Coach, mentor, educate, show how, review Component Team B Team C www.agesis.se 30
Architecture work, multiple teams Need to map architecture work into a Scaled Agile method/process Examples Scaled Scrum set-up Kanban, project/program/enterprise level SAFe (Scaled Agile Framework) www.agesis.se 31
Example, common Kanban workflow Note: WIP limits left out for this discussion Input Analyze Waiting for Develop Waiting for Validation Dev. Plan Implement Integrated Validate In Service Story Story Story Story Story Story Story Story Story Story Story Story Story Story Story Story Story Story Story Story Story Story Story Story Story Story Story Analyze Architecture impact? Specify overall solution Break down work What team builds what? Develop Plan Manage dependencies Coordinate and takt work Guard conceptual integrity Validate Validate result (Customer perspective) Validate solution (reflect and improve) www.agesis.se 32
Scaling up, multiple workflows
Multiple workflows (SAFe) Need to govern Architecture within as well as across the workflows Solution and component Architecture Epic Arch. Epic Epic Epic Portfolio Roadmap QAs Epic Arch. Arch. QAs Epic QAs Epic Arch. QAs Enterprise Architecture www.agesis.se 34
References and further reading Agile Architect http://www.agilearchitect.org Agile Modeling, Scott W. Ambler http://www.agilemodeling.com Scaled Agile Framework (SAFe) http://scaledagileframework.com Lean Kanban University, David J. Anderson http://www.leankanbanuniversity.com Succeeding with Agile, Mike Cohn https://www.mountaingoatsoftware.com
www.agesis.se
Om utbildningen! Certifierad IT-arkitekt Master Michael Thurell Handledare och lärare
Kort om utbildningen K54 sep 2015 >1500 IT-arkitekter Start 1999 6 X 2 dagar Personlig Handledare Ca 25 lärare Inlämningsuppgifter & Arkitekturuppsats Alla IT-arkitekter
Innehåll
Innehåll 1 Vad är IT-arkitektur? Vad gör en IT-arkitekt? Begrepp: System, egenskapskrav, tactics, mönster, ramverk, komponent, tjänst etc. Standarder & arkitekturramverk: ISO/IEC/IEEE 42010, Kruchten 4+1, Rozanski & Woods, RM-ODP, TOGAF, Zachmann
Innehåll 2 Verksamhetsnära IT-arkitektur. Verksamhetsobjekt och verksamhetskomponenter. Verksamhetsmodellering. Övergripande arkitekturarbete (Enterprise Architecture).
Innehåll 3 Teknisk IT-arkitektur. Arkitektur för distribuerade system. Infrastruktur, middleware, databaser, säkerhet, utvecklingsplattformar etc. Realisering av egenskapskrav. 6
Innehåll 4 Metoder för arkitekturutveckling: ADD, RUP, etc. Olika typer av Agila metoder etc. Modellering med UML Styrning av arkitekturarbete (Governance) Metoder för arkitekturutvärdering: Scenariobedömningar, ATAM etc. 7
Innehåll 5 Mönster och stilar för integration. Point-to-Point, Buss, Nav etc. SOA, EAI, ESB, etc. Molnet.
Innehåll 6 Kvalitet och lönsamhet. Test. Ledningens syn på IT-arkitektur. Trender. Redovisning av uppsatsarbete.
Vad utmärker en IT-arkitekt? Egenskaper Kommunikativ & pedagogisk förstå olika intressenters synpunkter och krav förmedla, förklara och tydliggöra olika aspekter/vyer av en ITarkitektur för olika intressenter Analytisk & strukturerad se och förstå helheten förenkla komplexa frågeställningar kunna identifiera de viktigaste arkitekturdrivande kraven Kreativ Ödmjuk Etc. Förmågor Kunna behärska och tillämpa etablerade principer och metoder för utformning av IT-lösningar Kunna förstå & värdera verksamhetsmodeller Kunna identifiera de arkitekturdrivande kraven i en komplex kravbild Kunna omsätta systemkraven till en realiserbar arkitektur Kunna behärska och tillämpa viktiga stilar & mönster för en IT-arkitektur Kunna beskriva & kommunicera arkitekturen till aktuella målgrupper