1 of 24

Globally Distributed Software Development Project Performance: An Empirical Analysis

Authors:-

Narayan Ramasubbu

Rajesh Krishna Balan

Presented by:-

Prasad Pai (MT2011106)

2 of 24

What is this paper about:-

  1. Main focus is on understanding what effects do dispersion of developing teams across globe have on productivity of employees and quality of project.
  2. Development of a model of distributed software development.
  3. Application of this model to an industry which has globally distributed teams.

3 of 24

Mockus and Weiss’ report, Herbsleb’s report:-

  • Distributing the work at multiple locations increases the cycle time of project.
  • You end up doing more work than required.
  • Productivity of employees and quality of the project takes a serious hit.
  • Project performance is decreased.

4 of 24

Questions to answer:-

  1. To what extent does “dispersion” in software tasks affect software productivity and quality?
  2. To what extent can investments in structured software engineering processes mitigate the effect of dispersion?
  3. What are the relative effects of individual quality management practices in improving distributed project performance?

5 of 24

Research Model:-

6 of 24

Work dispersion:-

  • Work dispersion between development centers is measured using a variable similar to the Herfindahl-Hirschman Index.
  • This index is a well tested and widely used measure that quantifies how diversified a large corporation or a particular industry is.

Work dispersion = 1002 – (% effort at first development center)2 – (% effort at second development center)2 - ……..

  • A value of zero for work dispersion measure indicates that the software project is completely co-located.

7 of 24

Quality Management Approaches:-

This model uses the approaches widely accepted in every literature.

Prevention-based approach:-

  • Focuses on activities which are necessary to be done before the actual work on project starts.
  • More the time spent in this approach, the better it is for success of project.
  • Ex:- Programming training, Business domain training, Process training, Configuration management, Task Planning and Scheduling

8 of 24

Appraisal-based approach:-

  • Appraisal-based activities involve proactively assessing progress, performance and quality of intermediate artifacts at various stages of development.
  • Ex:- Requirement, Specification and Design reviews, Code inspection, Status reviews

Failure-based approach:-

  • Failure-based quality approaches include testing the adherence of applications to customer specifications.
  • It is about defect correction activities.
  • Ex:- Unit testing, Module testing, Integration Testing, System testing, Error tracking and correction

9 of 24

Project performance:-

  1. Development productivity:-
  2. Development productivity is defined as the ratio of software code size in function points to the total development effort in person-hours.

  1. Conformance Quality:-
  2. Conformance quality captures the number of unique problems reported by customers during the acceptance tests and production trials before the project signoff.
  3. It is calculated as follows,

Conformance quality = 1/(defects + 1)

10 of 24

Control variables:-

They are used to

  1. Provide a deeper understanding of the distributed software development process.
  2. Enable creation of empirical models that can be computed

Productivity variables:-

  1. Team size:-
  2. Team size is the headcount of the number of persons involved in the project.
  3. An increased team size poses difficulties in both administrative and expert coordination.

11 of 24

b) Reuse:-

  • Reuse is measured as the percentage of lines of code that have been utilized from the generic code libraries maintained centrally in the knowledge database at our research site.
  • Commenting the code promotes reusability of code.

Quality variables:-

c) Code size:-

  • Code size is measured as function points over the entire project code base.
  • Code length is not important and is never considered.

12 of 24

d) Upfront Investment:-

  • Upfront investment is measured as the percentage of total effort spent during the requirements and design stages of the life cycle.
  • Higher levels of investment in these activities has positive effect on project.

Common variable:-

e) Design rework:-

  • Design rework is the effort in terms of person hours, spent per function point to implement the new design.
  • It is like a combination of code size and reuse.

13 of 24

Empirical equations:-

  1. Development productivity = f (conformance quality, work dispersion, prevention-based approach, appraisal-based approach, failure-based approach, reuse, design rework, team size)
  2. Conformance quality = f (development productivity, work dispersion, prevention-based approach, appraisal-based approach, failure-based approach, design rework, code size, upfront investment)

The control variables were created to remove the circular dependency.

14 of 24

  • General multiplicative specification is considered.
  • Log-log transformation is taken to get following equations.
  • Scale economies exist in software development.
  1. ln (development productivity) = α0 + α1 * ln(conformance quality) + α2 * ln(work dispersion) + α3 * ln( prevention) + α4 * ln(appraisal) + α5 * ln(failure) + α6 * ln(reuse) + α7 * ln(design rework) + α8 * ln(team size) + ε1
  2. ln (conformance quality) = β0 + β1 * ln(development productivity) + β2 * ln(work dispersion )+ β3 * ln(prevention) + β4* ln(appraisal) + β5 * ln(failure) + β6 * ln(design rework) + β7 * ln(Code size) + β8 * ln(Upfront investment) + ε2

15 of 24

About the company:-

  • Employs over 19000 people in 17 countries and has annual revenue of more than one billion dollars.
  • Is a CMM level 5 company and hence the data collected from them has to be very reliable.
  • Data collection involved gathering information on forty-two completed projects in a two year time period.
  • All the projects studied were built using high level programming languages and relational databases.
  • Each of the projects studied was executed using two software development centers, one in India and one in the United States.
  • Developers from India were given trips to United States to develop team spirit.

16 of 24

Statistics of 42 projects:-

Sum of percentage of total project hours is not 100%.

17 of 24

Mathematics followed:-

  • Two Stage Least Squares method is used to estimate the coefficients of equations.
  • The obtained result was confirmed with Durbin-Wu-Hausman endogeneity method using two-tailed hypothesis test.
  • The Fisher statistic (F) values obtained using F-Test for both the empirical models are significant at 1% and indicates that regression results are statistically valid.

18 of 24

19 of 24

Effect of Dispersion on Project Performance:-

  1. To what extent does “dispersion” in software tasks affect software productivity and quality?
  2. An exponential decrease in productivity as dispersion increases.
  3. Statistically, insignificant to tell dispersion effect on quality.

20 of 24

Reducing dispersion effects:-

2. To what extent can investments in structured software engineering processes mitigate the effect of dispersion?

  • 1% loss of productivity caused by increased work dispersion, can be reduced to just a 0.1% loss by investing in increased appraisal and failure-based quality management processes.

21 of 24

3. What are the relative effects of individual quality management practices in improving distributed project performance?

Relative effects of different approaches:-

  • Appraisal-based approaches have the highest impact on development productivity followed by failure-based approaches.
  • Prevention-based approaches seem to have no statistically significant effect on productivity.

Effect on Productivity:-

22 of 24

  • Failure-based approaches have the highest impact on conformance quality followed by prevention-based approaches.
  • Appraisal-based approaches seem to have no statistically significant effect on conformance quality.

Effect on Conformance Quality:-

23 of 24

Limitations:-

  1. The model did not consider the task level interdependencies among individual team members. It analyzed the interdependencies at the team level.
  2. The data set was collected from a firm that had already attained high process maturity operational capability. Hence, the results cannot be generalized to all process maturity levels.
  3. All the projects were business application software development projects. Hence, even though the broad results the paper observed in this study are still relevant, other types of software development projects such as reengineering, product development or maintenance projects might require additional analysis.
  4. It has been assumed that CMM level 5 company ensures that there is no cultural differences between its employees.

24 of 24

Conclusions:-

  1. Dispersion significantly reduces development productivity and has effects on conformance quality.
  2. Companies need to account for the inevitable loss in productivity and quality when deciding to move software production to a second or third location to reduce labour costs, etc.
  3. The negative effects of dispersion can be significantly mitigated through deployment of structured software engineering processes.
  4. It suggests that companies that institute high quality software processes are far more likely to overcome the effects of dispersion than companies that don’t.