Understanding and Predicting Effort in Software Projects



Similar documents
The Methodology of Software Development

Effects of Distributed Software Development and Virtual Teams

How to Measure Software Quality in Vain

Interval Quality: Relating Customer-Perceived Quality To Process Quality

Globalization and the Future Developer

Automating the Measurement of Open Source Projects

Software Support Tools and Experimental Work

Developer Fluency: Achieving True Mastery in Software Projects

(2) Question 2: Size of Mozilla community.

Two case studies of Open Source Software Development: Apache and Mozilla

Inferring Change Effort from Configuration Management Databases

Sample Workshops - An Overview of Software Development Practices

Addressing Challenges to Open Source Collaboration With the Semantic Web

Automated Classification of Change Messages in Open Source Projects

Two Case Studies of Open Source Software Development: Apache and Mozilla

Comparing Methods to Identify Defect Reports in a Change Management Database

Learning and Researching with Open Source Software

Two Case Studies of Open Source Software Development: Apache and Mozilla

Open Source Software Maintenance Process Framework

An Agent-Based Concept for Problem Management Systems to Enhance Reliability

SHARED MENTAL MODELS AND COORDINATION IN LARGE-SCALE, DISTRIBUTED SOFTWARE DEVELOPMENT

A Tool for Mining Defect-Tracking Systems to Predict Fault-Prone Files

Towards the Integration of Versioning Systems, Bug Reports and Source Code Meta-Models

Semantic Concept Based Retrieval of Software Bug Report with Feedback

An Empirical Study of Speed and Communication in Globally-Distributed Software Development

Curriculum Vitae. Zhenchang Xing

Empirical Project Monitor: A Tool for Mining Multiple Project Data

Predicting Risk of Software Changes

Large-scale code reuse in open source software

T task Distribution and Selection Based Algorithm

Predictors of Customer Perceived Software Quality

Software Configuration Management over a Global Software Development Environment: Lessons Learned from a Case Study

Selecting a defect prediction model for maintenance resource planning and software insurance

A Visualization Approach for Bug Reports in Software Systems

Solving the NGN Data Migration Challenge

Selecting a defect prediction model for maintenance resource planning and software insurance

Managing Open Source Software Development Projects With Semantic Web Technology

An empirical study of fine-grained software modifications

A Case Study of Open Source Software Development: The Apache Server

Towards an Infrastructure for Distributed e-business Projects

Home Office Collaborative Working Related Work. Sommersemester 2010 HAW-Hamburg Karsten Panier

A PROPOSED CURRICULUM FOR A MASTERS IN WEB ENGINEERING

ABSTRACT 8/14/ * Avaya Labs, randyh@avaya.com, audris@avaya.com, palframan@avaya.com 2 ** Iowa State University, weiss@iastate.

COLLABORATION IN SOFTWARE ENGINEERING PROJECTS: A THEORY OF COORDINATION

How To Model The Delay In A Multi Site Software Development Organization

Simulating the Structural Evolution of Software

Tracking the Impact of Design Changes During Software Development

Open Source Software Development: A Case Study of FreeBSD

The Impact of Release Management and Quality Improvement in Open Source Software Project Management

Cisco Network Optimization Service

ATI00484IEN. Avaya IP Office Advanced Application and Troubleshooting Workshop

Version Sensitive Editing: Change History as a Programming Tool

MEASURES FOR EXCELLENCE

Optimization of Software Quality using Management and Technical Review Techniques

Research into Testing Service Oriented Architectures: Preliminary Report, November 2006

Additional Information: A link to the conference website is available at:

Bug Fixing Process Analysis using Program Slicing Techniques

Software Continuous Integration & Delivery

Preface. Book Origin and Overview

Collaborative Software Design & Development. *Collaboration*

Communication Problems in Global Software Development: Spotlight on a New Field of Investigation

Five Years of Web Site Evolution

Fall Lecture 1. Operating Systems: Configuration & Use CIS345. Introduction to Operating Systems. Mostafa Z. Ali. mzali@just.edu.

Analysis of Open Source Software Development Iterations by Means of Burst Detection Techniques

Observability of Software Engineering Processes in Open Source Software Projects Domain

Defect Detection in a Distributed Software Maintenance Project

Supporting Group Awareness in Distributed Software Development

Applying Social Network Analysis to the Information in CVS Repositories

Vulnerability Discovery in Multi-Version Software Systems

Accelerating Cross-Project Knowledge Collaboration Using Collaborative Filtering and Social Networks

Master of Science in Software Engineering Student Guide

3C05: Unified Software Development Process

X ec. Leasing Software Enters a New Phase of Configurability. White Paper. John Voytko. 518 Main Street Pittsburgh, PA

Social Networking and Collaborative Software Development

Review of Computer Engineering Research CURRENT TRENDS IN SOFTWARE ENGINEERING RESEARCH

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

Network Performance Monitoring at Small Time Scales

Using Version Control Data to Evaluate the Impact of Software Tools: A Case Study of the Version Editor


Developer identification methods for integrated data from various sources

THE DEVELOPMENT OF A WEB BASED MULTIMEDIA INFORMATION SYSTEM FOR BUILDING APPRAISAL

Agile Requirements Definition for Software Improvement and Maintenance in Open Source Software Development

Responsiveness as a measure for assessing the health of OSS ecosystems

Multi-Project Software Engineering: An Example

CA Application Performance Management r9.x Implementation Proven Professional Exam

June Zhang (Zhong-Ju Zhang)

Goals of this tutorial

Change Risk Assessment: Understanding Risks Involved in Changing Software Requirements

Software Engineering of NLP-based Computer-assisted Coding Applications

A View Integration Approach to Dynamic Composition of Web Services

Risk Knowledge Capture in the Riskit Method

Software Verification and Validation

Improvement Opportunities for the Open Source Software Development Approach and How to utilize them

A Framework for Software Product Line Engineering

Requirements Management in Global Software Development: Preliminary Findings from a Case Study in a SW-CMM context i

Module 12. Software Project Monitoring and Control. Version 2 CSE IIT, Kharagpur

Quantitative Software Management

Ming-Hsing Chiu. Home: (985) Chapel Loop Office: (985) EDUCATION

Managing Software Product Line

feature Defect Handling in Medium and Large Open Source Projects

Transcription:

Understanding and Predicting Effort in Software Projects A. Mockus, D. Weiss, and P. Zhang audris,weiss,pingzhang @avaya.com Avaya Labs Research Basking Ridge, NJ 07920 http://www.research.avayalabs.com/user/audris

Outline Background Motivation Software project repositories How to use change data A model of software project Predicting schedule Predicting post-release defects Discussion 2 A. Mockus Understanding and Predicting Effort in Software Projects ICSE 2003

Motivation To quantify software production: make informed trade-offs between schedule, quality, cost. Visibility: where/when effort is spent, defects introduced Predictability: what will be the impact of choosing technology, processes, organization Controllability: trade-offs between time to market, features, quality, and staffing 3 A. Mockus Understanding and Predicting Effort in Software Projects ICSE 2003

Example: Release Dates Weekly effort (Person Weeks) 0 10 20 30 40 50 New effort Actual Repair Effort Predicted Repair Effort (Jan, 2001) Predicted Repair Effort (Nov, 2001) 2001.0 2001.5 2002.0 2002.5 Calendar Weeks 4 A. Mockus Understanding and Predicting Effort in Software Projects ICSE 2003

Background: Illustration Software is created by changes Changes are tracked Software Release Feature Patch Change Management System Description MR Time, Date Developer delta File, Module #lines add., del. Version Control System 5 A. Mockus Understanding and Predicting Effort in Software Projects ICSE 2003

Approach Use properties and relationships among changes to model phenomena in software projects Obtain change properties from project repositories (VCS/CMS) Model staffing/schedule/quality relationships to predict future changes Use predicted changes to predict repair effort schedule, post release defects, and feasibility of the current schedule The product/code is simply a dynamic superposition of changes, and is not of particular interest otherwise 6 A. Mockus Understanding and Predicting Effort in Software Projects ICSE 2003

Why Use Project Repositories? The data collection is non-intrusive (using only existing data minimizes overhead) Long history of past projects enables historic comparisons, calibration, and immediate diagnosis in emergency situations. The information is fine grained: at MR/delta level The information is complete: everything under version control is recorded The data are uniform over time Even small projects generate large volumes of changes: small effects are detectable. The version control system is used as a standard part of a project, so the development project is unaffected by observer 7 A. Mockus Understanding and Predicting Effort in Software Projects ICSE 2003

Pitfalls of Using Project Repositories Different process: how work is broken down into work items may vary across projects Different tools: CVS, ClearCase, SCCS,... Different ways of using the same tool: under what circumstances the change is submitted, when the MR is created The main challenge: create change based models of key problems in software engineering 8 A. Mockus Understanding and Predicting Effort in Software Projects ICSE 2003

Existing Models Predicting the quality of a patch [7] Globalization: move development where the resources are: What parts of the code can be independently maintained [8] Who are the experts to contact about any section of the code [5] Effort: estimate MR effort and benchmark process What makes some changes hard [3] What processes/tools work [1, 2] What are OSS/Commercial process differences [4] Project models Release schedule [9] Release readiness criteria Release quality 9 A. Mockus Understanding and Predicting Effort in Software Projects ICSE 2003

Change Data Methodology: Project Sample Languages: Java, C, SDL, C, JavaScript, XML,... Platforms: proprietary, unix es, Windows, VXWorks, Domains: embedded, high-availability, network, user interface Size: from largest to small Type Added KLines KDelta Years Developers Locations Voice switching software 140,000 3,000 19 6,000 5 Enterprise voice switching 14,000 500 12 500 3 Multimedia call center 8,000 230 7 400 3 Wireless call processing 7,000 160 5 180 3 Web browser 6,000 300 3 100/400 OA&M system 6,000 100 5 350 3 Wireless call processing 5,000 140 3 340 5 Enterprise voice messaging 3,000 87 10 170 3 Enterprise call center 1,500 60 12 130 2 Optical network element 1,000 20 2 90 1 IP phone with WML browser 800 6 3 40 1 Web sever 200 15 3 15/300 10 A. Mockus Understanding and Predicting Effort in Software Projects ICSE 2003

Software Project Expressed through Changes Project consists of two types of changes business driven changes planned new feature/platform changes consequences repair changes due to incorrect implementation of new features or unanticipated interaction or novel exercise of base functionality Assume modification repairs later A unit of effort spent on new planned changes generates units of repair effort with delay Choose appropriate distribution for and Times until each unit of repair effort is spent are IID 11 A. Mockus Understanding and Predicting Effort in Software Projects ICSE 2003

Model Fit: 11 Releases r6 New Effort Actual Repair Effort Predicted Repair Effort 40 r5 r11 30 20 10 0 r4 r10 40 Effort (Person Weeks) 40 30 20 r3 r9 30 20 10 0 10 0 r2 r8 40 30 20 10 40 r1 r7 0 30 20 10 0 1994 1996 1998 2000 2002 Calendar Weeks 12 A. Mockus Understanding and Predicting Effort in Software Projects ICSE 2003

2 345 77 6 10 /. ' Model Details Notation The Denote the number of new feature effort units at time, and, similarly for fixes. Denote to be repair effort units on interval Project data ( and) are observed until time No direct links between changes are observed (*) +-, 3 Likelihood is 345 O 7!#" $&% KSR 3 Likelihood LH B <>= VF? @L= 8 49 ;/ <>= @:= CED F: GIH 7 / 2 345 77 6 6 PQ O L K J 34K : B A /? : UT 10/ :8M N L 5 A :? J 6 13 A. Mockus Understanding and Predicting Effort in Software Projects ICSE 2003

b Z Y X W Release Planning Scenario Goal: Model tradeoffs between release feature content, schedule, staffing needs, and quality stakeholders provide new feature content, release dates, staffing, and quality goals repair schedule and post release defeacts are predicted new feature content, release dates, staffing, and quality goals are revised Results shows the fraction of fix to new effort. shows mean time until fix. W +\[ ] W _^ [`a +[ c Sd`e +e 14 A. Mockus Understanding and Predicting Effort in Software Projects ICSE 2003

Predicted Schedule: Ongoing Project Weekly effort (Person Weeks) 0 10 20 30 40 50 New effort Actual Repair Effort Predicted Repair Effort (Jan, 2001) Predicted Repair Effort (Nov, 2001) 2001.0 2001.5 2002.0 2002.5 Calendar Weeks 15 A. Mockus Understanding and Predicting Effort in Software Projects ICSE 2003

Discussion Unified project model: predicting schedule, defects, and effort Input: information that is known or should be known in advance Output: likely consequences Change data represents a vast amount of untapped resources Remaining challenges Broader application and validation of existing models New models to address other problems of practical/theoretical significance What information developers would easily and accurately enter in a CM systems? What is the sufficient statistic for a software change? 16 A. Mockus Understanding and Predicting Effort in Software Projects ICSE 2003

References [1] D. Atkins, T. Ball, T. Graves, and A. Mockus. Using version control data to evaluate the impact of software tools: A case study of the version editor. IEEE Transactions on Software Engineering, 28(7):625 637, July 2002. [2] D. Atkins, A. Mockus, and H. Siy. Measuring technology effects on software change cost. Bell Labs Technical Journal, 5(2):7 18, April June 2000. [3] James D. Herbsleb, Audris Mockus, Thomas A. Finholt, and Rebecca E. Grinter. An empirical study of global software development: Distance and speed. In 23nd International Conference on Software Engineering, pages 81 90, Toronto, Canada, May 12-19 2001. [4] Audris Mockus, Roy T. Fielding, and James Herbsleb. Two case studies of open source software development: Apache and mozilla. ACM Transactions on Software Engineering and Methodology, 11(3):1 38, July 2002. [5] Audris Mockus and James Herbsleb. Expertise browser: A quantitative approach to identifying expertise. In 2002 International Conference on Software Engineering, pages 503 512, Orlando, Florida, May 19-25 2002. ACM Press. [6] Audris Mockus and Lawrence G. Votta. Identifying reasons for software change using historic databases. In International Conference on Software Maintenance, pages 120 130, San Jose, California, October 11-14 2000. [7] Audris Mockus and David M. Weiss. Predicting risk of software changes. Bell Labs Technical Journal, 5(2):169 180, April June 2000. [8] Audris Mockus and David M. Weiss. Globalization by chunking: a quantitative approach. IEEE Software, 18(2):30 37, March 2001. [9] Audris Mockus, David M. Weiss, and Ping Zhang. Understanding and predicting effort in software projects. In 2003 International Conference on Software Engineering, Portland, Oregon, May 3-10 2003. ACM Press. Accepted.

Abstract We set out to answer a question we were asked by software project management: how much effort remains to be spent on a specific software project and how will that effort be distributed over time? To answer this question we propose a model based on the concept that each modification to software may cause repairs at some later time and investigate its theoretical properties and application to several projects in Avaya to predict and plan development resource allocation. Our model presents a novel unified framework to investigate and predict effort, schedule, and defects of a software project. The results of applying the model confirm a fundamental relationship between the new feature and defect repair changes and demonstrate its predictive properties.

Presenter s Bio Audris Mockus Avaya Labs Research 233 Mt. Airy Road Basking Ridge, NJ 07920 ph: +1 908 696 5608, fax:+1 908 696 5402 http://mockus.us, mailto:audris@mockus.org, Audris Mockus conducts research of complex dynamic systems. He designs data mining methods to summarize and augment the system evolution data, interactive visualization techniques to inspect, present, and control the systems, and statistical models and optimization techniques to understand the systems. Audris Mockus received B.S. and M.S. in Applied Mathematics from Moscow Institute of Physics and Technology in 1988. In 1991 he received M.S. and in 1994 he received Ph.D. in Statistics from Carnegie Mellon University. He works at Software Technology Research Department of Avaya Labs. Previously he worked at Software Production Research Department of Bell Labs.