white paper - scaling agile: an executive guide

Download White paper - Scaling agile: An executive guide

Post on 10-May-2015

2.868 views

Category:

Documents

1 download

Embed Size (px)

DESCRIPTION

This paper looks at the IBM Rational teams experiences gained while applying agile/iterative strategies and techniques in organizations around the world, often at a scale far larger than the techniques were pioneered for.

TRANSCRIPT

  • 1.Agility @ Scale WhitepaperFebruary 2010 Scaling Agile: An Executive Guide Scott W. Ambler Chief Methodologist for Agile, IBM Rational

2. Agility @ Scale WhitepaperPage 2Executive summary Contents Agile software development is a highly collaborative, quality-focused approachto software and systems delivery, which emphasizes potentially shippable2 Executive Summary working solutions produced at regular intervals for review and course3 Introductioncorrection. Built upon the shoulders of iterative development techniques,4 Defining agileand standing in stark contrast to traditional serial or sequential software5 Criteria to determine if a team isengineering methods, agile software delivery techniques hold such promise agilethat IBM has begun to adopt agile processes throughout its Software Group,6 Scaling agile strategies at the an organization with over 25,000 developers. But how can practices originally project leveldesigned for small teams (10-12) be scaled up for significantly larger 11 Scaling agile across your entire IT operations? The answer is what IBM calls agility@scale. department 13 The relationship between Agile andThere are two primary aspects of scaling agile techniques that you need to Lean consider. First is scaling agile techniques at the project level to address the 15 What improvements should youunique challenges individual project teams face. This is the focus of the Agile realistically expect?Scaling Model (ASM). Second is scaling your agile strategy across your entire 17 Using an accelerated approach IT department, as appropriate. It is fairly straightforward to apply agile on a 18 What challenges should youhandful of projects, but it can be very difficult to evolve your organizational expect?culture and structure to fully adopt the agile way of working. 19 Parting Thoughts 20 AcknowledgementsThe Agile Scaling Model (ASM) defines a roadmap for effective adoption and 20 About the Authortailoring of agile strategies to meet the unique challenges faced by a softwareand systems delivery team. Teams must first adopt a disciplined deliverylifecycle that scales mainstream agile construction techniques to address thefull delivery process, from project initiation to deployment into production.Then teams must determine which scaling factors team size, geographicaldistribution, regulatory compliance, domain complexity, organizationaldistribution, technical complexity, organizational complexity, or enterprisediscipline, if any are applicable to a project team and then tailor theiradopted strategies accordingly to address their specific range of complexities.When scaling agile strategies across your entire IT organization you musteffectively address five strategic categories the Five Ps: People, principles,practices, process, and products (i.e., technology and tooling). Dependingon your organizational environment the level of focus on each area will vary.What we are finding within many organizations, including IBM, is that theprimary gating factor for scaling agile across your entire organization is yourorganizations ability to absorb change. 3. Agility @ Scale WhitepaperPage 3 IntroductionHighlights Agile software development is an evolutionary, highly collaborative, disciplined, quality-focused approach to software development and delivery, whereby poten- tially shippable working software is produced at regular intervals for review and course correction. Agile software development processes1 include Scrum, Extreme Programming (XP), Open Unified Process (OpenUP), agile instantia- tions of Rational Unified Process (RUP), and Agile Modeling (AM), to name a In the IBM Rational organization, few. In the IBM Rational organization, weve used agile and iterative techniques weve used agile and iterativeIn theinternally for many years, and the IBM Global Services and Rational organizations IBM Rational organization, wevehave been working together to help many of our customers apply these techniques used agile and iterative techniques within their own environments, often under complex conditions at scale. Agile internally for many years, and thetechniques held such promise that beginning in mid-2006 an explicit program IBM Global Services and Rationalwas put in place to adopt these processes on a wide-scale basis throughout IBM organizations have been working Software Group, an organization with over 25,000 developers. together to help many of our customers apply these techniquesAgile software development techniques have taken the industry by storm, with 76% within their own environments.of organizations reporting in 2009 that they had adopted agile techniques, and that on average 44% of the project teams within those organizations had adopted one or more techniques [1]. Agile development is becoming widespread because it works well organizations are finding that agile and iterative project teams, when compared to traditional project teams, enjoy higher success rates, deliver higher quality, have greater levels of stakeholder satisfaction, provide better return on investment (ROI), and deliver systems to market sooner [2]. By following quality techniques such as refactoring and developer regression testing throughout the lifecycle, agilists are able to progress safely and surely, increasing their productivity. By working closely with stakeholders in an iterative manner they have a better understanding of what stakeholders actually need and are more likely to deliver solutions that people actually want to use for their business purposes. By working Agile approaches are being used in ain priority order, agile teams are able to provide the greatest return on investment wide range of situations, not just theas defined by their stakeholders. In short, agile teams work smarter, not harder, and small, co-located team environments thereby achieve better results. that dominate the early agile literature. As you will learn later in this paper, agile approaches are being used in a wide range of situations, not just the small, co-located team environments that domi- nate the early agile literature.2 Agile strategies are being applied throughout the entire software delivery lifecycle, not just the construction (software coding and compiling) phase, and very often in very complex environments that require far more than a small, co-located team armed with a white board or a stack of index 4. Agility @ Scale WhitepaperPage 4cards. Every project team finds itself in a unique situation, with its own goals, Highlights abilities, and challenges. What they have in common is the need to adopt, andthen tailor, agile methods, practices, and tools to address those unique situations.This paper looks at our experiences gained while applying agile/iterativestrategies and techniques in organizations around the world, often at ascale far larger than the techniques were pioneered for. It begins with ourdefinition of what it means to be agile; it summarizes the Agile ScalingModel (ASM) and explores the scaling factors which your project teams oftenface; it provides advice for how to adopt agile strategies across your entire ITdepartment; and ends with a discussion of the types of benefits which youmay expect to achieve by doing so.Defining agileMany people point to the value statements of the Agile Manifesto3 as adefinition for agile development. Although these values are very goodfoundational philosophies, they were never really meant to be a definition. Infact, the agile community has never really settled on a definition nor does itappear that they will do so any time soon. The Rational organization has itsown description for what we call disciplined agile delivery: Disciplined agile delivery is performed in a highly collaborative, Disciplined agile delivery is an evolutionary (iterative and incremental) disciplined, and self-organizing approach that regularly produces high-quality solutions in a cost-effective manner within an appropriate and timely manner via a risk and value-driven lifecycle. It is performed in governance framework, with activea highly collaborative, disciplined, and self-organizing manner within an stakeholder participation. appropriate governance framework, with active stakeholder participationto ensure that the team understands and addresses the changing needs of itsstakeholders. Disciplined agile delivery teams provide repeatable results byadopting just the right amount of ceremony for the situation which they face.Here is a more concise though less robust definition:Disciplined agile delivery is a highly collaborative, evolutionary, selforganizing, and governed approach that regularly produces high-qualitysolutions in a cost-effective and timely manner via a risk and value drivenlifecycle.Ill return to the elements of this definition a bit later. 5. Agility @ Scale WhitepaperPage 5Criteria to determine if a team is agileHighlightsA common problem in many organizations is that undisciplined ad-hoc teamsoften claim to be agile, because theyve read an article or two about agile devel-opment, and interpret agility to mean any cool, liberated form of undocumentedsoftware creativity. These ad-hoc teams often run into trouble, and give actualagile teams a bad name. IBM Rational defines the following five criteria to deter- Undisciplined "ad-hoc" teams often mine if a team is truly agile: run into trouble, and give actual agile teams a bad name.1. Working software - Agile teams produce working software on a regular basis, typically in the context of short, stable, time-boxed iterations.2. Active stakeholder participation - Agile teams work closely with their stake- holders, ideally on a daily basis.3. Regression testing - Agile teams do, at a minimum, continuous developer regression testing.4 Disciplined agile teams take a Test-Driven Development (TDD) approach.4. Organization - Agile teams are self-organizing, and disciplined agile teams work within an appropriate governance framework at a sustain