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 Copyright Agesis AB 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 Copyright Agesis AB 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 Copyright Agesis AB www.agesis.se 5 Agile Teams Self-organizing Responsible Cross-functional (within a context) 5-9 members Copyright Agesis AB www.agesis.se Long living for the result 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! Copyright Agesis AB 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 • • • • • • Copyright Agesis AB www.agesis.se 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! 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 Copyright Agesis AB www.agesis.se 9 Examples of Architecture Requirements (Quality Attributes) Structural • • • • • • • Modularity Maintainability Portability Reusability Integrability Testability … Architectural Run-time • • • • • • • • • • Conceptual Integrity • Correctness and completeness • … Copyright Agesis AB www.agesis.se Performance Interoperability Scalability Reliability Availability Security Safety Usability … 10 Agile friendly Architecture Requirements (QAs), examples • • • • • • • • Copyright Agesis AB www.agesis.se Modularity Maintainability Testability Integrability Conceptual Integrity Scaled development Interoperability Usability (UX) 11 Product and Anatomy (meta model) Requirements are described as customer-oriented Features Marketable “Product/Service” seen from the Customer perspective Feature Feature Feature Feature A working potentially releasable increment Customers / Stakeholders The ”product anatomy/structure” seen as a set of modules/components/systems/services Copyright Agesis AB 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 Feature Feature Feature Feature Feature 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 Copyright Agesis AB www.agesis.se 14 Include Architecture work in the process events Example: Scrum Daily Scrum Sprint Planning Sprint Review (demo) Retrospective Arch. Arch. Feature Feature Feature Feature Feature Development Team SAD Definition of Done QAs Backlog Management and Preparation Copyright Agesis AB www.agesis.se 15 Feature and Component Teams two Development Team stereotypes Feature Teams Feature Feature Feature Team Working product increment • End-to-End oriented ‒ Take on (pull) customer-oriented Features, and produce working product increments • Highly cross-functional – Able to work across the product structure – Develop, integrate and deploy “components” independently of other teams Copyright Agesis AB www.agesis.se 17 Feature Teams Feature Feature Feature 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 ‒ ‒ ‒ ‒ Copyright Agesis AB www.agesis.se Performance Communication mechanisms Availability (overall fault detection and recovery) Scalability (solution level) 18 Feature Teams Feature Feature Feature 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) Copyright Agesis AB www.agesis.se 19 Component Teams Feature 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 Copyright Agesis AB www.agesis.se 20 Component Teams Feature 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 Copyright Agesis AB www.agesis.se 21 Component Teams Feature Req. Req. Component Team ! Need to break down Features into “component-oriented” requirements ‒ Understanding of the whole picture and Customer value ! Awareness of overall Product Structure and Architecture ‒ Solution consistency and integrity Copyright Agesis AB www.agesis.se 22 What type of teams to prefer? • Can mix Feature Teams with Component Teams in various constellations – Prefer Feature Teams (focus on making Features done) – Complement with Component Teams where strategic • Note: Feature and Component Teams are stereotypes – Try out what works, reflect and adapt Copyright Agesis AB www.agesis.se 23 Scaling up, multiple teams A more complex product … Higher demand of work … Feature Feature Feature Feature Feature Customers & Stakeholders Feature Feature 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! Copyright Agesis AB 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 Feature Feature Team C Feature workflow (end-to-end) Feature Feature Feature Team A Feature Customers & Stakeholders Feature Team D Feature Feature working releasable increment of the product (Customer perspective) Component Team B • 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! Copyright Agesis AB 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 Copyright Agesis AB www.agesis.se 28 Architecture governance, example ?! Who the heck has changed the interface? All integration test cases fail! Feature Feature Team C Feature Feature workflow (end-to-end) Feature Feature Feature Customers & Stakeholders Feature Team A Feature Feature Team D Component Team B Hmm, what is the point with these asynchronous calls ..? I will create a new asynchronous interface for our component Copyright Agesis AB 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” Feature Team A Architecture Forum (e.g. virtual team) • 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 Feature Team C Copyright Agesis AB www.agesis.se 30 Architecture work, multiple teams • Need to map architecture work into a Scaled Agile method/process • Examples – – – – Copyright Agesis AB www.agesis.se Scaled Scrum set-up Kanban, project/program/enterprise level SAFe (Scaled Agile Framework) … 31 Example, common Kanban workflow Note: WIP limits left out for this discussion Input Feature Analyze Feature Story Feature Feature Story Feature Story Story Waiting for Dev. Develop Plan Feature Feature Feature Feature Story Feature Story Story Story Story Story Story Story Story Story Story Validate Feature Story Story Story In Service Feature Story Story Story Story Story Feature Analyze Architecture impact? Specify overall solution Break down work What team builds what? Copyright Agesis AB www.agesis.se Integrated Story Story Story Story • • • Implement Waiting for Validation Develop • • • • Plan • Manage dependencies Coordinate and takt work • Guard conceptual integrity Validate Validate result (Customer perspective) Validate solution (reflect and improve) 32 Scaling up, multiple workflows Multiple workflows (SAFe) Need to govern Architecture within as well as across the workflows Solution and “component” Architecture Feature Epic Arch. Arch. Feature Feature QAs Arch. Epic Epic Epic Epic Epic Roadmap QAs Feature Feature QAs Portfolio Enterprise Architecture Epic Feature Arch. Feature Feature QAs Copyright Agesis AB 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 Start 1999 Personlig Handledare Inlämningsuppgifter & Arkitekturuppsats >1500 IT-arkitekter 6 X 2 dagar Ca 25 lärare ”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 2 Innehåll 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 5 Innehåll 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 Förmågor • 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. • 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
© Copyright 2024