110707 What Colours Is Your Backlog Boston 2Up.Pptx
Total Page:16
File Type:pdf, Size:1020Kb
Agile New England July 2011 Agility and Architecture or: What colours is your backlog? Philippe Kruchten July 7, 2011 Philippe Kruchten, Ph.D., P.Eng., CSDP Professor of So*ware Engineering NSERC Chair in Design Engineering Department of Electrical and Computer Engineering University of BriLsh Columbia Vancouver, BC Canada [email protected] Founder and president Kruchten Engineering Services Ltd Vancouver, BC Canada [email protected] Co founder and past-chair Copyright © 2011 Philippe Kruchten 2 Copyright © 2011 Philippe Kruchten 1 Agile New England July 2011 Outline 1. The frog and the octopus 2. Architecture and agility 3. Release planning 4. Technical debt 5. Architecture, agility,… revisited Copyright © 2011 Philippe Kruchten 5 A Conceptual Model of SoYware Development 4 key concepts, 5 key aributes . Intent . Time . Product . Value . Quality . Work . Cost . Risk . People Copyright © 2011 Philippe Kruchten 8 Copyright © 2011 Philippe Kruchten 2 Agile New England July 2011 Intent, Work, People, Product Copyright © 2011 Philippe Kruchten 9 Frog: “All projects are the same” Value Value Cost Cost Copyright © 2011 Philippe Kruchten 10 Copyright © 2011 Philippe Kruchten 3 Agile New England July 2011 Copyright © 2011 Philippe Kruchten 11 Octopus: “All projects are different!” Size Domain, Age of Degree of Industry the CriLcality Innovaon system Rate of Business change Context model Gover Stable architec nance Corporate & Team ture Organizaonal Naonal Culture distribu Maturity on Copyright © 2011 Philippe Kruchten 12 Copyright © 2011 Philippe Kruchten 4 Agile New England July 2011 SW Dev. Project: Tension between Intent and Product Intent Work V Product Copyright © 2011 Philippe Kruchten T 13 Iteraons Copyright © 2011 Philippe Kruchten 14 Copyright © 2011 Philippe Kruchten 5 Agile New England July 2011 Outline 1. The frog and the octopus 2. Architecture and agility 3. Release planning 4. Technical debt 5. Architecture, agility,… revisited Copyright © 2011 Philippe Kruchten 15 Agile & Architecture? Oil & Water? • Paradox • Oxymoron • Conflict • Incompability Copyright © 2011 Philippe Kruchten 16 Copyright © 2011 Philippe Kruchten 6 Agile New England July 2011 What is Agility? • Jim Highsmith (2002): – Agility is the ability to both create and respond to change in order to profit in a turbulent business environment. • Sanjiv Augusne (2004): – Iterave and incremental – Small release – Collocaon – Release plan/ feature backlog – Iteraon plan/task backlog Copyright © 2011 Philippe Kruchten 17 Geng at the Essence of Agility • SoYware development is a knowledge acLvity – Not producLon, manufacturing, administraon… • The “machines” are humans • Dealing with uncertainty, unknowns, fear, distrust • Feedback loops ➜ – reflect on business, requirements, risks, process, people, technology • Communicaon and collaboraon – Building trust ➜ rely on tacit informaon ➜ reduce waste Copyright © 2011 Philippe Kruchten 18 Copyright © 2011 Philippe Kruchten 7 Agile New England July 2011 SoYware Architecture: A DefiniLon " " ""“It#s the hard stuff.”" “It#s the stuff that will be hard to change”" M.Fowler, cited by J. Highsmith 20 Copyright © 2011 Philippe Kruchten ISO/IEC 42010 Architecture: the fundamental concepts or properLes of a system in its environment embodied in its elements, their relaonships, and in the principles of its design and evoluLon Copyright © 2011 Philippe Kruchten 21 Copyright © 2011 Philippe Kruchten 8 Agile New England July 2011 SoYware Architecture SoYware architecture encompasses the set of significant decisions about •! the organizaon of a soYware system, •! the selecLon of the structural elements and their interfaces by which the system is composed together with their behavior as specified in the collaboraon among those elements, •! the composiLon of these elements into progressively larger subsystems, Grady Booch, Philippe Kruchten, Rich Reitman, Kurt BiCner; Raonal, circa 1995 (derived from Mary Shaw) Copyright © 2011 Philippe Kruchten 22 SoYware Architecture (cont.) … •! the architectural style that guides this organizaon, these elements and their interfaces, their collaboraons, and their composiLon. •! SoYware architecture is not only concerned with structure and behavior, but also with usage, funcLonality, performance, resilience, reuse, comprehensibility, economic and technological constraints and tradeoffs, and aestheLcs. Copyright © 2011 Philippe Kruchten 23 Copyright © 2011 Philippe Kruchten 9 Agile New England July 2011 Perceived Tensions Agility- Architecture •! Architecture = Big Up-Front Design •! Architecture = massive documentaon •! Architects dictate form their ivory tower •! Low perceived or visible value of architecture •! Loss of rigour, focus on details •! Disenfranchisement •! Quality aribute not reducible to stories Hazra, 2008 Rendell, 2009 Blair et al. 2010, etc. Copyright © 2011 Philippe Kruchten 24 Perceived Tensions Agility- Architecture Adaptaon versus AnLcipaon Highsmith 2000 Copyright © 2011 Philippe Kruchten 25 Copyright © 2011 Philippe Kruchten 10 Agile New England July 2011 Issues 1.! SemanLcs 2.! Scope 3.! Lifecycle 4.! Role 5.! Descripon 6.! Methods 7.! Value & cost Copyright © 2011 Philippe Kruchten 26 SemanLcs •! What do we mean by “architecture”? •! What do we mean by “soYware architecture”? Copyright © 2011 Philippe Kruchten 28 Copyright © 2011 Philippe Kruchten 11 Agile New England July 2011 Issues 1.! SemanLcs 2.! Scope 3.! Lifecycle 4.! Role 5.! Descripon 6.! Methods 7.! Value & cost Copyright © 2011 Philippe Kruchten 29 Scope •! How much architecture “stuff” do you really need? •! It depends… •! It depends on your context Copyright © 2011 Philippe Kruchten 30 Copyright © 2011 Philippe Kruchten 12 Agile New England July 2011 Context aributes 1.! Size Size Age of Cricality 2.! CriLcality System 3.! Age of system 4.! Rate of change Rate of Business Context 5.! Business model change model 6.! Domain 7.! Team distribuLon Governance Domain 8.! Governance Team Distribuon Copyright © 2011 Philippe Kruchten 31 All soYware-intensive systems have an architecture •! How much effort should you put into it varies greatly •! 75% of the Lme, the architecture is implicit –! Choice of technology, plaorm –! SLll need to understand the architecture •! Novel systems: –! Much more effort in creang and validang an architecture •! Key drivers are mostly non-funcLonal: –! RunLme: Capacity, performance, availability, security –! Non runLme: evolvability, regulatory, i18n/L10n… Copyright © 2011 Philippe Kruchten 32 Copyright © 2011 Philippe Kruchten 13 Agile New England July 2011 Lifecycle •! When does architectural acLviLes take place? •! The evil of “BUFD” = Big Up-Front Design •! “Defer decisions to the last responsible moment” •! YAGNI = You Ain’t Gonna Need It •! Refactor! Copyright © 2011 Philippe Kruchten 34 Architectural Effort During the Lifecycle Inception Elaboration Construction Transition time Majority of architectural design activities Copyright © 2011 Philippe Kruchten 35 Copyright © 2011 Philippe Kruchten 14 Agile New England July 2011 LiZle dedicated architectural effort Inception Construction Transition time Minimal pure Ideal realm of agile Architectural Activities practices Copyright © 2011 Philippe Kruchten 36 Iteraons and Phases Iterations with focus on Iterations with main architecture focus on features An architectural iteration focuses in putting in place major architectural elements, resulting in a baseline architectural prototype at the end of elaboration. Copyright © 2011 Philippe Kruchten 37 Copyright © 2011 Philippe Kruchten 15 Agile New England July 2011 Team Structure over Time (Very Large) Inception Elaboration Construction and Transition Management team Management team Architecture team Architecture Feature team 1 team Initial team Feature team 2 Prototyping team Infrastructure Feature team 3 team A Infrastructure team B Copyright © 2011 Philippe Kruchten integration team 38 Teams using agile development pracLces Inception Elaboration Construction and Transition Management team Management team Architecture team Architecture Feature team 1 team Initial team Feature team 2 Prototyping team Infrastructure Feature team 3 team A Infrastructure team B Copyright © 2011 Philippe Kruchten integration team 39 Copyright © 2011 Philippe Kruchten 16 Agile New England July 2011 Issues 1.! SemanLcs 2.! Scope 3.! Lifecycle 4.! Role 5.! Descripon 6.! Methods 7.! Value & cost Copyright © 2011 Philippe Kruchten 40 New Role – Agile Architect ? •! A. Johnston defines the agile architect, but it does not seems to be any different from a soYware architect before agile methods came in. •! Combinaon of –! Visionary - Shaper –! Designer – making choices –! Communicator – between mulLple parLes –! Troubleshooter –! Herald – window of the project –! Janitor – cleaning up behind the PM and the developers Copyright © 2011 Philippe Kruchten 42 Copyright © 2011 Philippe Kruchten 17 Agile New England July 2011 FuncLons of the soYware architect Definion of the architecture Delivery of the architecture •! Architecture definiLon •! Ownership of the big picture •! Technology selecLon •! Leadership •! Architectural evaluaon •! Coaching and mentoring •! Design, development and •! Management of non TesLng funcLonal requirements •! Architecture collaboraon •! Quality assurance Brown 2010 Copyright © 2011 Philippe Kruchten 43 Two styles of soYware/system architects •! Maker and Keeper of Big •! Mentor, Troubleshooter, decisions and Prototyper –! Bring in technological –! Implements and try changes architecture –! External collaboraon