The Agile Maturity Model. Applied to Building and Releasing Software. www.thoughtworks-studios.com



Similar documents
Continuous Delivery. Anatomy of the Deployment Pipeline (Free Chapter) by Jez Humble and David Farley

Increasing frequency of releases to every week down from quarterly major releases

Agile Release Management: Towards Frequent, Low Risk Releases. by Jez Humble, Build and Release Principal, ThoughtWorks Studios.

Continuous Delivery Workshop

Continuous delivery Release software on-demand, not on Red Alert

Enabling Continuous Delivery by Leveraging the Deployment Pipeline

Key Benefits of Microsoft Visual Studio Team System

Continuous Delivery. Jez Humble, ThoughtWorks #continuousdelivery DevOpsDays, Hamburg

Continuous Delivery. Martin Fowler, Jez Humble YOW! Brisbane, 5 December Wednesday, December 7, 11

TRANSFORMING TO NEXT-GEN APP DELIVERY FOR COMPETITIVE DIFFERENTIATION

ACCELERATE DEVOPS USING OPENSHIFT PAAS

The Role of Feedback in Continuous Integration, Continuous Delivery and Agile ALM

Microsoft Modern ALM. Gilad Levy Baruch Frei

Driving Your Business Forward with Application Life-cycle Management (ALM)

Best Practices in Release and Deployment Management

Delivery. Continuous. Jez Humble and David Farley. AAddison-Wesley. Upper Saddle River, NJ Boston Indianapolis San Francisco

IKAN ALM and Collabnet TeamForge

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

Orchestrated. Release Management. Gain insight and control, eliminate ineffective handoffs, and automate application deployments

Manoo Ordeedolchest Chairman ICT Policy Committee Sripatum University Microsoft Software Development Life Cycle Management of Enterprise June 5, 2007

The Continuous Delivery Effect

Development Testing for Agile Environments

Power Your Innovation: Put EIS Suite at the Core

INTRODUCING TALEO 10. Solutions Built for the Talent Age. Powering the New Age of Talent

CMMI with Digité Universal Process Framework

SUCCESFUL TESTING THE CONTINUOUS DELIVERY PROCESS

Global Headquarters: 5 Speen Street Framingham, MA USA P F

5 Reasons CIOs are Adopting Cloud Computing in 2009 Application Development that s 5 Times Faster at 1/2 the Cost

An introduction to the benefits of Application Lifecycle Management

Application Test Management and Quality Assurance

HP Application Lifecycle Management

The Evolving Role of Process Automation and the Customer Service Experience

What are metrics? Why use metrics?

I D C M A R K E T S P O T L I G H T. P r i va t e a n d H yb r i d C l o u d s E n a b l e New L e ve l s o f B u s i n e s s and IT Collaboration

The Deployment Production Line

Top Ten Reasons to Transition Your IT Sandbox Environments to the Cloud

TSG Quick Reference Guide to Agile Development & Testing Enabling Successful Business Outcomes

Symantec ServiceDesk 7.1

Data Sheet: Archiving Altiris Client Management Suite 7.0 from Symantec Deploy, manage, secure, and troubleshoot

Leveraging CMMI framework for Engineering Services

Water-Scrum-Fall Agile Reality for Large Organisations. By Manav Mehan Principal Agile consultant

Software Engineering/Courses Description Introduction to Software Engineering Credit Hours: 3 Prerequisite: (Computer Programming 2).

See what cloud can do for you.

ICAgile Learning Roadmap Agile Testing Track

Bridging the Gap Between Acceptance Criteria and Definition of Done

5 Reasons CIOs are Adopting Cloud Computing in 2010 Application Development that s 5 Times Faster at 1/2 the Cost

Best Practices in adopting a Shared Services Model August YYYY

Managing Mobility in the BYOD Era:

Automated Acceptance Testing of High Capacity Network Gateway

Data Sheet: Endpoint Management Altiris Client Management Suite 7.0 Deploy, manage, secure, and troubleshoot

Seven Steps for Choosing a Software Configuration Management System

Organizations that are standardizing today are enjoying lower management costs, better uptime. INTRODUCTION

Software: Driving Innovation for Engineered Products. Page

AN INNOVATIVE SQA SERVICE MATURITY MODEL USING CMMI AND ITIL

Continuous Delivery of Software

WHITEPAPER. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. Principle #1, Agile Manifesto

The Cloud-Centric Organization. How organizations realize business benefits with a mature approach to Cloud

Altiris IT Management Suite 7.1 from Symantec

Industry Solutions Oil and Gas Engineering Document Control and Project Collaboration Solutions for Oil and Gas

Four Best Practices To Improve Quality In The Supply Chain. Lower your supply chain risks and cost of quality

An Introduction to Continuous Delivery

Applied Agile Practices for Large-scale Organizations

6 Oct Agile: Creating a Culture of Quality, Value and Feedback. Agile. Creating a Culture of Quality, Value and Feedback.

Coverity White Paper. Effective Management of Static Analysis Vulnerabilities and Defects

Unleash Competitive Advantage through Software Lifecycle Integration

CLOUD MIGRATION STRATEGIES

Fundamentals of Continuous Integration

How To Understand The Tools Your Organization Uses To Manage An Agile Process

Introduction to Document Assembly and Contract Management

Lean Software Development and Kanban

Cloud Services Catalog with Epsilon

WHAT IS APPLICATION LIFECYCLE MANAGEMENT?

Coverity Services. World-class professional services, technical support and training from the Coverity development testing experts

How do you manage the growing complexity of software development? Is your software development organization as responsive to your business needs as

JBoss Enterprise MIDDLEWARE

Maximize strategic flexibility by building an open hybrid cloud Gordon Haff

How To Benefit From An Automated Deployment

Why continuous delivery needs devops, and why devops needs infrastructure-as-code. Sriram 25-Oct-2012

Impact of Architecture on Continuous Delivery

Building Value with Continuous Integration

SERVICES DATA SHEET CLOUD

Distributed Agile Development in the Cloud

Comparing Scrum And CMMI

W H I T E P A P E R E n a b l i n g D a t a c e n t e r A u t o mation with Virtualized Infrastructure

ITIL Intermediate Lifecycle Stream:

Quality assurance in an Agile delivery method

GETPAID Xpress Edition (XE)

Open Group SOA Governance. San Diego 2009

Transcription:

The Agile Maturity Model Applied to Building and Releasing Software By J ez Humble and Rolf Russell September 2009 www.thoughtworks-studios.com

In this paper, we present a maturity model for building and releasing software. This model is designed to serve several purposes: To provide a structure for assessing your team or organizational capabilities in building and releasing software To provide an approach for planning and executing improvements to existing practices We start with a discussion of the Agile Maturity Model, move on to building and releasing software, present the maturity model, and then describe how to use it. The Agile Maturity Model The Capability Maturity Model Integrated (CMMI ) is intended to institutionalize a collection of pre-defined delivery practices and ensure their consistent execution so as to increase the probability that a team or organization can successfully complete projects. The definition of successful includes completing the project on time and in budget. In contrast, the Agile Maturity Model is an internal tool used at ThoughtWorks and other organizations to help organizations understand their current practices and work toward improving them with the goal of increasing ability to respond to changing business conditions and better harnessing innovation. The model used here is both a specialization and an adaptation of the Agile Maturity Model. Although we share the same goals as the Agile Maturity Model, we have changed the definition of the levels, so as to apply it to the practices related to building and releasing software. Building and Releasing Software The delivery of working software involves several activities besides development. In particular, software must be turned into a form suitable for installation in its target environment, subjected to various forms of testing, and then be released to users. Our assertion is that this process should be performed continuously, rather than as a series of phases, with the aim of creating a fully automated, reliable, predictable, and visible process with well-understood, quantifiable risk. The Ideal State Ideally, each change made to your application, its environment, or its configuration should go through an automated process. This process should create binaries, run automated tests against them, and inform all relevant parties of the results of this process. We call such a system the deployment pipeline. It should also be possible for developers, testers, and operations people to have not only visibility into this process, but also to be able to self-service processes such as deployments to testing and environments and the release of applications at the push of a button. Such processes also form a part of the deployment pipeline.

The Maturity Model In order to achieve our ideal, it is essential to cover all parts of the process of building, deploying, testing, and releasing software. Build management and continuous integration are concerned with creating and maintaining an automated process that builds your application and runs tests on every change and then provides feedback to the whole team on the process. Environments consist of the entire stack your application requires to work: hardware, infrastructure, networking, application stacks, external services, and their configuration. Release management is defined by Forrester as the definition, support, and enforcement of processes for preparing software for deployment to production. We have added considerations around compliance to this area, since conformance to regulatory environments is often one of the strongest constraints on release management. Testing, whether through automated tests or manual processes such as exploratory testing and user acceptance testing is designed to ensure that software contains as few defects as possible as well as conforms to non-functional requirements. We have focused on the areas of testing that are most relevant to building and releasing software. Finally, data management (usually, but not always, in the context of relational databases) forms an essential part of the deployment and release process, since it is a frequent source of problems when releasing or upgrading software. To ensure each part of the process is given due attention, we have divided the model into five sections.

How to Use The Maturity Model The ultimate aim for your organization is to improve. The outcomes you want are: Reduced cycle time, so you can respond faster to changing business requirements and increase revenue Reduced defects, so you can improve your reputation and spend less on support Increased predictability of your software delivery lifecycle to make planning more effective The ability to adopt and maintain an attitude of compliance to any regulatory regime you are subject to The ability to determine and manage software delivery risks effectively Reduced costs due to better risk management and fewer issues delivering software We believe that using this maturity model can help you achieve all of these outcomes. 1 Here are the steps to use the model, based on the Deming cycle: plan, do, check, act. 1. Identify where your organization lies on the model. You may find that different parts of your organization achieve different levels on each of the different categories. 2. Choose what to focus on. You should work out what the possible improvements you could implement are, how much they will cost, and what benefit they will deliver. You then choose a few improvements you could make and decide how to implement those changes. You should set acceptance criteria to define the results you are expecting to see, so you can decide if the changes were successful. 3. Implement the changes. First, plan how to implement the changes. You might decide to start with a proof of concept. If so, choose a part of your organization that is really suffering these people will have the best motivation to implement change, and it is there that you will see the most dramatic change. Then, of course, you have to execute your plan. 4. Check if the changes you implemented had the desired effect. Use the acceptance criteria you created. Hold a retrospective to find out how well the changes were executed. 5. Repeat these steps, building upon your knowledge. Roll out more improvements incrementally, and roll them out across your whole organization. Organizational change is hard, and a detailed guide is beyond the scope of this paper. The most important advice we can offer is to implement change incrementally. If you try and go from level one to level five across your whole organization in one step, you will fail. Changing large organizations can take several years. Finding the changes that will deliver the most value and working out how to execute them should be treated scientifically: come up with a hypothesis and then test it. Repeat and learn in the process. No matter how good you are, it is always possible to improve. If something doesn't work, don't abandon the process: try something else.

About ThoughtWorks Studios ThoughtWorks Studios is a global leader in Agile software development tools, and its products can be found in development organizations seeking sustainable Agile adoption. The company's Adaptive Application Lifecycle Management (ALM) solution provides a platform for managing all aspects of software development, from requirements definition and project management to test automation, quality assurance, and release management. Adaptive ALM comprises the integration of three products: Mingle (Agile project management), Twist (Agile testing), and Go (Agile release management). Each tool is available as part of a complete lifecycle solution or as a standalone product. Backed by more than 17 years of experience in Agile delivery, ThoughtWorks Studios is the product division of ThoughtWorks Inc., a pioneer in Agile development. ThoughtWorks Studios has over 400 customers in more than 20 countries, including 3M, Honeywell, BBC, ebay, Barclays, Vodafone, McGraw-Hill, and Rackspace. The company headquarters is located in San Francisco and Bangalore, with offices in London and select cities in Europe, Asia, and Australia. For more information, visit www.thoughtworks-studios.com. Mingle, an Agile management and collaboration tool, provides a common workspace for all team members and an automated system of record for all projects. Mingle can adapt any existing workflow process and easily manages daily development activities. Offering true-to-life visibility in the entire development process for all stakeholders, Mingle helps development teams become more open and collaborative. Go is a solution for Agile release management, which enables businesses to release software on demand. Go improves collaboration between developers, testers, and operations and provides fast feedback on the production readiness of your software. Using Go, teams can model the delivery process, perform push-button deployments, and trace from deployments back to version control. Twist, an automated Agile testing solution, provides English-like constructs, making the testing process more productive for all team members. As applications grow in complexity, Twist helps to more easily maintain complex test suites. These suites keep pace with application development and are held as long-living assets. ThoughtWorks Studios CALL: 512-467-4956 (sales) 415-238-6497 (main) North America EMAIL: studios@thoughtworks.com WEB: www.thoughtworks-studios.com +91 80-4064-9703 Rest of the world SAN FRANCISCO CHICAGO LONDON BANGALORE BEIJING MELBOURNE