Using a Validation Model to Measure the Agility of Software Development in a Large Software Development Organization
Total Page:16
File Type:pdf, Size:1020Kb
Using a Validation Model to Measure the Agility of Software Development in a Large Software Development Organization Mikio Ikoma1 Masayuki Ooshima1 Takahiro Tanida1 Michiko Oba1 Sanshiro Sakai2 1 Software Division, Hitachi, Ltd. 2 Dept. of Computer Science, Shizuoka University [email protected] [email protected] [email protected] [email protected] [email protected] Abstract extensive data on various aspects of software development and products (for example, relating to the This paper provides a metric for evaluating the cost, quantity, and quality of projects) and have used agility of software development projects and this data to improve their productivity. organizations. The metric is based on a validation The metric of productivity (the amount of production model derived from the V&V model. In this metric, divided by cost) is an important metric even now. In agility is defined as minimizing the time between the recent years, however, software development production of intermediate deliverables and the organizations have had to face an increasingly validation of those deliverables. The major competitive market and run projects under a variety of distinguishing feature of this metric is that it is environment conditions. In this situation, the independent of any particular software development organizations confront the following issues: process model, such as agile software development In addition to increasing the productivity of software methods or the waterfall model. Therefore, this metric development, organizations also need to improve can be used for software development organizations efficiency and quality in response to reduced that have a wide variety of software development development periods and constantly changing projects with varying kinds of development processes. conditions. This metric has been shown to be practical in large While following many different development software development organizations through processes, organizations need to measure and exhaustive use in more than 7,000 projects over the leverage metrics that are independent of any specific last 9 years. development process model. 1. Introduction To resolve these issues, this paper uses the notion of software development agility, which we initially define In the software industry, if two software as “the ability to quickly build functionality and quality organizations develop a commercial software product into software at an early stage”. The paper proposes a of the same functionality and same quality, the software development model called the Validation organization that can develop it at a lower cost over a model, and a derived metric called the Agility metric shorter period has an advantage. Therefore, just as it is that can measure software development agility. To important for manufacturers in other industries, it also demonstrate the effectiveness of the model and the important for software development organizations to metric, we will show how the Validation model and the measure and improve productivity and the development agility metric were applied in a large development period. organization, and explain how the model and metric were used to improve the agility of that organization. Since the 1980s, Japan’s major software vendors have adopted a unified development process known as The Validation model is based on the V&V the “Japanese software factory” approach [1] [2]. (verification & validation) model ( Boehm [3] ), which Using this approach, the vendors have collected is important for establishing software quality, and ICSE’09, May 16-24, 2009, Vancouver, Canada 978-1-4244-3494-7/09/$25.00 © 2009 IEEE 91 Companion Volume focuses on how a planned software item is validated “the amount of production divided by cost”. In the field during the software development process. The agility of software development, increased efficiency is metric combines the Validation model and existing indicated by a lower cost for implementing the same efficiency models. In particular, the metric references functional or non-functional requirements. Therefore, both a turnover metric (widely used in financial and the metric of productivity is also important for software manufacturing fields) and iterative and incremental development. However, the productivity metric alone development processes [4] (widely used in software cannot measure reductions in development time or development). However, the agility metric is not used increases in software quality, both of which are just to shorten the development process or to enable required for current software development use of specific lightweight software development organizations and projects. processes; the metric is also used to achieve the goals of fast development and high quality software. First, we will describe productivity issues from the viewpoint of shortening the development period. Figure This paper shows that, by combining the V&V model 1 shows Gantt charts of three software development and a turnover metric, the values of the Agile projects that develop the same functionality. Both Manifesto [5] can be modeled, and not just for iteration. project A and B adopt a waterfall process model and We think that many of the values of the Agile project B divides the project into three concurrent Manifesto correspond to the agility notion of “how subprojects. Project C adopts an iterative and quickly, and at how early a stage, planned software incremental development process. items can be validated”. As shown in Figure 1, project C can release software The Validation model and the agility metric can be earlier than the others and keeps less inventory during used to evaluate and improve values of the Agile the development period. In addition, project C has Manifesto independent of any specific software financial advantages compared with project A and B, development process or specific practice. Therefore, as shown by Denne [6]. However, if you just measure large software development organizations, which the productivity (the amount of production divided by usually use a variety of software development cost), there is no difference among these three projects. processes, can use the model and the metric. In this paper, we introduce our experience of applying the agility metric to several thousand software Project A = Project B = Project C development projects in a large organization, which has about 3,000 software engineers, and report the Next, if you use the development period instead of effectiveness of the metric. cost (that is, if you measure “amount of production divided by period”), the result is as follows: 2. Issues of Productivity in Software Project A = Project C > Project B Development However, from the management perspective, Project Shortening the development period and improving C is better than Project B and there are few differences quality are important in product manufacturing in any between Project A and Project B. industry, not just software. Productivity is measured as Estimated [\ ] Projects Personnel Size (KLOC) 'HF -DQ )HE 0DU $SU 0D\ -XQ -XO $XJ 6HS 2FW 1RY 'HF -DQ)HE0DU$SU0D\ Project A Project B Subproject B-1 Subproject B-2 Subproject B-3 Project C Subproject C-1 Subproject C-2 Subproject C-3 Figure 1: Examples of Gantt Charts for Software Development Projects of the Same Size 92 Therefore, productivity or “amount of production in Boehm [11] [12], in large software development divided by period” cannot be used, and a metric that organizations, many software development projects can results in adopt neither pure agile methods only, nor a pure waterfall model only. In short, adopting an agile Project C > Project A = Project B software development method only is impractical. For example, there are many software development projects is required for measuring the efficiency of software that have fixed requirements, for which heavyweight development organizations. development processes similar to the waterfall model are used. Furthermore, from the quality perspective, increasing productivity or shortening the development period Therefore, to measure the agility of an entire should not affect the quality of the developed software software organization, it is difficult to use metrics that product. To satisfy this paper's initial agility definition measure the fit with specific agile development (“the ability to quickly, and at an early stage, build methods. We need to use a metric that is independent functionality and quality into software”), a metric is of various software development process models. required that can evaluate how fast target software satisfies both functional and non-functional 3.2. Issues with Applying Financial or requirements of stakeholders. Hardware Manufacturing Metrics 3. Past Approaches and Issues The issues with specific agile development methods described in the previous section can be resolved by This section describes past approaches for measuring applying the financial indicator “turnover” and the and improving the agility of software development, and hardware manufacturing indicator “cycle time” (used in issues with these approaches. the Just-In-Time (JIT) approach [13]) to software development organizations. That is, software items 3.1. Issues with Metrics for Agile under development can be regarded as corresponding Development Methods to assets in the financial indicator or corresponding to inventory in hardware manufacturing. Also, the amount Four values described in the Agile