Agile Development Doesn t Have to Mean Fragile Enterprise Processes

Similar documents
Agile Projects 7. Agile Project Management 21

Introduction to Agile. Marty Acks MKS Inc. June 2, 2011

Agile Acquisition. Peter Modigliani 10 Dec 12. Presented to: Mr. Koen Gijsbers. General Manager NATO Communications and Information Agency

Bridging the Gap Between Governance and Agility. Mario E. Moreira

The Business Value of Agile Transformation

Agile Essentials Track: Business Services

Chapter 3 Agile Software Development. Part 1b

Succeed with Agile at Scale

Lecture 8 Agile Software Development

Agile Development Processes. CSCE Lecture 3-08/31/2017

Becoming More Agile: How to Adopt Agile Development Methodology

Introduction to Agile and Scrum

AGILE methodology- Scrum

Manage Projects Effectively

Choose an Agile Approach

Software Engineering Part 2

Scale agile with the industry s most comprehensive set of agile project and portfolio management capabilities.

Lecture 1. Topics covered. Rapid p development and delivery is now often the most important requirement for software systems.

Introduction to Disciplined Agile Delivery

Agile Software Development

What is Continuous Integration. And how do I get there

Software Engineering Lecture 5 Agile Software Development

Achieving an Agile Enterprise with Enterprise-Wide Portfolio and Lifecycle Management

2. True or false: In Scrum all the requirements for the project are known prior to the start of development.

What is Agile ALM? The Value of Agile Application Lifecycle Management Defined. Matt Klassen Strategic Solutions Manager, MKS Inc.

Reducing Business Risk

SOFTWARE ENGINEERING SOFTWARE-LIFE CYCLE AND PROCESS MODELS. Saulius Ragaišis.

Software Design COSC 4353/6353 D R. R A J S I N G H

Agile & Lean / Kanban

Maureen Weverka & Kathy Burnham Mutual of Omaha. November 9, Mutual of Omaha Insurance Company. All Rights Reserved.

Scrum. a description. V Scrum Alliance,Inc 1

CTC/ITC 310 Program Management California State University Dominguez Hills First Exam Answer Key November 20, 2018 Instructor: Howard Rosenthal

8 th of April 2015 Bucharest, Romania Vlad Gabriel Sorin Agile PM/Scrum Master

The Key to Project Success: Reducing Solution Scope

Agile Software Development

Introduction to Agile/Extreme Programming

Managing Projects of Chaotic and Unpredictable Behavior

Software Processes. With a focus on Agile/Scrum CPSC310 Software Engineering

Making Visions Actionable. Pejman Makhfi Certified Scrum Master VP of Solution, Savvion Inc. 11/29/2008

Introduction to Software Life Cycles and Agile. CSCI 5828: Foundations of Software Engineering Lecture 03 09/02/2014

Tuesday, October 25. Announcements

Scaled Agile Framework Making Agile Work for You. Clint Edmonson Principal Consultant Polaris Solutions Certified Safe Program Consultant (SPC)

Software Development Methodologies

Scaled agile transformation case study

CS350 Lecture 2 Software Dev. Life Cycle. Doo-Hwan Bae

Acquiring Digital Services for Defence using the Government Service Design Manual

Rule = A definition of what a Product Backlog is. Good Practice = A practice which is commonly done and is good to do. Avoid = A practice which, in

TickITplus Implementation Note

Scaling Agile With ZolonTech. Transform your Organization today with Agile Application Development

Continuous Quality Assurance

Improving Agile Execution in the Federal Government

The Importance of Business Architecture and IT Architecture in Successful Agile Project Management

Knowledge Solution Services

Introduction to Agile Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 07 09/13/2016

The new frontier: Agile automation at scale

Software Engineering & Project Management Engr. Abdul-Rahman Mahmood MS, PMP, MCP, QMR(ISO9001:2000)

Assessment: was ist ein High Performance Team

Mature agile development using HP Quality Center

Microsoft Exam Delivering Continuous Value with Visual Studio 2012 Application Lifecycle Management Version: 9.0

Agile Planning. Petri Heiramo. Agile Coach, CST

Medical Device Agile Systems Development Workshop

ARCHITECTING PROJECT MANAGEMENT for Enterprise Agility. Enable Organization with Agile using Tooling/Technology

Scaling Agile to the Enterprise

ACHIEVE BUSINESS SUCCESS WITH ACCURATE SOFTWARE PLANNING

Portfolio Management In An Agile World

Five DevOps CM Practices

Achieving Application Readiness Maturity The key to accelerated service delivery and faster adoption of new application technologies

Top 5 Reasons Why Agile Fails (and how to avoid them!) March 2017

An Overview of Guiderails: Keeping Aligned and on Track

A 7-STEP FRAMEWORK TO IMPLEMENT CICD IN ETL TESTING

Agile Tutorial for the Senior Project Class School of Computing and Information Sciences Florida International University

How to Choose an Enterprise Agile Platform

CTC/ITC 310 Program Management California State University Dominguez Hills Final Exam Answer Key December 13, 2018 Instructor: Howard Rosenthal

Introduction to Software Life Cycles. CSCI 5828: Foundations of Software Engineering Lecture 06 09/08/2016

QAIassist Integrated Methodology Software Testing Lifecycle Implementation Guide

QAIassist Integrated Methodology Project Management Lifecycle Implementation Guide


Software Engineering Chap.3 - Agile Software Development

Joy E. Spicer, President & CEO. March 28, 2011

A Guide to Branching and Merging Patterns

Agile at Scale -Beyond SAFe. John B Hudson, B.Sc., PMP, ACP, CSM, SPC

QAIassist Integrated Methodology Software Development Lifecycle (SDLC) Implementation Guide

04. Agile Development

Ian Koenig Quality IS Projects, Inc. Philippines Chapter Project Management Institute June 8 th 2010

An Introduction to Scrum

RETRANSFORM BEYOND AGILE FOR FASTER, INTEGRATED IT SERVICE DELIVERY

RETRANSFORM BEYOND AGILE FOR FASTER, INTEGRATED IT SERVICE DELIVERY

Delighting Vodafone Turkey s Customers via Agile Transformation

AGILE SOLUTIONS. Agile Basics

We are Product Support following Kanban (ScrumBan), yet pulling in small features (stories), room for scope creep.

Businesses now operate in rapidly changing environment.

Be Agile. Scale Up. Stay Lean. Have More Fun.

INTEGRATED APPLICATION LIFECYCLE MANAGEMENT

Watson Internet of Things. Agile Development Why requirements matter

UTILITIES PROVIDERS ACCESSING THE NEXT GENERATION 1 OF FIELD SERVICE TECHNOLOGIES

SWE 211 Software Processes

Co-founder and Managing Director of RADTAC Specialist in Agile and Iterative approaches since mid 80s Agile Alliance Founder Member in 2002

From Growing Pains to Embracing Change

WORKING IN DISTRIBUTED AGILE ACROSS THREE CONTINENTS

Strike the right balance with Disciplined Agile Delivery (DAD)! October 6, 2016 Kiron D. Bondale, PMP, PMI-RMP, CDAP, CDAI

Transcription:

Fragile Enterprise Processes An MKS White Paper By: Colin Doyle ALM Strategic Product Manager MKS Inc.

The Move to Agile Agile software development methodologies are garnering a lot of interest these days. While Agile methodologies started out focused on supporting relatively small teams, more and more large enterprises are looking to adopt Agile approaches for major projects or their entire organization. Application of traditional Agile methodologies as-is does not address enterprise concerns such as scalability and regulatory compliance. This paper will show that Agile practices and approaches must be blended with proven enterprise practices to achieve the right mix of agility and discipline. Scalability is achieved by leveraging a robust and unified application lifecycle management solution to automate processes and activities where possible, improve visibility and transparency across the organization, and automatically provide status reporting as a byproduct of the activities the team performs using the solution. The reasons for the interest in Agile approaches are straightforward; traditional methodologies such as the Waterfall or V-model have a poor track record. The original CHAOS report produced by the Standish Group in 1995 identified that on average only 16% of software projects were successful; 53% were challenged, with significant cost and schedule overruns, and 31% failed and were never completed. The average challenged project was 189% over budget and took 222% longer than scheduled. The majority of the projects considered for that study were developed using traditional methodologies, or no defined methodology whatsoever. Lack of user input, incomplete and changing requirements were cited as the main reasons why projects were challenged or failed. Traditional methodologies such as Waterfall and even Barry Boehm s Spiral model were predicated on the assumption of well defined requirements and little change to those requirements over the life of the project. While those assumptions are sometimes true for military systems projects, they are not typically the case for most commercial systems. Agile methodologies came about in response to the failure of traditional methodologies to handle projects with poorly defined requirements or rapidly changing requirements. Some Agile methodologies, such as Extreme Programming (XP) or Dynamic Systems Development Method (DSDM) have been around for over a decade, and have been successfully implemented at a number of organizations. Unlike traditional methodologies, which are focused on following a plan, Agile methodologies are focused on adapting to change. Additionally, Agile is geared towards minimizing risk and wasted effort in environments where uncertainty or ambiguity exists. Thus Agile methodologies are better aligned with the conditions found in typical software development projects. What Distinguishes Agile Methodologies? In addition to its focus on adapting to change, Agile is characterized by having close (ideally continuous) involvement of the customer, and an emphasis on empowered, self-organizing teams. Agile methodologies are geared to producing working software with minimal overhead. Agile methodologies have been strongly influenced by the concepts of Lean Manufacturing. The focus on reducing waste (non-value adding activities), continuously improving, and adapting to change are all based on or influenced by Lean Manufacturing concepts to some extent. The move to Agile methodologies came out of a perception that many traditionally run projects became slaves to bureaucratic processes and practices that didn t necessarily increase the quality of the final software product, or increase the chance of timely delivery. Thus Agile methodologies focus on working software as the primary measure of value to the customer. Fragile Enterprise Processes Page 2 of 7

Taking a page from Lean Manufacturing principles, the Agile approach attempts to eliminate activities and development artifacts that do not add significant value, such as overly detailed documentation. Agile methodologies advocate a much more decentralized approach to project management than do traditional approaches, replacing a centralized command and control approach to project management with an emphasis on facilitation and mentoring. Rather than assigning work to the team based on outsider estimates of how much they should be able to accomplish, an Agile team has the people who will do the actual work perform the detailed estimation, and work done in an iteration is defined by what the team has committed to, not by what a manager would like accomplished. This emphasis on delegating to empowered individuals, coaching rather than managing, is one of the biggest cultural changes that organizations have to deal with when transitioning to Agile. Another defining aspect of Agile methodologies is the desire for close, ongoing interaction with the customer. It reflects that fact that for many projects where Agile is appropriate, neither the customer nor the development team fully understands what is required at the start of the project and that even what they do understand is likely to change over the course of the project. It also reflects the desire to minimize the number of translations between customer and those who will implement what the customer wants. The main practice supporting Agile methodologies is the use of an iterative and incremental development framework. Unlike traditional approaches such as the Waterfall model, which do the majority of planning, requirements definition and design up front, then implementation followed by testing, an iterative and incremental approach partitions a development project up into a number of iterations, each of which is strictly held to a fixed, relatively short time interval. This constraint on the duration of iterations is known as time-boxing, and is a significant part of the incremental and iterative framework. Traditional approaches attempt to fix the scope of the project up front, and adjust resources and schedule to meet delivery requirements. Scope creep results in all three factors being variable, which plays havoc with the project plan. Agile methodologies start with the concept of an iteration which is short enough in duration that changes can be deferred until the next iteration; the schedule and team resources are fixed for the iteration, and only the scope is available for adjustment. By maintaining a consistent duration for iterations, metrics can be collected and compared across iterations. A common metric is the throughput per iteration; in the Scrum methodology this is known as velocity and is measured as a weighted measure of implemented user stories per iteration. Velocity provides a good long-term estimate of how much can be delivered over a given set of iterations. The iterative nature of the development framework means that as new user stories are implemented, the overall software product should be continually analyzed and refactored as needed to ensure that the quality of the code does not degrade over time and the implementation remains clean and maintainable. Software design patterns are also used to maintain the quality of the code and to increase the chance that the emergent architecture of the software product is a good one. This emphasis on maintaining cleanliness and quality of the software product as it is incrementally developed tends to require more discipline from individual developers than traditional methodologies demand. Fragile Enterprise Processes Page 3 of 7

The iterative and incremental development framework is combined with a just enough and just in time approach to planning and requirements analysis. At the product level, very high level requirements are identified and defined in customer context; Scrum calls these user stories. User stories are defined just enough that a rough order of magnitude scoping and risk analysis can be performed. The customer or product owner (customer representative in Scrum terminology) then prioritizes this set of user stories, and the resulting queue of user stories is known as the product backlog. For a given project, referred to as a Release in Scrum, a subset of the product backlog is identified as candidates for that Release. For a given iteration, the highest priority user stories from the backlog are analyzed and estimated in more detail. The development team then reviews each of these stories and adds them into the queue for the iteration until they feel they cannot commit to deliver any more that iteration. Work then begins on the iteration, with daily feedback across the team on how everyone is doing and if there are any issues that need to be addressed. If the team manages to implement their committed set of user stories before the iteration ends, they can pull more from the product backlog; if they run into problems and do not complete all the stories committed to at the beginning of the iteration, the uncompleted stories go back onto the product backlog. This pull approach to planning the work to be done along with the just in time nature of analysis and scope estimation is very much based on Lean Manufacturing concepts. At the end of the iteration there is a review where issues that impacted the iteration are identified and opportunities to improve are identified. With most Agile methodologies, such as Scrum, the goal is to have potentially shippable software at the end of each release. This means that integration of new work is an ongoing activity and not left as something to be done at the end of the Release. In fact another common practice in Agile methodologies is that of Continuous Integration, where every committed change triggers a build and test cycle to validate that change as soon as possible. At the end of the Release there is usually an additional review, referred to as a retrospective in Scrum, which is an overall post-mortem of the project. The successes and problems are both identified, and action items raised to resolve problems or implement suggested improvements. The series of short, fixed length iterations also encourages regular feedback between the customer or product owner and the development team. At the end of each iteration, ideally there is a stable build of working software for the product owner to evaluate. Based on that evaluation, the product backlog can be reprioritized, the direction of product development can be redirected, or the product owner might decide the release has met its goals already and proceed with the final release rather than continue development in the next iteration. As the figure to the right shows, iterative and incremental development with working software at the end of each iteration has the potential to deliver significant value at various points over the course of a Release. Traditional development approaches, on the other hand, tend not to produce working software until the very end of the project. Fragile Enterprise Processes Page 4 of 7

Issues with Enterprise Implementations of Agile Methodologies Agile methodologies have been shown to work well with small teams and new software product development. Agile purists recommend teams of no more than ten people who are physically colocated in order to maximize communication and minimize the overhead associated with planning and management. Agile purists are also almost totally focused on the delivery of working software, and are less concerned with demonstrating compliance to processes. Unfortunately, these conditions are rarely available or suitable in the enterprise environment. The first issue that most enterprises have to deal with is that they have existing teams and projects that are following existing methodologies. Making radical changes mid-project to critical enterprise applications is not generally recommended. In general, most organizations want to pilot Agile methodologies try them out on a few new projects that better fit the criteria of the Agile purists. Once the organization has proven the worth of the new approach and gained experience in its implementation, they can consider introducing it to larger teams and legacy applications. In order to make this transition as smooth as possible, organizations should consider using flexible application lifecycle management (ALM) solutions which can support both traditional and Agile methodologies on different projects within the same organization. ALM solutions like MKS Integrity can also aid in the transition from an existing methodology to a more Agile approach by managing the change of processes and procedures. The next issue is the matter of scaling Agile approaches to handle enterprise organizations. The typical enterprise development organization consists of far more than 10 developers, which is the recommended upper limit of an Agile development team according to the purists. Organizing such groups into teams of teams can scale the Agile approach somewhat, but even that won t handle most enterprise organizations. As the number of teams that interact grows, the coordination issues and the number of communication interfaces grow exponentially. Further adding to the problem is that most enterprise organizations are distributed across multiple sites, which rules out the physical co-location of everyone. Again, robust application lifecycle management solutions can play a significant role in addressing these scalability issues. A common repository which enables real-time access to pertinent data regarding task and defect status as well as real-time visibility into what code changes are under development can address the issues raised by having larger groups that are not co-located. Software change and configuration management (SCCM) support for parallel development, such as first class support for branches of configurations, can reduce the disruption that would occur if everyone performed continuous integration into a single release branch. By allocating branches to separate teams or even separate feature development, continuous integration can be performed in a staged manner, so that no one branch is overwhelmed by change, which could result in excessively frequent broken builds. The SCCM functionality should also provide dedicated support for distributed development, so that latency and bandwidth limitations between sites do not affect the performance of any given team or the visibility across the organization. Automating processes where possible, particularly the collection of data and generation of status metrics, is another way that application lifecycle management solutions such as MKS Integrity can assist with scaling of Agile methodologies. Regulatory compliance and senior management oversight are other enterprise aspects on which Agile purists typically do not focus. Enterprise organizations often have to demonstrate that processes are defined and consistently followed. The process automation capabilities of a solution such as MKS Integrity make it easy to define processes and enforce them, with automatic audit trails generated as to that compliance. MKS Integrity takes it a step further with Fragile Enterprise Processes Page 5 of 7

the ability to enforce and automate aspects of change management for process changes through its Admin Staging capability. Given the continuous improvement aspects of Agile approaches, plus the need to gradually migrate teams from traditional methodologies to Agile, the ability to control and automate the roll-out of changes to processes the teams follow can be very helpful. Another aspect that Agile methodologies are traditionally weak at is requirements management. Agile purists often treat the customer requirements (user stories) as transient objects, which are disposed of once the iteration that implements them is complete. These purists claim the source code and test cases written as part of the implementation is all an organization needs to track requirements, or that they can just consult the product owner or customer for a ruling if in doubt. However, when working with complex, long-lived applications, these approaches are not adequate. New functionality must integrate with existing functionality, and the dependencies and impacts of changes need to be clearly analyzed. For complex applications with a long release history, even the customer or product owner is unlikely to clearly remember all the details of already implementing functionality. As George Santayana once said, those who do not learn from history are doomed to repeat it. If requirements are not properly captured and managed, there is a greater chance that existing functionality becomes reimplemented with subtle and unintentional differences and the ability to determine the impact and dependencies of new changes on existing functionality will be limited. Using an application lifecycle management solution that provides strong support to capture, manage and analyze the impact of changing requirements can go a long way to incorporating Agile approaches into the development of complex applications with significant history. Finally, the last enterprise issue to address is the need to support families of related products, or implement a Software Product Line (SPL) strategy. In such situations, certain components are common across the family of products, while others vary depending on the specific product. Often in such cases each product in the family or product line has a different customer who may not really care about reuse or commonality with other customers products; the desire to maximize the identification and reuse of common components is driven by the enterprise to reduce their cost and time to market, not the customers. Blending a component reuse or SPL strategy with Agile methodologies requires a platform that provides first class support for managing variants of the same product line as well as sharing of common components between those variants. Without active support for managing such commonalities, the Agile approach would tend to produce unrelated products, given the focus on close collaboration with the customer for a specific product. In Summary There are both significant cultural challenges and technical challenges involved in implementing Agile approaches within an enterprise. Some of the cultural challenges are the de-emphasis on centrally managed development, and the delegation of significant autonomy to self-organizing teams. Examples of the technical challenges are providing visibility and transparency across multiple sites and large development organizations; supporting both traditional and Agile methodologies within the same organization; providing support for complex applications with significant history and families of related products. The indisputable benefits of Agile approaches ensures that enterprise adoption of such methodologies will continue despite these challenges. Fragile Enterprise Processes Page 6 of 7

Many of these technical challenges can be resolved or minimized through the use of a flexible application lifecycle management solution. MKS Integrity is a powerful, flexible application lifecycle management solution that is well suited to implementing Agile as well as traditional methodologies since it provides out of the box transparency across all artifacts and activities, and real time visibility into the activities being performed and the changes being made to the software. Call Us: Visit Us: Email Us: North America UK & Northern Europe Germany & Rest of Europe Japan and Singapore Rest of World 1 800 613 7535 44 (0) 1483 733900 49 (0) 711 3517750 65 67 32 8768 519 884 2251 www.mks.com sales@mks.com MKS and MKS INTEGRITY are trademarks or registered trademarks of MKS Inc. All other trademarks are the property of their respective owners 2008. All rights reserved. Fragile Enterprise Processes Page 7 of 7