Moving from a Plan Driven Culture to Agile Development



Similar documents
A Capability Maturity Model (CMM)

Software Development Life Cycle (SDLC)

CHAPTER_3 SOFTWARE ENGINEERING (PROCESS MODELS)

RUP for Software Development Projects

10 Keys to Successful Software Projects: An Executive Guide

SE464/CS446/ECE452 Software Life-Cycle and Process Models. Instructor: Krzysztof Czarnecki

Modellistica Medica. Maria Grazia Pia, INFN Genova. Scuola di Specializzazione in Fisica Sanitaria Genova Anno Accademico

Using Simulation to teach project management skills. Dr. Alain April, ÉTS Montréal

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

CS 389 Software Engineering. Lecture 2 Chapter 2 Software Processes. Adapted from: Chap 1. Sommerville 9 th ed. Chap 1. Pressman 6 th ed.

10/4/2013. Sharif University of Technology. Session # 3. Contents. Systems Analysis and Design

Scaling Down Large Projects to Meet the Agile Sweet Spot

AGILE DEVELOPMENT WITH A CAPITAL A

Génie Logiciel et Gestion de Projets. Software Processes Focus on Extreme Programming

Development Methodologies

Quality Assurance Software Development Processes

CS4507 Advanced Software Engineering

COMP 354 Introduction to Software Engineering

Supporting Workflow Overview. CSC532 Fall06

Development Methodologies. Types of Methodologies. Example Methodologies. Dr. James A. Bednar. Dr. David Robertson

Requirement Management with the Rational Unified Process RUP practices to support Business Analyst s activities and links with BABoK

CRITICAL ANALYSYS OF THE SCRUM PROJECT MANAGEMENT METHODOLOGY

Transitioning from Waterfall to Agile Course AG01; 3 Days, Instructor-led

White Paper IT Methodology Overview & Context

Iterative Project Management 1

TRADITIONAL VS MODERN SOFTWARE ENGINEERING MODELS: A REVIEW

AGILE METHODOLOGY IN SOFTWARE DEVELOPMENT

Software Development Process

Web Application Development Process

Lifecycle Models: Waterfall / Spiral / EVO

Plan-Driven Methodologies

Processes in Software Development. Presented by Lars Yde, M.Sc., at Selected Topics in Software Development, DIKU spring semester 2008

Hamid Faridani March 2011

Software Project Management using an Iterative Lifecycle Model

Software Life Cycle. Main issues: Discussion of different life cycle models Maintenance or evolution

Surveying and evaluating tools for managing processes for software intensive systems

6. Software Lifecycle Models. A software lifecycle model is a standardised format for planning organising, and running a new development project.

CHAPTER 02 SOFTWARE LIFE-CYCLE MODELS

CompSci Fall 2014 Professors: Robert Duvall, Ajay Patel, Salman Azhar (rcd@cs, ajay.patel, azhar@cs)

Basic Unified Process: A Process for Small and Agile Projects

An Iterative and Agile Process Model for Teaching Software Engineering

3C05: Unified Software Development Process

Transitioning Your Software Process To Agile Jeffery Payne Chief Executive Officer Coveros, Inc.

Netstar Strategic Solutions Practice Development Methodology

Software Development Life Cycle Models - Process Models. Week 2, Session 1

Introduction to Agile Software Development

Agile So)ware Development

Agile Project Management

Agile Projects 7. Agile Project Management 21

Agile Methodologies and Its Processes

Agile Software Engineering Practice to Improve Project Success

AGILE vs. WATERFALL METHODOLOGIES

ABHINAV NATIONAL MONTHLY REFEREED JOURNAL OF RESEARCH IN SCIENCE & TECHNOLOGY

(Refer Slide Time: 01:52)

Software development lifecycle

Increasing Development Knowledge with EPFC

Why the Traditional Contract for Software Development is Flawed

Chapter 2 Software Processes

SOFTWARE PROCESS MODELS

Planning a Project with the Rational Unified Process Author: David West

Managing Small Software Projects - An Integrated Guide Based on PMBOK, RUP, and CMMI

CALCULATING THE COSTS OF MANUAL REWRITES

Management. Project. Software. Ashfaque Ahmed. A Process-Driven Approach. CRC Press. Taylor Si Francis Group Boca Raton London New York

Software Engineering Introduction & Background. Complaints. General Problems. Department of Computer Science Kent State University

How To Understand The Software Process

Software Quality Assurance in Agile, XP, Waterfall and Spiral A Comparative Study

Peter Mileff PhD SOFTWARE ENGINEERING. The Basics of Software Engineering. University of Miskolc Department of Information Technology

Whitepaper. Agile Methodology: An Airline Business Case YOUR SUCCESS IS OUR FOCUS. Published on: Jun-09 Author: Ramesh & Lakshmi Narasimhan

EMC PERSPECTIVE. Adopting an Agile Approach to OSS/BSS Development

A Software Development Simulation Model of a Spiral Process

Singhania University, Jhunjhunu, Rajasthan, India. 2 Department of Information Technology King Abdul Aziz University, Jeddah, Saudi Arabia

Selecting a Software Development Methodology based on. Organizational Characteristics. Adrienne Farrell

A Viable Systems Engineering Approach. Presented by: Dick Carlson

Software Engineering

OPTIMUS SBR. Optimizing Results with Business Intelligence Governance CHOICE TOOLS. PRECISION AIM. BOLD ATTITUDE.

A Comparison between Five Models of Software Engineering

Introduction to Software Engineering: Overview and Methodologies

Software Project Management

Software Development Going Incremental, Iterative and Agile:

Scrum and CMMI Level 5: The Magic Potion for Code Warriors

In today s acquisition environment,

Quality Assurance in an Agile Environment

How Product Management Must Change To Enable the Agile Enterprise

Nova Software Quality Assurance Process

Classical Software Life Cycle Models

Basic Trends of Modern Software Development

Agile Software Development

Agile Software Development Methodologies and Its Quality Assurance

Selling Agile at Your Company

Leveraging RUP, OpenUP, and the PMBOK. Arthur English, GreenLine Systems

Lean Software Development

Develop Project Charter. Develop Project Management Plan

Best-Practice Software Engineering: Software Processes to Support Project Success. Dietmar Winkler

Applications Executive Council Drivers of Business Analyst Effectiveness

Transcription:

Moving from a Plan Driven Culture to Agile Development Lessons Learned ICSE 2005, St. Louis, 20-May-2005 Michael Hirsch Zühlke Engineering AG hm@zuehlke.com

Topic of this Talk In scope: Experiences and lessons learned in moving from plan driven to agile development practices Out of scope: Advantages (or disadvantages) of agile development When to use an when not to use agile development Differences between particular agile methods such as XP, Crystal, Scrum, agile RUP configurations, etc. Moving from a Plan Driven Culture to Agile Development 2 / 30

Speaker and Company Background Active in software development since 1981 in various roles, including developer, architect, project manager and mentor Background mostly in control systems, information systems, and embedded systems for various industries Partner and process manager with Zühlke Engineering in Zurich / Switzerland Zühlke Engineering: - Development of custom software and systems - Offices in Zurich, Frankfurt and London with approx. 250 employees - OOA/OOD/OOP since 1992, incremental and agile development based on RUP since 1998 - Typical projects are 1 to 20 person years, with teams of 3 to 12 developers Moving from a Plan Driven Culture to Agile Development 3 / 30

Contents 1. Plan Driven versus Agile processes 2. The impact on stakeholders 3. Lessons learned 4. Summary Moving from a Plan Driven Culture to Agile Development 4 / 30

Fundamental Assumptions Plan driven All desired properties of the end product can be known and precisely specified before construction of the end product begins. It follows that projects are predictable and therefore can and should be planned in detail from start to end. A deviation from the plan is a sign of sloppy work in earlier stages of the project. Analogy: Building a Bridge Agile The desired properties of the end product can not be known until at least part of the solution is built. It follows that projects are in principle unpredictable and the development process must be optimized for situations where the detailed outcome cannot be known in advance. Analogy: Exploring where and how to cross a river Moving from a Plan Driven Culture to Agile Development 5 / 30

Plan Driven versus Agile Discipline Plan Driven Agile Process Model Waterfall Iterative & Incremental Project Planning Requirements Engineering Detailed project plan from start to end, created early in the project Dedicated specification phase Initial requirements are signed off; rigorous change request regime afterwards Comprehensive requirements documents, often part of a contract Coarse grained plan for overall project, detailed plans per iteration Requirements evolve over the course of a project No or very relaxed change request regime Easy access to customer rather than reliance on comprehensive requirements documentation Moving from a Plan Driven Culture to Agile Development 6 / 30

Plan Driven versus Agile Discipline Plan Driven Agile Architecture & Design Comprehensive architecture and design specs before implementation begins Architecture and design try to accommodate for future extensions Implementation Programming work concentrated in Implementation phase Programming work may be contracted out (preferably to low cost countries) Programmers are assigned to subsystems Minimum upfront architecture and design work Architecture is validated iteration by iteration Tradeoff between YAGNI and DOGBITE Programming work spread out over entire project Pair programming (ideally) Collective code ownership Moving from a Plan Driven Culture to Agile Development 7 / 30

Plan Driven versus Agile Discipline Plan Driven Agile Testing Testing phase at the end of the project Tests are designed and executed by test specialists Testing spread out over entire project Functional tests are specified and executed by end users Quality Assurance Formal QA role QA role is responsible for formal and informal reviews, development process, configuration management, testing, code inspections,... No explicit QA role No formal reviews Attitude: quality is the result of how we work here Moving from a Plan Driven Culture to Agile Development 8 / 30

Contents 1. Plan Driven versus Agile processes 2. The impact on stakeholders 3. Lessons learned 4. Summary Moving from a Plan Driven Culture to Agile Development 9 / 30

How are Stakeholders affected by switching to Agile Development? Customer Organization Development Organization Sponsor End User Business Analyst Project Manager Developer Moving from a Plan Driven Culture to Agile Development 10 / 30

Sponsor Plan driven: Buys a system with fixed functionality for a fixed price which will be delivered on a fixed date (so he/she thinks...) Agile: Buys a system without knowing all three of functionality, price and delivery date. Requires a lot of trust in development organization. Typical objections against agile development: - I can!t buy something if I don!t know exactly what it will be and how much it will cost - (Can I trust these newfangled agile hackers?) How to overcome objections: - Appeal to track record of plan driven projects - Appeal to analogy with investment in shares - Deliver more than promised in all iterations - Work like in a glass house Moving from a Plan Driven Culture to Agile Development 11 / 30

Some Managers perception of plan driven and agile methods Plan Driven Moving from a Plan Driven Culture to Agile Development 12 / 30

Some Managers perception of plan driven and agile methods Plan Driven Agile Moving from a Plan Driven Culture to Agile Development 12 / 30

Business Analysts & End Users Plan driven: Prepare specs at begin of project and then send them off to development team. Occasional questions from development team. Agile: Constant dialog with development team, participation in iteration planning and assessments, writing and executing test cases => more time needed! Typical objections against agile development: - I have no time - The developers should know this - (I don!t want to take responsibility for system scope) How to overcome objections: - Make sure BAs and EUs have the time they need - Appeal to get it right the first time - less rework - Communicate the customers role before the project starts - Assign BAs/EUs with authority (and willingness) to make decisions Moving from a Plan Driven Culture to Agile Development 13 / 30

Minimum Customer Involvement for Agile Development Discipline Requirements Test Configuration & Change Mgmt Project Management Customer Responsibilities Shared responsibility between customer and development organization. Customers role: (1) Must provide core requirements (2) May or may not participate in documenting requirements (3) Must review written requirements (1) Write and execute functional tests (2) Provide feedback to every development release (1) Issue lightweight feature change requests (1) Assign priorities to requirements, change requests, and bugfixes (2) Participate in planning-, progress- and iteration assessment meetings Moving from a Plan Driven Culture to Agile Development 14 / 30

Project Manager Plan driven: Prepares project plan at begin of project. Occasional changes to the plan. Agile: Prepares a detailed plan for each iteration. Must keep 4 plans in his/her mind: overall project plan, plans of previous, current, and next iteration => places higher demands on project managers! Typical objections against agile development: - We can!t start unless we have all requirements in detail - Agile equals chaotic; agile projects can!t be controlled - (I hate uncertainties) - (I don!t like personal communication) How to overcome objections: - Most stated objections are based on misunderstandings - Most unstated objections are a sign that this person shouldn!t be a project manager, anyways Moving from a Plan Driven Culture to Agile Development 15 / 30

Developer Plan driven: Works on assigned subsystem(s). Heavy reliance on written interface specifications. State of personal work known to project manager (only). Agile: Heavy reliance on personal communication, state of personal work known to entire team, daily pressure to deliver working code Typical objections against agile development: - 2-4 weeks are too short to program something useful - (I don!t like that everybody on the team knows the state of my work) - (I don!t like personal communication) How to overcome objections: - Different skill levels of team members are OK, as long as everybody permanently works on improving his / her skills - People without a minimum willingness to communicate shouldn!t be software developers in first place Moving from a Plan Driven Culture to Agile Development 16 / 30

Contents 1. Plan Driven versus Agile processes 2. The impact on stakeholders 3. Lessons learned 4. Summary Moving from a Plan Driven Culture to Agile Development 17 / 30

Lessons Learned 1. The strongest motivator to switch to agile development is failure in previous projects 2. Expect resistance from Software Engineering Process Groups 3. Avoid single stage contracts 4. Don!t write off change requests Moving from a Plan Driven Culture to Agile Development 18 / 30

Lesson 1 - Motivators to Switch The strongest motivator by far to switch to agile development is failure in previous projects Case in point 1: Railway dispatch system Project aborted after 20 month of paper-based specification work and the contractor could still not come up with a reasonable estimate of overall project cost Case in point 2: Income tax system Project aborted after 18 months of classical (meaning: very hierarchical) project management and insufficient communication among stakeholders Other motivators: tight budgets, tight schedules, lack of alternatives ( last bet ), alternative to offshoring Moving from a Plan Driven Culture to Agile Development 19 / 30

The CHAOS Authority Approves 1994 1996 16.0% 27.0% 53.0% 33.0% 31.0% 40.0% Average cost overrun: 1994: 180% 2004: 43% 1998 26.0% 46.0% 28.0% 2000 2004 28.0% 29.0% 49.0% 53.0% 23.0% 18.0% Successful Challenged Failure 0% 25% 50% 75% 100% Source: Standish Group www.standishgroup.com Moving from a Plan Driven Culture to Agile Development 20 / 30

The CHAOS Authority Approves 1994 1996 1998 2000 2004 53.0% 31.0% Average cost overrun: Asked for the chief reasons project success 1994: 180% rates have improved, Standish Chairman Jim Johnson 27.0% 33.0% 40.0% 2004: 43% says, The primary reason is the projects have gotten a lot smaller. Doing projects with iterative 26.0% processing 46.0% as 28.0% opposed to the waterfall method, which called for all project requirements to be defined up front, is a major 28.0% 49.0% 23.0% step forward. 16.0% 29.0% 53.0% 18.0% Successful Challenged Source: SoftwareMag.com Failure 0% 25% 50% 75% 100% Source: Standish Group www.standishgroup.com Moving from a Plan Driven Culture to Agile Development 20 / 30

Lesson 2 - Expect Resistance from SEPGs Software Engineering Process Groups (SEPGs) in large organization are frequently opposed to agile development Simply put: Large and heavy processes mean large and heavy SEPGs Lightweight and agile processes mean lightweight SEPGs with fewer members Most SEPG members have no hands-on experience in agile development Moving from a Plan Driven Culture to Agile Development 21 / 30

How to Overcome Resistance from SEPGs Resistance is founded in fear of loss of job Things to do: - Short term: Appeal to the market value of SEPG members What would you rather see in your CV: - XP / Scrum / Crystal / RUP specialist, or - specialist in company XYZ proprietary process? - Long term: Reorganize the SEPG and have it staffed with active project managers and developers who serve part time in the SEPG. Rotate SEPG members over time. Moving from a Plan Driven Culture to Agile Development 22 / 30

Lesson 3 - Avoid Single Stage Contracts The traditional procurement approach - write requirements specs, invite for tender, select (usually) cheapest offer - does not work for agile development This approach does not work because know-how is not efficiently transferred from the requirements writers to the team developing the system Worst form of this approach: WTO (world trade organization) contracts: - Company which prepared requirements specs is prohibited by law to bid for the project - Bidders have no personal contact with requirements writers, questions are formulated and answered in writing only Moving from a Plan Driven Culture to Agile Development 23 / 30

Contracts for Agile Development LCO LCA IOC PR Inception Elaboration Construction Transition Preliminary Iteration Architect. Iteration Architect. Iteration Devel. Iteration Devel. Iteration Devel. Iteration Transition Iteration Transition Iteration Inception contract time & material, 5 to 15% of overall effort Elaboration contract fixed price or time & material, 15 to 35% of overall effort Development contract fixed price, 50 to 80% of overall effort Lifecycle model: Rational Unified Process (RUP) Milestones: LCO = Lifecycle Objectives / LCA = Lifecycle Architecture / IOC = Initial Operational Capabilities / PR = Product release Moving from a Plan Driven Culture to Agile Development 24 / 30

Lesson 4 - Don!t Write Off Change Requests Completely discarding change request processes would mean to throw out the baby with the bath water Without some form of change log, it is impossible to account for effort, cost and schedule at the end of a project Traditional heavyweight change request processes are not practical for agile development A lightweight change request process ( feature request process ) does not add overhead to a project and accounts for the turnarounds of a project Moving from a Plan Driven Culture to Agile Development 25 / 30

Lightweight Feature Request Process Customer Development- Organization 1 Feature Request Explain consequences 3 2 Evaluate consequences 4 Go / No go 5 Execute feature request Feature Request Log Moving from a Plan Driven Culture to Agile Development 26 / 30

Contents 1. Plan Driven versus Agile processes 2. The impact on stakeholders 3. Lessons learned 4. Summary Moving from a Plan Driven Culture to Agile Development 27 / 30

Summary The biggest difficulty in moving from plan driven to agile development is dealing with objections, resistance and simply fear of the involved stakeholders Expect 1 to 4 years to make the transition, depending on the size of the organization Agile development is best viewed as an evolution of plan driven development and not as a radical departure from previous practices as seen by some advocates of agile development Moving from a Plan Driven Culture to Agile Development 28 / 30

Productivity Figures from Real World Agile Projects Some Projects at Zühlke, 1999 to 2003 Project Technology Total Effort [PD] Total LOC Total Classes Total Use Cases FPs delivered Productivity [LOC/PY] [FP/PY] Airport MIS Java J2EE, Swing 327 15 000 202 12 430 9 175 260 ATM Software Win2k native, C++ 2 940 128 000 2 180 16 2 415 8 705 165 Workflow Engine Java J2SE, Swing 252 17 700 188 11 505 14 045 400 Product Data Mgmt System Java J2EE, Web client 461 40 000 470 12 1 140 17 315 495 Protocol Converter Java J2SE 215 26 400 507 9 725 24 560 675 PD = Person Days / PY = Person Years / FP = Function Points / LOC = (effective) Lines of Code Moving from a Plan Driven Culture to Agile Development 29 / 30

Thank you for your attention! Questions? Michael Hirsch Zühlke Engineering AG hm@zuehlke.com some things are perfect, " " " others need engineering. Moving from a Plan Driven Culture to Agile Development 30 / 30

Additional Material Moving from a Plan Driven Culture to Agile Development 31 / 30

Typical Traditional Change Request Process Change Request Board Customer Development- Organization 1 Change Request Offer 2 5 4 6 Order 3 Confirmation, Bill 7 8 Moving from a Plan Driven Culture to Agile Development 32 / 30

Lesson 5 - Good Estimation Matters Most organizations have a bad track record concerning estimation accuracy. The introduction of agile methods is a good opportunity to improve the estimation process, too. There is a systematic tendency to underestimate projects Underestimation (and overestimation) are not free Bad estimation practices are encouraged by typical company specific plan driven development processes The agile community has a more realistic view on the limits of estimation accuracy Moving from a Plan Driven Culture to Agile Development 33 / 30 Source: Construx

Consequences of Estimation Errors Non-linear impact due to planning errors, upstream defects, highrisk practices Cost Effort Schedule Linear impact due to Parkinson s Law Underestimation Overestimation < 100% 100% >100% Target as a Percentage of Nominal Estimate Source: Construx Moving from a Plan Driven Culture to Agile Development 34 / 30

The Illusion of Predictability Requirements for accuracy of estimates in typical company specific plan driven process models: Requirements Architecture & Design Implementation Integration Test Requirements Specs done Design done Coding done +/- 20% +/- 5% System integrated System complete Moving from a Plan Driven Culture to Agile Development 35 / 30

Limits of Estimation Accuracy Project cost (effort and size) Project schedule 4x 1.6x 2x 1.25x 1.5x 1.15x 1.25x 1.0x 0.8x 1.1x 1.0x 0.9x 0.67x 0.85x 0.5x 0.8x 0.25x 0.6x Initial product definition Approved product definition Requirements specification Product design specification Detailed design specification Product complete Source: (Boehm 1995) Moving from a Plan Driven Culture to Agile Development 36 / 30

Estimation Process for Agile Projects Create estimates with statistical methods (e.g. COCOMO) early in a project, with best case and worst case scenarios Bottom Up estimate for each iteration Inception Elaboration Construction Transition I1 I2 I3 I4 I5 I6 I7 I8 I9 Phases Iterations Iteration Estimate (bottom up) Typical duration of software supplier involvement Statistical Estimate (top down) Life cycle model: Rational Unified Process (RUP) Moving from a Plan Driven Culture to Agile Development 37 / 30

Is Agile Development Here to Stay? Energy Balance of a typical car engine Of 100% of the energy in the fuel, only 19% is available at the wheels, the rest is wasted Moving from a Plan Driven Culture to Agile Development 38 / 30

The Energy Balance of Agile Development Time and money invested into project Negotiating contracts Fighting over change requests Too much documentation Overspecifying requirements Time left for building software Moving from a Plan Driven Culture to Agile Development 39 / 30

The Energy Balance of Agile Development Time and money invested into project My take at agile methods: Negotiating contracts Agile methods are here Fighting to stay, over change because requests they are simply the most efficient (and cheapest) way to build innovative software systems Too much documentation Overspecifying requirements Time left for building software Moving from a Plan Driven Culture to Agile Development 39 / 30