What is the best way to develop systems? Continuing the conversation about agile and plan-driven methods

Similar documents
What is the best way to develop software? Continuing the conversation about agility and plan-driven methods

A Risk-Driven Decision Table for Software Process Selection

Outline. Agile Methods. Converse of Conway s Law. The Silver Bullet Fantasy (Brooks, 1986)

Introduction to Agile Software Development

Human-System Integration in the System Development Process: A New Look. Frank E. Ritter with some slides from Barry Boehm 21 July 09

Balancing Plan-Driven and Agile Methods in Software Engineering Project Courses

COMP 354 Introduction to Software Engineering

How To Understand The Limitations Of An Agile Software Development

Introduction to Agile Software Development. EECS 690 Agile Software Development

Software Development with Agile Methods

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

Agile Development Overview

Software Processes. Agile Methods

Future Challenges for Software Data Collection and Analysis

Manifesto for Agile Software Development

Agile Overview. 30,000 perspective. Juha Salenius CSPO CSM PMI-ACP PMP SCGMIS Workshop January 23 rd, 2013

AGILE SOFTWARE DEVELOPMENT: INTRODUCTION, CURRENT STATUS & FUTURE Pekka Abrahamsson Jyväskylä

Ingegneria del Software Corso di Laurea in Informatica per il Management. Agile software development

Agile Projects 7. Agile Project Management 21

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

New Developments in an Agile World: Drafting Software Development Agreements. By: Paul H. Arne 1,2

Development. Lecture 3

Agile Project Management By Mark C. Layton

Agile Software Development in the Large

What does it mean to be Agile. Marek Majchrzak, Andrzej Bednarz Wrocław,

CS435: Introduction to Software Engineering! " Software Engineering: A Practitioner s Approach, 7/e " by Roger S. Pressman

UC Santa Barbara. CS189A - Capstone. Christopher Kruegel Department of Computer Science UC Santa Barbara

Agile Beyond The Team 1

Agile Software Development

Some Critical Success Factors for Industrial/Academic Collaboration in Empirical Software Engineering

Agile Fundamentals, ROI and Engineering Best Practices. Rich Mironov Principal, Mironov Consulting

Agile Project Management with Scrum

Agile QA s Revolutionary Impact on Project Management

CSE 435 Software Engineering. Sept 16, 2015

What Does Large Mean? Copyright 2003 by N. Josuttis and J. Eckstein 3. Why is Large an Issue?

Faced with the conflicting pressures of accelerated

Agile Development with C#

An Ideal Process Model for Agile Methods

Role of Agile Methodology in Software Development

Moonzoo Kim CS Division of EECS Dept. KAIST

Mitigating Risk with Agile Development. Rich Mironov CMO, Enthiosys

Software Development Process Selection Approaches

History of Agile Methods

Should NASA Embrace Agile Processes?

Agile Project Management: Adapting project behaviors to the software development environment

Agile Requirements Generation Model: A Soft-structured Approach to Agile Requirements Engineering. Shvetha Soundararajan

Agile and Secure: Can We Be Both?

CSSE 372 Software Project Management: Managing Agile Projects

Introduction to Agile and Scrum

SOFTWARE PROCESS MODELS

The Incremental Commitment Model Process Patterns for Rapid-Fielding Projects

werteorientierte Unternehmenskultur

Scaling Down Large Projects to Meet the Agile Sweet Spot

Software Development Process

CSSE 372 Software Project Management: More Agile Project Management

Creating a High Maturity Agile Implementation

Comparing Scrum And CMMI

How To Write A Thesis On How To Create And Maintain Documentation In An Agile Development Environment

Software Development Life Cycle (SDLC)

Life Cycle Models. V. Paúl Pauca. CSC Fall Department of Computer Science Wake Forest University. Object Oriented Software Engineering

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

CMMI - The AGILE Way By Hitesh Sanghavi

ITSM Agile Intro Feb 5, 2015

LEAN AGILE POCKET GUIDE

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

Agile Project Management

Agile-Waterfall Hybrid Jessica LaGoy, MS, PMP

PMBOK? You Can Have Both! June 10, Presented by:

Case Study on Critical Success Factors of Running Scrum *


Digital Transformation of the Enterprise for SMAC: Can Scrum help?

USCIS/SPAS: Product Backlog Items and User Stories 4/16/2015. Dr. Patrick McConnell

26 May 2010 CQAA Lunch & Learn Paul I. Pazderski (CSM/CSP, OD-CM, CSQA) spcinc13@yahoo.com Cell: AGILE THROUGH SCRUM

Neglecting Agile Principles and Practices: A Case Study

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

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

Software Development Methodologies

Agile software development and its' suitability to distributed project

Extreme Programming, an agile software development process

Bottlenecks in Agile Software Development Identified Using Theory of Constraints (TOC) Principles

How to manage agile development? Rose Pruyne Jack Reed

Comparative Study of Agile Methods and Their Comparison with Heavyweight Methods in Indian Organizations

A Capability Maturity Model (CMM)

A Review of Agile Software Development Methodologies

Agile Processes and Distributed Projects: Dream or Nightmare?

AGILE CMMI from SMEs perspective

Lifecycle Models: Waterfall / Spiral / EVO

Product Derivation Process and Agile Approaches: Exploring the Integration Potential

Quality Assurance Software Development Processes

Laboratório de Desenvolvimento de Software

Agile-Fall Process Flow Model A Right Candidate for Implementation in Software Development and Testing Processes for Software Organizations

Developing the Agile Mindset for Organiza7onal Agility. Shannon Ewan Managing

Changing Roles and Responsibilities from Traditional project management to Agile project management

Agile Extension to the BABOK Guide

Agile Software Development. Mohsen Afsharchi

Hamid Faridani March 2011

Success Factors of Agile Software Development

Scaling Scrum. Colin Bird & Rachel Davies Scrum Gathering London conchango

Agile Software Engineering Practice to Improve Project Success

Exception Handling. development.

Transcription:

1 What is the best way to develop systems? Continuing the conversation about agile and plan-driven methods Stan Rifkin* US Air Force Office of Scientific Research 875 North Randolph St., Arlington, Virginia 703 696 9586 stan.rifkin @ afosr.af.mil *The views presented are those of the author and do not necessarily represent the views of the US Department of Defense nor its Components. Version 0.6. Updated from a special presentation to the San Diego Software Process Improvement Network, June 2005

2 My biases Old school. Just plain old. Understand in a deep way the need to do better. Am a Certified Scrum Master. Seeing growth in BOTH long/big waterfall projects (Future Combat Systems) AND shorter, innovative ones (web systems). Worked/studied at the Software Engineering Institute, a bastion of tradition. But rebelled! Manager at heart. Empirical at heart. Though appreciate a good theory!

3 If you can t stay Maybe this should be called high ritual vs. low ritual. None of the practices are new, so it s the synergism, connections, observations that are new. Also new (well, tangible): the polemic between process & people. The emphasis on risk is new, so is valuedriving the selection of methods. One size does not fit all: there are projects that are better suited towards the agile end and others better suited towards the plandriven side. There are many kinds of projects where we do not know the best (combination of) methods.

4 Main point: The most powerful explanations cover BOTH success AND failure. One powerful framework is contingency: OK, one size does not cover all. So, how many sizes are there? Or, What is the best way to develop systems? Well, that depends. Really? Depends upon what?

5 Acknowledgements Barry Boehm, Center for Systems & Software Engineering, University of Southern California. Rich Turner, Stevens Institute & consultant to Office of the Secretary of Defense. Laurie Williams, North Carolina State University, researcher, particularly on pair programming. Ken Schwaber, co-creator of Scrum. XPSD San Diego group actively interested in agile methods. Mary Shaw, Carnegie Mellon, for the use of ritual to characterize methods. Also, incantation!

6 Agile and Plan-Driven Home Grounds Agile Home Ground Plan-Driven Home Ground Agile, knowledgeable, collocated, collaborative developers Above plus representative, empowered customers Reliance on tacit interpersonal knowledge Largely emergent requirements, rapid change Architected for current requirements Refactoring inexpensive Smaller teams, products Premium on rapid value Plan-oriented developers; mix of skills Mix of customer capability levels Reliance on explicit documented knowledge Requirements knowable early; largely stable Architected for current and foreseeable requirements Refactoring expensive Larger teams, products Premium on high-assurance CSE USC

7 The Planning Spectrum Hackers XP Milestone Adaptive Risk- Driven SW Devel. Models Milestone Plan-Driven Models Inch- Pebble Ironbound Contract Agile Methods Software CMM CMMI CSE USC

8

9 Review CSE USC

10 Example RE Profile: Planning Detail - Loss due to inadequate plans high P(L): inadequate plans high S(L): major problems (oversights, delays, rework) Risk Exposure = P(L) * S(L) low P(L): thorough plans low S(L): minor problems Time and Effort Invested in plans CSE USC

11 Example RE Profile: Planning Detail - Loss due to inadequate plans - Loss due to market share erosion RE = P(L) * S(L) high P(L): inadequate plans high S(L): major problems (oversights, delays, rework)) low P(L): few plan delays low S(L): early value capture high P(L): plan breakage, delay high S(L): value capture delays low P(L): thorough plans low S(L): minor problems Time and Effort Invested in Plans CSE USC

12 Example RE Profile: Time to Ship - Sum of Risk Exposures high P(L): inadequate plans high S(L): major problems (oversights, delays, rework) Sweet Spot high P(L): plan breakage, delay high S(L): value capture delays low P(L): few plan delays low S(L): early value capture low P(L): thorough plans low S(L): minor problems Time and Effort Invested in Plans CSE USC

13 Comparative RE Profile: Plan-Driven Home Ground Higher S(L): large system rework Plan-Driven Mainstream Sweet Spot Sweet Spot Time and Effort Invested in Plans CSE USC

14 Comparative RE Profile: Agile Home Ground Mainstream Sweet Spot Agile Sweet Spot Lower S(L): easy rework Time and Effort Invested in Plans CSE USC

15 What s best way to select methods (redux)? Source: MBASE Guidelines. CSE USC

16 Major points Success in selecting the methods depends upon careful characterization of the risks, and therefore Success is entirely dependent on selecting projects and methods that fit. Clearly, one size does not fit all.

17 What is agile? Manifesto for Agile Software Development We are uncovering better ways of developing software by doing it and helping others do it. Through this work we have come to value: Individuals and interactions over processes and tools. Working software over comprehensive documentation. Customer collaboration over contract negotiation. Responding to change over following a plan. That is, while there is value in the items on the right, we value the items on the left more. Source: http://www.agilemanifesto.org/

18 Agile principles 1-6 1. Our highest priority is to satisfy the customer through early and continuous delivery of valuable software. 2. Welcome changing requirements, even late in development. Agile processes harness change for the customer's competitive advantage. 3. Deliver working software frequently, from a couple of weeks to a couple of months, with a preference to the shorter timescale. 4. Business people and developers must work together daily throughout the project. 5. Build projects around motivated individuals. Give them the environment and support they need, and trust them to get the job done. 6. The most efficient and effective method of conveying information to and within a development team is faceto-face conversation.

19 Agile principles 7-12 7. Working software is the primary measure of progress. 8. Agile processes promote sustainable development. The sponsors, developers, and users should be able to maintain a constant pace indefinitely. 9. Continuous attention to technical excellence and good design enhances agility. 10. Simplicity--the art of maximizing the amount of work not done--is essential. 11. The best architectures, requirements, and designs emerge from selforganizing teams. 12. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. Source: http://www.agilemanifesto.org/

20 4 values (actually XP) Simplicity Communication Feedback Courage

21 Source: Case Study Retrospective: Kent Beck's XP Versions 1 and 2, by Laurie Williams, presented at the USC CSE Annual Research Review, March 14, 2005.

22 Scrum Advanced Development Methods

23 What s different about Scrum Potentially implementable or shippable without any significant additional work (friendly first use) No project managers: the team is self-directing. Chickens and pigs. Only pigs can commit. Does not perform traditional project management. No history to speak of. Uses a do a little, then adjust method. Can implement one project at a time. These days its advocates say it s a method by which an organization is transformed.

24 Agile methods Programming paradigms extreme programming Feature driven development Crystal DSDM Project management paradigms Scrum The programming methods are independent of the project management methods => plug and play.

25 Some concerns about agile Remember, it s not a specific method; there are many methods to choose among. The list of concerns ebbs & flows with experience and competing ideas.

26 What about hybrids? One finds them in practice. What about Rational Unified Process & Team Software Process? What makes XP, Scrum, and others work? Easily implemented because of bite-size pieces. Takes good practices and (appropriately) exaggerates them. Answers the call of frustrated developers and their clients. Something new.

27 OODA (context-adaptive) loop Observe objectives, constraints, alternatives; usage, competition, technology, marketplace Act on plans, specifications; keep development stabilized; prepare for next cycle Orient with respect to stakeholders priorities, feasibility, risks; perform business case/mission analysis; create prototypes, models, simulations Decide on next-cycle capabilities, architecture upgrades, plans; stabilize specifications, COTS upgrades; document development, integration, V&V risks; reassess feasibility (go/no go) CSE USC

28 A decision flow for constructing a hybrid Step 1. Risk Analysis Rate the project s environmental, agilityoriented and plan-driven risks. Step 2. Risk Comparison Compare the agile and Plandriven risks Plan-driven risks dominate Agility risks dominate Go Risk-based Agile Go Risk-based Plan-driven Neither dominate Uncertain about ratings? Yes Buy information via prototyping, data collection and analysis No Step 3. Architecture Analysis Architect application to encapsulate agile parts Go Risk-based Agile in agile parts; Go Riskbased Plandriven elsewhere Step 5. Execute and Monitor Note: Feedback loops present, but omitted for simplicity Deliver incremental capabilities according to strategy Monitor progress and risks/opportunities, readjust balance and process as appropriate Tailor life cycle process around risk patterns and anchor point commitment milestones Step 4. Tailor Life Cycle CSE USC

29 How Much Architecting is Enough? Large projects need more Percent of Time Added to Overall Schedule 100 90 80 70 60 50 40 30 20 10 0 10000 KSLOC 100 KSLOC 10 KSLOC Sweet Spot 0 10 20 30 40 50 60 Percent of Time Added for Architecture and Risk Resolution Percent of Project Schedule Devoted to Initial Architecture and Risk Resolution Added Schedule Devoted to Rework (COCOMO II RESL factor) Total % Added Schedule Sweet Spot Drivers: Rapid Change: leftward High Assurance: rightward CSSE USC

30 Concerns about plan-driven Strict (e.g., legalistic) adherence to a model. Project management self-fulfilling prophesies. Corporate and government acquisition styles. Ill-suited to poorly-specified/-understood and/or changing requirements. Source: Context-adaptive agility: Managing complexity and uncertainty. Todd Little. IEEE Software, 22(3), 28-35 (2005).

31 Better (best?) life cycle: Incremental commitment model CSSE USC

32 Different risk patterns require different life cycle steps CSSE USC

33 Common Risk-Driven Special Cases of the Incremental Commitment Model Special Case Example Size, Complexity Change Rate % /Month Criticality NDI Support Org, Personnel Capability Key Stage I Activities : Incremental Definition Key Stage II Activities: Incremental Development, Operations Time per Build; per Increment 1. Use NDI Small Accounting Complete Acquire NDI Use NDI 2. Agile E-services Low 1 30 Low-Med Good; in place Agile-ready Med-high Skip Valuation, Architecting phases Scrum plus agile methods of choice <= 1 day; 2-6 weeks 3. Scrum of Scrums Business data processing Med 1 10 Med-High Good; most in place Agile-ready Med-high Combine Valuation, Architecting phases. Complete NDI preparation Architecture-based Scrum of Scrums 2-4 weeks; 2-6 months 4. SW embedded HW component Multisensor control device Low 0.3 1 Med-Very High Good; In place Experienced; med-high Concurrent HW/SW engineering. CDR-level ICM DCR IOC Development, LRIP, FRP. Concurrent Version N+1 engineering SW: 1-5 days; Market-driven 5. Indivisible IOC Complete vehicle platform Med High 0.3 1 High-Very High Some in place Experienced; med-high Determine minimum-ioc likely, conservative cost. Add deferrable SW features as risk reserve Drop deferrable features to meet conservative cost. Strong award fee for features not dropped SW: 2-6 weeks; Platform: 6-18 months 6. NDI- Intensive Supply Chain Management Med High 0.3 3 Med- Very High NDI-driven architecture NDI-experienced; Med-high Thorough NDI-suite life cycle costbenefit analysis, selection, concurrent requirements/ architecture definition Pro-active NDI evolution influencing, NDI upgrade synchronization SW: 1-4 weeks; System: 6-18 months 7. Hybrid agile / plan-driven system C4ISR Med Very High Mixed parts: 1 10 Mixed parts; Med- Very High Mixed parts Mixed parts Full ICM; encapsulated agile in high change, low-medium criticality parts (Often HMI, external interfaces) Full ICM,three-team incremental development, concurrent V&V, nextincrement rebaselining 1-2 months; 9-18 months 8. Multi-owner system of systems Net-centric military operations Very High Mixed parts: 1 10 Very High Many NDIs; some in place Related experience, medhigh Full ICM; extensive multi-owner team building, negotiation Full ICM; large ongoing system/software engineering effort 2-4 months; 18-24 months 9. Family of systems Medical Device Product Line Med Very High 1 3 Med Very High Some in place Related experience, med high Full ICM; Full stakeholder participation in product line scoping. Strong business case Full ICM. Extra resources for first system, version control, multistakeholder support 1-2 months; 9-18 months C4ISR: Command, Control, Computing, Communications, Intelligence, Surveillance, Reconnaissance. CDR: Critical Design Review. DCR: Development Commitment Review. FRP: Full-Rate Production. HMI: Human-Machine Interface. HW: Hard ware. IOC: Initial Operational Capability. LRIP: Low-Rate Initial Production. NDI: Non-Development Item. SW: Software CSSE USC

34 What is the best way to develop systems? It depends!

35 More slides

36 Watts Humphrey on XP & TSP Advantages 1. Emphasis on customer involvement: A major help to projects where it can be applied. 2. Emphasis on teamwork and communication: As with the TSP, this is very important in improving the performance of just about every software team. 3. Programmer estimates before committing to a schedule: This helps to establish rational plans and schedules and to get the programmers personally committed to their schedules-a major advantage of XP and TSP. 4. Emphasis on responsibility for quality: Unless programmers strive to produce quality products, they probably won't. 5. Continuous measurement: Since software development is a people-intensive process, the principal measures concern people. It is therefore important to involve the programmers in measuring their own work. 6. Incremental development: Consistent with most modern development methods. 7. Simple design: Though obvious, worth stressing at every opportunity. 8. Frequent redesign, or refactoring: A good idea but could be troublesome with any but the smallest projects. 9. Having engineers manage functional content: Should help control function creep. 10. Frequent, extensive testing: Cannot be overemphasized. 11. Continuous reviews: A very important practice that can greatly improve any programming team's performance (few programmers do reviews at all, let alone continuous reviews). Source: http://www.computer.org/software/dynabook/humphreycom.htm

37 Humphrey on XP & TSP (cont.) Disadvantages 1. Code-centered rather than design-centered development: Although the lack of XP design practices might not be serious for small programs, it can be disastrous when programs are larger than a few thousand lines of code or when the work involves more than a few people. 2. Lack of design documentation: Limits XP to small programs and makes it difficult to take advantage of reuse opportunities. 3. Producing readable code (XP's way to document a design) has been a largely unmet objective for the last 40-plus years. Furthermore, using source code to document large systems is impractical because the listings often contain thousands of pages. 4. Lack of a structured review process: When engineers review their programs on the screen, they find about 10-25% of the defects. Even with pair programming, unstructured online reviews would still yield only 20-40%. With PSP's and TSP's structured review process, most engineers achieve personal review yields of 60-80%, resulting in high-quality programs and sharply reducing test time. 5. Quality through testing: A development process that relies heavily on testing is unlikely to produce quality products. The lack of an orderly design process and the use of unstructured reviews mean that extensive and time-consuming testing would still be needed, at least for any but the smallest programs. 6. Lack of a quality plan: We have found with the TSP that quality planning helps properly trained teams produce high-quality products, and it reduces test time by as much as 90%. XP does not explicitly plan, measure, or manage program quality. 7. Data gathering and use: We have found with the TSP that, unless the data are precisely defined, consistently gathered, and regularly checked, they will not be accurate or useful. The XP method provides essentially no data-gathering guidance. 8. Limited to a narrow segment of software work: Since many projects start as small efforts and then grow far beyond their original scope, XP's applicability to small teams and only certain kinds of management and customer environments could be a serious problem. 9. Methods are only briefly described: While some programmers are willing to work out process details for themselves, most engineers will not. Thus, when engineering methods are only generally described, practitioners will usually adopt the parts they like and ignore the rest. Kent Beck notes that, when the XP method fails in practice, this is usually the cause. 10. Obtaining management support: The biggest single problem in introducing any new software method is obtaining management support. The XP calls for a family of new management methods but does not provide the management training and guidance needed for these methods to be accepted and effectively practiced. 11. Lack of transition support: Transitioning any new process or method into general use is a large and challenging task. Successful transition of any technology requires considerable resources, a long-term support program, and a measurement and analysis effort to gather and report results. I am not aware of such support for the XP.