Should NASA Embrace Agile Processes?



Similar documents
Manifesto for Agile Software Development

Introduction to Agile Software Development. EECS 690 Agile Software Development

Software Processes. Agile Methods

Agile Projects 7. Agile Project Management 21

Introduction to Agile Software Development

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

Agile Development Overview

Agile Development with C#

Development. Lecture 3

Agile Project Management By Mark C. Layton

CSE 435 Software Engineering. Sept 16, 2015

Agile Project Management with Scrum

Agile QA s Revolutionary Impact on Project Management

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ä

How To Understand The Limitations Of An Agile Software Development

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

Agile Software Development. Mohsen Afsharchi

Agile Beyond The Team 1

Software Development with Agile Methods

Role of Agile Methodology in Software Development

Creating a High Maturity Agile Implementation

Agile Software Development

History of Agile Methods

COMP 354 Introduction to Software Engineering

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

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

Extreme Programming, an agile software development process

Agile and PRINCE2 And how they integrate. enterprise.bcs.org

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

This handbook is meant to be a quick-starter guide to Agile Project Management. It is meant for the following people:

Extreme Programming, an agile software development process

werteorientierte Unternehmenskultur

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

Mitigating Risk with Agile Development. Rich Mironov CMO, Enthiosys

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

Agile Software Development in the Large

Agile Project Management Jim Highsmith. Chapter 1. The Agile Revolution

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

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

Topics covered. Agile methods Plan-driven and agile development Extreme programming Agile project management Scaling agile methods

Agile-Waterfall Hybrid Jessica LaGoy, MS, PMP

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

Improving Software Productivity with Agile Methodologies

Agile processes. Extreme Programming, an agile software development process

AGILE vs. WATERFALL METHODOLOGIES

Software Quality and Agile Methods

Continuous Integration: Improving Software Quality and Reducing Risk. Preetam Palwe Aftek Limited

Agile project management: A magic bullet?

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


Adopting Agile Project Management - Corporate Culture Must Match (Apr 15)

Rapid software development. Ian Sommerville 2004 Software Engineering, 7th edition. Chapter 17 Slide 1

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

LEAN AGILE POCKET GUIDE

ITSM Agile Intro Feb 5, 2015

An Ideal Process Model for Agile Methods

Governments information technology

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

Don t forget the testers

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

Information Management for National Guard Agribusiness Development Teams: An Agile Development Case Study

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

Agile processes. Extreme Programming, an agile software development process. Extreme Programming. Risk: The Basic Problem

Introduction to Software Project Management. CITS3220 Software Requirements & Project Management

Introduction to Software Engineering: Overview and Methodologies

XP and TDD. Extreme Programming and Test Driven Development. Bertrand Meyer, Manuel Oriol Andreas Leitner. Chair of Software Engineering ETH Zurich

AGILE BUSINESS INTELLIGENCE

Planned Methodologies vs. Agile Methodologies under the Pressure of Dynamic Market

Extreme Programming - A Model For Agile Software Development

Rapid Software Development

Incorporating Agile Methods into the Development of Large-Scale Systems

PROCESS OF MOVING FROM WATERFALL TO AGILE PROJECT MANAGEMENT MODEL

CSSE 372 Software Project Management: Managing Agile Projects

A Capability Maturity Model (CMM)

Agile and ITIL And how they integrate. enterprise.bcs.org

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

The Role of Agile Methodology in Project Management

Neglecting Agile Principles and Practices: A Case Study

Aristotle in an Agile World. By Ben Allen

Human Aspects of Software Engineering: The Case of Extreme Programming

Strategic View on Various Sub-paradigms of Agile Methodology and Sig Sigma Approach

Agile Project Management

Software Engineering

Agile and lean methods for managing application development process

Testing in Agile methodologies easier or more difficult?

Jukka Mannila KEY PERFORFORMANCE INDICATORS IN AGILE SOFTWARE DEVELOPMENT

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

Introduction. Motivational Principles. An Introduction to extreme Programming. Jonathan I. Maletic, Ph.D.

Agile Software Development

Agile & the Declaration of Interdependence: A new approach to Process Improvement

Incorporating Agile Methods in Large-Scale Systems

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

Lean vs. Agile similarities and differences Created by Stephen Barkar -

Agile on huge banking mainframe legacy systems. Is it possible?

Agile development of safety-critical software while meetings standards' requirements

Risikominimering I IKT-prosjekter - experiences from the Danish Government

A Comparison between Five Models of Software Engineering

Software Development Life Cycle (SDLC)

Software Requirements and Specification

Transcription:

Should NASA Embrace Agile Processes? Jefferey Smith, Tim Menzies Lane Department of Computer Science West Virginia University PO Box 69, Morgantown WV, 656-69, USA; jefferey@jeffereysmith.com,tim@menzies.com Abstract As a growing number of NASA software projects tend to stray from the conventional waterfall method of software development, alternate development paradigms need to be explored and assessed. This paper examines one such paradigm, Agile Processes; and more specifically, the economics of one its key practices, pair programming. It will be shown that this core practice is only demonstrably useful in a very small number of cases. Introduction A growing trend among NASA software projects is the tendency for software development to move away from the traditional software development paradigms. Previously, NASA software has been developed by large software contractor organizations with mature and traditional process models. While this continues to be NASA s main mode of software development, there are an increasing number of cases where an alternative approach is taken. For example, the telescope controller for a current near-earth satellite mission was developed by a university-based consortium that used numerous heritage products and a loose consortium of sub-contractors. This team produced useful code, but not a fully developed traditional requirements document. The economic motivation for such non-traditional development is clear: more science can be conducted for less dollars. However, the safety implications such as the potential for loss-of-mission is unclear. In situations such as these, portions of code are being developed before the requirements are written. This then leads to requirements being written based upon the code; instead of the other way Submitted to the 7th Annual IEEE/NASA Software Engineering Workshop, Greenbelt, MD, USA, December 5-6,, Greenbelt Marriott. http://sel.gsfc.nasa.gov/website/7ieee.htm. around. These projects are clearly no longer following the traditional waterfall model of software development: Requirements -> Design -> Coding -> Testing -> Maintenance In this light, alternate software development paradigms should be explored as possible replacements for the waterfall method. One such alternate paradigm is Agile Process (AP) development. AP is iterative, incremental, self-organizing, and emergence [5]. According to the Agile Manifesto, AP is based on the idea of uncovering better ways of developing software by doing it and helping others do it [3]. In his article, Get Ready for Agile Methods, With Care, Barry Boehm states that the primary difference between AP and conventional methods is that [AP] methods derive much of their agility by relying on the tacit knowledge embodied in the team, rather than writing the knowledge down in plans []. He goes on to discuss that while AP methods risk making mistakes that could have been found by planning practices used by conventional methods, conventional methods risk that rapid change will make the plans obsolete or very expensive to keep up to date []. While AP may not be appropriate in every situation, there appears to exist cases in which AP may be advantageous to conventional Before beginning, it is important to stress the limits of our study. This work will comment specifically on an agile process practice called pair programming. We will study pair programming because it is a core part of an agile process called extreme programming, which is the most widely cited agile process in the literature. It will be shown that this core practice is only demonstrably useful in a very small number of cases. However, if another agile process

did not use pair programming, then the negative conclusions of this paper would not apply to that agile process. Agile Processes / Extreme Programming AP is an approach that has gained popularity in recent times. AP is a collection of software design practices and techniques that diverge from the heavily structured methodologies in favor of a less structured, more adaptive approach. According to its manifesto [3], AP values... Individuals and interactions over processes and tools; Working software over comprehensive documentation; Customer collaboration over contract negotiation; Responding to change over following a plan. In addition to these values, AP is based upon a set of twelve principals:. The highest priority is to satisfy the customer through early and continuous delivery of valuable software;. 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; 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;. Simplicity the art of maximizing the amount of work not done is essential;. The best architectures, requirements, and designs emerge from self-organizing teams;. At regular intervals, the team reflects on how to become more effective, then tunes and adjusts its behavior accordingly. percent of projects 4 35 3 5 5 5 insig marginal significant grave Figure. Ratio of different project error severities seen in 9 NASA IV&V projects 996-. There are many positive aspects of AP which might be attractive to the NASA organization: Continual interaction with the customer helps the project to become more tailored to the customer s needs Frequent releases allow the customer to see progress and working code more often Pair programming and continual testing leads to fewer errors Despite these benefits, however, there are some aspects of AP that render it inappropriate for certain types of projects. The best example of this is its approach towards documentation. While some documentation is produced, AP does not include the full documentation provided by other This is perfectly acceptable in many cases, but in the case of safety critical systems, this full documentation, like that which is produced as part of the waterfall method, is required. This doesn t meant that AP should be abandoned. It simply means that AP is not an acceptable choice in certain situations. Figure shows that out of 9 NASA IV&V projects, more than one third of these projects were not of high criticality (grave or significant). For projects such as these, AP should still be explored for possible use. A critique of AP is complicated by the broad and diverse nature of the AP movement. However, one of the most popular AP approaches, Kent Beck s extreme programming, has been thoroughly specified; and therefore, it is easier to study []. According to Beck, extreme programming has the twelve key practices shown in Figure. The precise definition of all these practices are beyond scope of this paper. However, note the key role of one of the practices: pair programming (PP). PP is the concept of two developers working together at a single machine, designing and writing code cooperatively. Figure shows the connection between XP

pair programming 4 hour week metaphor refractoring simple design coding standards testing collective ownership short release continuous nintergration on-site customer planning game Figure. The connection between extreme programming practices. From []. Practices directly effected by PP are shaded. programming practices; the shaded practices have a direct connection to PP. The centrality of PP to XP is evident from this diagram. If PP is removed, it would directly affect all of the shaded practices. AP proponents claim that by working in pairs, developers produce code at a faster rate, and with fewer errors. But the idea of developer pairs leads to two scenarios, each with their own issues: Pool: If additional developers are added to a project from a pool of developers to create the developer pairs, then does the time/error advantage outweigh the additional developer costs? NoPool: If additional developers are not added, and instead, the current developers are divided into groups of two, then does the time/error advantage outweigh the additional time needed to write code that results from the fewer number of tasks that can be worked on at one time? To answer these questions, the economic effects of PP on a software project need to be examined, and compared to the outcome of conventional 3. Equations In their paper, Müller and Padberg present an economic model of software projects for both PP and conventional Their model is based on the Net Present Value (NP V ) of the software project, which is calculated and compared for both programming The NP V of the projects is found using Equation. NP V = AssetV alue DevT ime ( + DiscountRate) The AssetV alue and DiscountRate are the same for both projects. The DiscountRate is used to simulate time to market: a lower discount rate represents a longer time to market, and a higher discount rate represents a faster time to market. In NASA s case, a fast time to market might be the equivalent to a rapidly approaching launch date. The equation for the development time, DevT ime, differs for the two development Since the PP method results in fewer errors, an allowance must be made in the development time for the conventional method to allow for the elimination of an equivalent number of errors. This additional time for quality assurance is the QAT ime. The DevT ime equation for the conventional method is: () 3 Müller/Padberg Study DevT ime = QAT ime + () P roductsize DeveloperP roductivity NumberOfDevelopers A study of this nature has been conducted previously. In their paper, Extreme Programming from an Engineering Economics Viewpoint, Müller and Padberg compare the economics of PP with those of conventional methods [4]. This section examines their work. The next section discusses our concerns with their methods, and the procedure we followed as a result. And the DevT ime equation for the PP method is: DevT ime = where DeveloperP roductivity NumberOfP airs P roductsize % + P airspeedadvantage (3) 3

Parameter Developer Productivity 35 LOC/month Developer Monthly Hours 35 hours/month Defects per KLOC Defects Eliminated by Conventional Processes 7% Product Size 6,8 LOC Developer Salary $5, Project Lead Salary $6, Asset Value $,, Parameter PairSpeedAdvantage % % 3% 4% 5% PairDefectAdvantage 5% % 5% % 5% 3% DefectRemovalTime 5h h 5h DiscountRate % 5% 5% 75% % Table. Parameters systematically varied by Müller and Padberg Table. Fixed parameters used by Müller and Padberg NumberOfP airs = NumberOfDevelopers The QAT ime require three calculations. First, the number of defects left in a typical project must be calculated using Equation 5. DP KLOC DefectsLeft = P roductsize ( DNE) (5) DP KLOC is the number of defects per thousand lines of code, and DNE is the percent of defects not eliminated by conventional techniques ( - Defects Eliminated by Conventional Processes). Once Def ectslef t has been calculated, the next step is to find the DefectDifference. This is simply the Def ectslef t multiplied by the P airdef ectadvantage, which is the percent of defects PP eliminates that conventional programming does not. DefectDifference = DefectsLeft P airdefectadvantage (6) The final step is to calculate the time required for conventional developers to remove these extra defects. This is known as the QAT ime, and is found using Equation 7. DefectRemovalT ime QAT ime = DefectDifference DeveloperMonthlyHours NumberOfDevelopers The final calculation that is required for the project model, which is the same for both the conventional and the PP method, is the development cost, DevCost. DevCost is found using Equation 8. DevCost = DevT ime (NumberOfDevelopers DeveloperSalary +P rojectleadsalary) (8) (4) (7) 3. Method (Müller/Padberg) For their study, Müller and Padberg used a set of fixed parameters, see Table, and four parameters, that they considered to be key features, for which they systematically varied their values (Table ). They used these values to calculate the NP V for the conventional method and the PP method, and they did so for both in two situations: NoPool: The number of developers was fixed. In this situation, when the conventional method is using n developers, the PP method is using n pairs. Pool: The number of developers is not fixed, as if there existed pool of developers to create pairs with. In this situation, when the conventional method is using n developers, the PP method is using n pairs, or n developers. 3.3 Results (Müller/Padberg) First, Müller and Padberg found that PP is advantageous when the number of pairs is equivalent to the number of developers, as described in situation above. In other words, n developers are more efficient than n/ pairs. Therefore, as long as there exists additional tasks that can be assigned to individual developers, PP is not the best solution. However, if the project cannot be subdivided beyond n tasks, and you have access to n developers, then PP has the potential to be beneficial in certain cases. Müller and Padberg found that PP is advantageous in this situation if three criteria are met:. the project is of small to medium size (P roductsize is not large). the project is of high quality (AssetV alue is high) 3. the need for a rapid time to market is present (DiscountRate is high) 4

a) b) c) (Pair/conventional) cost (Pair/conventional) cost (Pair/conventional) cost.5.5 79 baseline simulation 5.5.5 y values, sorted With max. developer productivity 986 5.5.5 y values, sorted With max. pair speed & defect advantage 368 5 y values, sorted Figure 3. Raw data plots of a) completely random cases, b) cases with DeveloperP roductivity set to maximum (T), and c) cases with P airspeedadvantage and P airdefectadvantage set to maximum (T). The vertical line indicates the point where PP is no longer advantageous 4 Smith/Menzies Study After examining the work done by Müller and Padberg, we felt that a wider range of attributes could be explored. By only varying four parameters, a large number of the model s attributes were not being examined as possible factors in determining the advantages of PP. 4. Method (Smith/Menzies) To correct this, the Müller and Padberg model was reimplemented, and random values within appropriate ranges (see Table 3) were generated for a larger set of attributes. Parameter Min Max PairSpeedAdvantage % 5% PairDefectAdvantage 5% 3% DefectRemovalTime (hours) 5 5 DiscountRate % % ProductSize (LOC) 5 DeveloperSalary ($) 45 65 ProjectLeaderSalary ($) 6 9 AssetValue ($) DeveloperProductivity (LOC/month) 5 NumberofDevelopers 4 DefectsPerKLOC 4 DefectsNotEliminated % 8% Table 3. Parameters and ranges used by Smith and Menzies These attributes were then input into the model and, using Equation 9, the total cost was found for both AP and conventional development T otalcost = [( DevT ime ( + DiscountRate) ) AssetV alue] (9) + DevCost Equation 9 is a modified version of Equation. This modified equation was used so that the resulting values would always be positive. This then allowed us to use the following ratio without worrying about the effects of negative numbers: T otalcostofp P T otalcostofconventional This ratio was our means of comparison between the two The random generation and calculations were repeated for, cases, the results of each being recorded. These, cases were then used with a treatment learner to find the attributes that led to an advantage for PP. Note that this approach generates very large data files. The TAR treatment learner is a tool for performing automatic sensitivity analysis of large logs looking for constraints to parameter ranges that can most improve or degrade the performance of a system [6]. TAR performs an exhaustive search over the data, and is capable of discovering treatments not easily found by hand. In this study, improve or degrade was measured according to Equation ; i.e. the impact on the ratio of PP s cost to the cost of conventional The treatment learner was applied to the test cases in two separate studies: () S: no possible treatments were ignored. That is, no attributes were ignored as possible factors that could be changed to influence the performance of PP. 5

S: select attributes that the authors considered to be unchangeable were ignored as possible treatments. These attributes were P airspeedadvantage, P airdef ectadvantage, and Def ectremovalt ime. Also, each of these studies were examined in the two situations, NoPool and Pool, described in section 3., for a total set of four studies: S/Pool, S/NoPool, S/Pool, and S/NoPool In addition to these completely random tests, two additional tests were conducted with specific values set for various attributes. These were done to examine the effects of specific attributes about which the authors wanted to know more. These tests were as follows: T: DeveloperP roductivity was set to the maximum value, 5 LOC/month, to see the distribution when developers are being the most productive. T: P airspeedadvantage and P airdef ectadvantage were set to their maximum values, 5% and 3% respectively, to see the distribution when pairs are operating at their greatest rate of advantage over individuals. 4. Results (Smith/Menzies) 4.. Summary (T and T) A summary of our results is shown in Figure 3. In those plots, pair programming is at an advantage over conventional approaches when P P Conventional >. Plot a in Figure 3 shows the output of our model from, runs across the distributions shown in Table 3. Note that in only 8% of the runs is there an advantage to PP. Plot b in Figure 3 shows the output from T. When DeveloperP roductivity was set to the maximum value, PP was advantageous in approximately % of the cases. Plot c in Figure 3 shows the output from T. From this plot it can be seen that even when the two attributes that have the most effect on the advantage of PP over conventional methods are at their highest values, still only about 37% of the cases resulted in an advantage for PP. This is the greatest advantage we found, even after using TAR to exhaustively search all the attribute ranges. 4.. Details In both S/Pool and S/NoPool it was found that increasing P airspeedadvantage and P airdef ectadvantage was the way to most improve PP s advantage over conventional This is not surprising since P airspeedadvantage and P airdef ectadvantage represent advantages that PP has over conventional Another attribute property that showed some influence in increasing the advantage of PP in S/NoPool was a high Def ectremovalt ime. This too makes sense because conventional methods are prone to more defects, and therefore, a high Def ectremovalt ime would result in conventional developers working significantly more than developer pairs. Considering that it may not be possible to simply change P airspeedadvantage, P airdef ectadvantage, and Def ectremovalt ime as needed, studies S/Pool and S/NoPool ignored these attributes as possible treatments, and looked for additional features that could lead to an advantage for PP. In S/Pool it was found that there were three things things that significantly contributed to an advantage of PP over conventional methods:. A high DiscountRate ( >.4). A small P roductsize (, to 6, LOC) 3. A high AssetV alue ( $.6M to $.M) These are the same three factors that were found by Müller and Padberg when a pool of developers was present. In S/NoPool, no significant treatments were found. Therefore, when a pool of developers is not present, or when additional tasks are present as described by Müller and Padberg in section 3.3, PP does not have an advantage over conventional 5 Conclusions We offer two conclusions. Software development approaches such as AP/XP that do not precisely pre-specify the requirements are not indicated for NASA projects with significant or grave risks. Based on the IV&V experience 996- (Figure ), this excludes around 64% of NASA software projects from using AP/XP. For the remaining projects, our model has only endorsed AP/XP over conventional approaches in a relatively small and specialized set of cases; i.e. when: the project is relatively small an abundance of developers exists a rapid development time is needed This is not to say that NASA should avoid AP/XP. However, this study concludes that a convincing case for AP/XP cannot be based on the factors modelled in this paper; i.e. increased productivity of pairs over conventional approaches productivity vs. cost lower error rates 6

Proponents of AP/XP must therefore base their case on other factors not modelled in this paper, such as (e.g.) increased performance in rapid changing environments, or decreased cost due to conventional requirements reworking to accommodate changes. Finally, it is important to reiterate the limitations of our study. We focus primarily on the AP practice of pair programming. If an AP method does not include pair programming as part of its process, then the negative results of our study are not applicable. Acknowledgements This research was conducted at West Virginia University under NASA contract NCC-979. The work was sponsored by the NASA Office of Safety and Mission Assurance under the Software Assurance Research Program led by the NASA IV&V Facility. Reference herein to any specific commercial product, process, or service by trade name, trademark, manufacturer, or otherwise, does not constitute or imply its endorsement by the United States Government. References [] K. Beck. Extreme Programming Explained: Embrace Change. Addison Wesley,. [] B. Boehm. Get ready for agile methods, with care. Computer, 35():95 3, January. [3] M. B. et. al. Manifesto for agile software development,. Available from http://www.agilemanifesto.org/. [4] M. M. Mller and F. Padberg. Extreme programming from an engineering economics viewpoint. In Proceedings of the Fourth International Workshop on Economics-Driven Software Engineering Research (EDSER),. [5] K. Schwaber,. Quote from the First eworkshop on Agile Methods. Available from http://fc-md.umd.edu/ projects/agile/summary/summary.htm. [6] T.Menzies and Y. Hu. The tar treatment learner,. Available from http://www.ece.ubc.ca/twiki/ pub/softeng/treatmentlearner/intro.pdf. 7