Testing in the Enterprise using SCRUM Stretching Scrum to Accommodate Legacy & Large- Scale Testing Activity Bob Galen President & Principal Consultant, RGCG, LLC Leading you down the path of agility www.rgalen.com bob@rgalen.com
Introduction Bob Galen Somewhere north of 20 years experience Various lifecycles Waterfall variants, RUP, Agile, Chaos, etc. Various domains SaaS, Medical, Financial, Computer Systems, and Telecommunications Developer first, then Project Management / Leadership, then Testing Pieces of Scrum in late 90 s; before Agile was Agile Agility @ Lucent in 2000 2001 using Extreme Programming Formally using Scrum since 2000 Most recently at ChannelAdvisor as Dir. Product Development and Agile Architect/Coach (2007-2008) Connect w/ me via LinkedIn if you wish Bias Disclaimer: Agile is THE BEST Methodology for Software Development However, NOT a Silver Bullet! Copyright 2009 2
Outline Introduction 1. Agile Scaling & Scrum 2. The Role of the Product Owner in Scaling 3. Scrum-in-Testing 4. Challenges 5. Q&A Copyright 2009 3
Introduction Copyright 2009 4
Aspects of Agile Scaling There are really 4 aspects to Scaling within Agility: Organizational larger teams, distributed teams, and outsourced teams Product larger scale projects, interoperability, usability & consistency, and forecasting Development dependencies & integration, varying processes, and cross group collaboration Testing & Deployment regression, regulatory, integration, product maturation visibility, and production deployment readiness This presentation focuses on these areas from a testing perspective, but also intersects the other points Of course, in a small, pure agile implementations, much of this is unnecessary and contrary to the basic principles of agility Copyright 2009 5
Aspects of Agile Scaling Industry lessons have lagged in larger scale Agile implementations It s not the sweet spot for them and we seem to be mostly on our own In the Enterprise, Scrum is leading the way in providing guidance towards scaling, but so far it s sparse in nature Ken Schwaber published Enterprise Scrum in 2007 Dean Leffingwell published Scaling Software Agility in 2007 Jeff Sutherland has taken the lead in defining and sharing lessons learned There are still gaps from a Product Owner perspective although the Certified Scrum PO class tries to help Large-scale testing implications have been largely ignored to-date thus this presentation Copyright 2009 6
Aspects of Agile Scaling Scrum of Scrums (of Scrums) Source: Mike Cohn s www.mountaingoatsoftware.com website. Meta Scrum Level (S3) Scrum of Scrums - (S2) Scrum Team Level - (S1) Copyright 2009 7
Aspects of Agile Scaling And there are roles not defined behind the SoSoS, for example What are the sorts of conversations & activities that occur at each level? Who guides the process, tools, & techniques for consistency? What are the hierarchies behind the SoSoS ScrumMaster(s), Product Owner(s), Lines of business Team collaboration resource management, allocation, and budgeting Reporting & Release coordination Quality, Measurement, and Governance And how do they operate, integrate, and provide consistency w/o command-and-control? Copyright 2009 8
Aspects of Agile Scaling Jeff Sutherland Parallel Scrum Sutherland is leading the way toward modifying Scrum towards greater efficiency Scrum levels A, B, and C Sutherland has been using Type C Scrum for 3-4 years at PatientKeeper Sort of the Nirvana Scrum state, anyone else at Type C? The key point is the organizational change dynamics Sprint transition time compression Forward thinking towards staging & delivery Parallel --- Everything! Organization-wide change implications including Testing & Quality Copyright 2009 9
Scrum Evolution Parallel Pipelining Type A Scrum Isolated cycles of work Type B Scrum Overlapping Iterations Backlog continuously refreshed Reduced staging times Type C Scrum All at once, multiple simultaneous releases Organization of a Meta- Scrum Copyright 2009 10
Evolving Role of the Product Owner Copyright 2009 11
Product Owners Their Evolving Role Within each Scrum, the PO is typically narrowly focused on crafting the Backlog, engaging in progress, and reviewing sprint results However, as Scrum scales, the PO team needs to become more focused on: Product Line Evolution Meta Backlog and coordination across Sprint teams, strategy development & execution, resource load-balancing, and budgeting Cross-Team Planning SoS coordination, linked goals and backlog work, delivery integration, and staged (forward-thinking) planning Delivery Dynamics timing, marketing, packaging, interrelationships, customer feedback, and achieving production quality All of course with the team(s) delivering the product Copyright 2009 12
Product Owners Guiding Testing The PO also needs to have a Quality & Testing perspective that within each Sprint focuses on Developing specific multifaceted quality release goals Working with the team (Testers) to develop acceptance tests Working with the team to ensure daily convergence towards goals Across the SoS: Developing Product & Portfolio quality meta goals that cross all Sprints Integrating deliverables and qualifying the overall Product via planned Integration & Stabilization Sprints Balancing automation vs. manual testing capacity and investment Focusing teams towards Product release points Copyright 2009 13
Product Owners Coordination Workflow Stories Features Applets Applications Products Development Workflow Product Integration Testing & Evolving Maturation Scrum of Scrum of Scrums The PO organization must coordinate Feature timing & workflow Quality & integration workflow Product maturation and release readiness Production deployment In conjunction with technology and project leadership While often interfacing to operations and customer facing organizations Product Families Copyright 2009 14
Product Owner Planning Levels in Large-Scale Agile Projects Product Vision Yearly by Product Owner (s) Semi-Annually by the Product Owner (s) Product Roadmap Release Plans Iteration Plans Small To Large Quarterly by the Product Owner & Team (s) Monthly or bi-weekly by the Team (s) Daily Plans Daily by the team members Copyright 2009 15
Release Train Management Iterative model with a release target Product centric Focused on a production push/release Synchronized Sprints across teams Some teams are unsynchronized, but leads to less efficient cross-team (product) interactions Continuous Integration is the glue Including automated unit and feature tests; partial regression Notion of a Hardening Sprint Focused more on Integration & Regression testing Assumption that it s mostly automated Environment promotion Define a final Hardening Sprint where the product is readied for release Documentation, Support, Compliance, UAT, Training Copyright 2009 16
The Agile Release Train Synchronized Internal Release External Release Team 1 Iterate Iterate Harden Iterate Iterate Iterate Team 2 Team 3 Iterate Iterate Continuous Integration Iterate Harden Iterate Iterate Continuous Integration Iterate Harden Iterate Iterate Iterate Iterate Docs, Training, X-team Support, Harden UAT, Comp. Continuous Integration Team 4 Team n Iterate Iterate Harden Iterate Iterate Continuous Integration Iterate Copyright 2009 17
Release Goal Setting A Key for Coordination As you scale, each planning level should create criteria (Sprint Goals) that are Interrelated and cohesive Focused towards the end product release and not simply on each teams deliverables Identify dependencies and overall workflow The traditional notion of Chartering also applies at the higher levels, with Charters defined as: Goals, Objectives & Scope Clearly measurable view to Done Release Criteria Multi-faceted view towards quality (defects, coverage, non-functional requirements) Allowing for team based scope trade-offs Copyright 2009 18
Scrum-in-Testing Copyright 2009 19
Process Overview The Agile intent is to perform all testing within the iteration usually via automation. Unit & Acceptance are the typical focus, but what about other forms of testing? Legacy regression, interoperability across sprints, performance, usability, etc. Thus the rub! Sprint Backlog Daily Scrum Meeting Backlog tasks expanded by team 24 hours 30 days Source: Adapted from Agile Software Development with Scrum by Ken Schwaber and Mike Beedle. Product Backlog As prioritized by Product Owner Potentially Shippable Product Increment Copyright 2009 20
Inherently Narrow Focus of Agile Testing Typical Agile Team Testing Focus Unit Testing Automated Builds Smoke Testing Focused Customer Acceptance Testing Test Driven Development (TDD) Very limited Integration & Regression Testing Focused Towards Automation Limited Exploratory Testing What s Missing for Larger Scale Organizations? Integration Testing Functional Testing System Testing Regression Testing Performance Testing Load Testing Scenario Based Testing User Acceptance Testing (UAT) Usability Testing, Other ility Testing Exploratory Testing Large-scale Automation Copyright 2009 21
Inherently Narrow Focus of Agile Testing Early as possible testing unit level TDD Customer engaged in defining acceptance criteria & tests Early defect prevention, detection & early repair High degree of automation everything runs within the iteration Quality as a team responsibility Ongoing refactoring as required Think of Lean principles as an underlying driver Just Enough, Just in Time Deliver as Fast as Possible Team integrity & professionalism Holistic, built-in quality Copyright 2009 22
Scrum-in-Testing Transitional Drivers High levels of traditional testing Manual regression burden; Legacy systems; Habits across the business stakeholder team; External pressures or expectations PO requires this as part of the Backlog Early Scrum implementations Development teams struggle with gaining testing traction not meeting Agile code quality goals or core practices Testing teams falling into traditional behaviors artifact based, gatekeeper mentality, and low adaptability or flexibility Insufficient testing resources to staff Sprints and post Development Sprint testing requirements (thinking that Agile teams inherently need less testers) Copyright 2009 23
Scrum-in-Testing Coordination Drivers Integration Short term integration across (many) Sprinting Development teams Integrating with external data providers Integrating with 3 rd parties and outsourcers Equipment limitations & production deployment / promotion models The need to give an external team insights into deliverables for including in future work PO driven Portfolio & Product road-maps; PMO oriented planning Regulatory or compliance requirements (traceability and/or artifact evidence) Copyright 2009 24
Scrum-in-Testing Strategies Extending testing activity within the Sprint to include as much coverage as possible: Of course, unit & acceptance for the current iteration features Re-running existing unit & acceptance tests Maintaining existing automation Running partial integration & partial regression testing as possible Cross-team collaboration Which usually requires a different staffing mix for each Sprint Or extending the iterative model to accommodate testing via Stabilization Sprints Skewed Development & Testing focused Sprints Copyright 2009 25
Scrum-in-Testing Stabilization Sprints 30 day Dev. Sprint(s) Stablilzation Sprint(s) focused on integrating development release forward towards production release Testing Activities: 1. Full regression 2. Overall integration 3. Performance 4. Usability Variable length 5. Bug fixing Sprint(s) 6. Production promotion steps 30 day Dev. Sprint(s) Production Product Release Product Owner defined Product Backlogs And coordinates between development sprints Copyright 2009 26
Inherently Narrow Focus of Agile Testing Early as possible testing unit level TDD Customer engaged in defining acceptance criteria & tests Early defect prevention, detection & early repair High degree of automation everything runs within the iteration Quality as a team responsibility Ongoing refactoring as required Think of Lean principles as an underlying driver Just Enough, Just in Time Deliver as Fast as Possible Team integrity & professionalism Holistic, built-in quality Copyright 2009 27
Scrum-in-Testing Stabilization Sprints This is a modified version of the Scrum model where Sprints evolve from Note: iteration resource mix changes as you move from development towards stabilization 1. Pure Development focused Sprints delivering features to PO to 2. Early Integration focused Sprints coordinating a building product story and shaking our interoperability dependencies to 3. Pure Testing focused Sprints performing more traditional testing activity leading towards production release. 4. Finally and potentially Testing Infrastructural focused Sprints automation maintenance, next iteration readiness, and customer / usability collaboration Copyright 2009 28
Scrum-in-Testing Stabilization Sprint Sample Workflow 4 Development Sprints Normal team composition Early transition to Stabilization Sprints 50/50 Development + Testing focus 2 Stabilization Sprints Strongly connected to development, led by strong testing team There is a resource transition cycle from full Development Sprints forward to full Stabilization Sprints. The Art is in effective collaboration, resource sharing & communication forward & backward Next development Sprint beginnings Iteration #0, gaining traction, Sprint #1 Repeat Copyright 2009 29
Scrum-in-Testing Stabilization Sprint Content Pressure Release Think of Stabilization Sprint(s) as a feature content pressure release mechanism. As your content increases, so does its integration risk. You ll want to use them When you have many Development Sprints running in parallel As an interim integration mechanism When Stabilization Sprint threads run in parallel it creates the need for S2 & S3 oriented interactions The model typically is used for larger numbers of Development Sprints contributing to a large-scale enterprise product Duration and focus can vary from one Stabilization Sprint to the next Copyright 2009 30
Scrum-in-Testing Skewed Testing Sprints 30 day Dev. Sprint(s) Skewed Testing Sprint(s) focused on providing more formal testing feedback by virtually running development & testing in parallel / skewed Sprints Testing Activities: 1. Partial regression 2. Limited integration 3. Early performance (n) day Test 4. Bug fixing 5. QA promotion Sprint(s) steps Product Owner & test team members coordinate bug feedback into current Development Sprint Backlog and Product Backlog Interim or Integration Product Releases Copyright 2009 31
Scrum-in-Testing Skewed Testing Sprints This model balances some traditional testing post Development Sprint against bogging down the sprint w/too broad a level of testing Usually the testing is focused towards traditional regression and integration testing May also be used for performance, compliance and other non-functional testing activity The model typically is used for domains with an existing large scale legacy testing burden (or requiring larger scale testing practices) In this case, the skew allows the development activity to progress while testing is performed Sometimes this is viewed as Waterfall testing within Scrum; but becomes necessary if you can t perform ALL testing within the iteration Copyright 2009 32
Scrum-in-Testing Skewed Testing Sprints Advantage of handling defects and integration issues close to the originating Sprint Can reserve Sprint Backlog time so that changes can be incorporated immediately in the next Development Sprint Testing Sprints are usually staffed solely with testers At later phases, the testing can turn into more of a Stabilization sprint effort so a morphing of the two strategies Over time as your Agile experience grows, you ll want to narrow the skew perhaps with overlapping iterations Copyright 2009 33
Scrum-in-Testing Challenges Copyright 2009 34
Scrum-in-Testing Typical Challenges Alignment It s important to try and align Scrum iteration tempo across your SoSoS Sprints, putting pressure on your: Cross-sprint Meta Backlog management & planning Sprint Review results & feedback Testing Sprint alignments Dependency management Lab support scheduling & deployment phasing 3 rd party integrations Copyright 2009 35
Testing-in-Scrum Typical Challenges Resource Balancing Resource Balancing Between traditional, development focused Sprints Including people, equipment, and simply focus Falling Behind If you skew too heavily towards the traditional, testing stabilization Sprints, you ll lose connection to the next iteration Falling Forward If you skew too heavily towards the development Sprints, you ll lose the more formal testing & stabilization battle More often teams fall behind when they should be falling forward Watch out for Waterfall Testing in an Agile World Copyright 2009 36
Scrum-in-Testing Typical Challenges Skill-sets Agile skill-sets and collaborative expectations are WAY different! Do Define agile testing behavior guideline (role & responsibilities) Encourage pairing and strong collaboration Assess your technical capabilities and begin to aggressively fill in any gaps: Technical domain understanding and direct programming experience Open source automation tools experience Customer collaborative and UAT experience Establish guidelines for balancing between Agility & corporate quality and governance expectations Don t underestimate the impact that Agility will have towards your traditional teams capabilities, approaches and capacity for change Copyright 2009 37
Scrum-in-Testing Typical Challenges Quality Influence Working with the Product Owner (Customer) Becoming a collaborative partner; defining & automating acceptance tests Actively representing the VOC It s important to setup clear & broad release criteria for each Sprint and the overall Release Feature goals; usability goals; acceptance confirmation Quality criteria (defects, coverage, types of testing) Process artifact goals (for example: SOX or other compliance, traceability) Establishing release readiness (features, quality, interoperability) for PO during Sprint Review (Pass/Fail goals met?) Copyright 2009 38
Scrum-in-Testing Typical Challenges Metrics & Visibility As the number of Scrums grow with application size, feedback is gathered more so at the SoS level via Cross Sprint burndowns and feature tracking Feedback from the testing team in integration issues Product Owner Sprint Review(s) experience Product Roadmap progress across all of the relevant Sprints The Meta ScrumMasters & Meta Product Owners are actively engaged in defining goals and measuring progress against them Test teams can / should provide some traditional metrics focused towards Defects, test coverage & traceability, workflow defect patterns, Sprint release acceptance / goal attainment levels Copyright 2009 39
Testing-in-Scrum Typical Challenges Defects In pure Agile teams (small teams & projects, quality & testing focused, automation centered) there is little need for traditional defect tracking techniques They test first by developing unit tests and continuously integrating changes; Establish automated acceptance tests and fixing bugs as they re found However, in evolving or large-scale Agile teams There is a need for defect coordination across the various product(s) and team(s); Traditional triage, and targeting repairs to specific teams & iterations Product Owner(s) and ScrumMaster(s) are involved in this coordination and delegation Testing teams are at the center of these efforts; guiding the teams towards their Sprint & Product Release goals Copyright 2009 40
Wrap-up Traditional Scrum (and other Agile methods) struggle to operate in: Non-green field Legacy based or compliance focused Enterprise level or large-scale team environments. This creeps into testing activity as well Testing in Scrum in these contexts should include: Strong partnership with the PO Collaborative development of a strategy that gradually moves from traditional to agile testing Development of a skewed testing model that support PO / Business and Organizational / Quality needs Awareness of the cultural and skill-set changes that need to be made Patience and emergent (Self-directed) change! Copyright 2009 41
Questions? Thank you! Copyright 2009 42
Core Agile References Augustine, Sanjiv, Managing Agile Projects, Addison Wesley, (2005) Beck, Kent, Extreme Programming Explained Embrace Change, Addison Wesley, (2005) Beck, Kent and Fowler, Martin, Planning Extreme Programming, Addison Wesley, (2001) Cockburn, Alistair, Agile Software Development The Cooperative Game, 2 nd Edition, Addison Wesley, (2006) Cockburn, Alistair, Crystal Clear A Human-Powered Methodology for Small Teams, Addison Wesley, (2005) Cohn, Mike, User Stories Applied For Agile Software Development, Addison Wesley, (2004) Cohn, Mike, Agile Estimating & Planning, Addison Wesley, (2006) Derby, Esther and Larsen, Diane, Agile Retrospectives Making Good Teams Great, Pragmatic Bookshelf, (2006) Highsmith, Jim, Agile Project Management, Addison Wesley, (2004) Larman, Craig, Agile & Iterative Development A Manager s Guide, Addison Wesley, (2004) Leffingwell, Dean, Scaling Software Agility Best Practices for Large Enterprises, Addison Wesley, (2007) Manns, Mary Lynn and Rising, Linda, Fearless Change Patterns for Introducing New Ideas, Addison Wesley, (2004) Copyright 2009 43
Core Agile References Poppendieck, Mary & Tom, Lean Software Development An Agile Toolkit, Addison Wesley, (2003) Poppendieck, Mary & Tom, Implementing Lean Software Development From Concept to Cash, Addison Wesley, (2006) Schwaber, Ken and Beedle, Mike, Agile Software Development with Scrum, Prentice Hall Publishing, (2002) Schwaber, Ken, Agile Project Management with Scrum, Microsoft Press, (2004) Schwaber, Ken, The Enterprise and Scrum, Microsoft Press, (2007) Tabaka, Jean, Collaboration Explained Facilitation Skills for Software Project Leaders, Addison Wesley, (2006) Copyright 2009 44
Core Agile Web References Mike Cohn Scrum of Scrums page/picture: http://www.mountaingoatsoftware.com/scrum/scrumteam.php Jeff Sutherland: http://jeffsutherland.com Agile 2005 paper on Type A, B, C Scrums: http://www.agile2005.org/rp10.pdf Agile 2005 presentation on Scrum II: http://jeffsutherland.com/scrum/scrumiiagile2005.pdf#search=%22scrum%20of%20sc rums%22 Jeff Sutherland Agile 2006 presentation on Distributed Scrum Teams: www.scrumalliance.org/index.php/content/download/4836/49524/file/sutherlanddistributed ScrumAgile2006_v4_28_Feb_2006.pdf Annual Scrum Gatherings and Agile conferences www.agile2008.org Alternate perspective on XP - http://www.softwarereality.com/extremeprogramming.jsp Firms using Scrum - http://scrumalliance.pbwiki.com/firms-using-scrum?donesave=1 Planning Poker cards - http://contrado.com.au/pp_cards.pdf The history of the term SCRUM dates back to a 1986 article by Takeuchi and Nonaka in Harvard Business Review. In it they connected the Rugby term to an iterative model for product development. It's worth a read to simply see the history and connection back to Lean Manufacturing practices - http://aplnrichmond.pbwiki.com/f/new%20new%20prod%20devel%20game.pdf Copyright 2009 45
Contact Info Related ST&P articles in June 2006 and 2007 issues, www.stpmag.com Robert Galen RGalen Consulting Group, L.L.C. PO Box 865, Cary, NC 27512 919-272-0719 www.rgalen.com bob@rgalen.com Software Endgames: Eliminating Defects, Controlling Change, and the Countdown to On-Time Delivery published by Dorset House in Spring 2005. www.rgalen.com for order info, misc. related presentations, and papers. Copyright 2009 46