Tuesday, November 20, 2012

Globally Distributed Software Development Project Performance: An Empirical Analysis

Narayan Ramasubbu and Rajesh Krishna Balan. Globally distributed software development
project performance: An empirical analysis. InESEC-FSE’07, Cavtat, Croatia, September 2007.
ACM.


View the paper here.
View the presentation here.

Abstract:- 

    This paper is about the effect on productivity of employees and quality of code when development takes place in a distributed manner. The paper is based on results of an extensive two year done by the authors. They first develop a model of distributed software development to study the impacts. The model is highly a mathematical based model with the use of several concepts in it. The authors make use of a company which has obtained the rating of level 5 in capability maturity model (CMM). The unnamed company worked on a total of 42 projects for the two years and all the quality attributes obtained in these projects were given as input to the mathematical model developed by the authors. The results obtained by using the parameters of quality attributes were tested for its validity using different types of validation tests. These validation tests gave good results to the model so that model could be used at any place where the scenarios are similar to that of studied company. The results obtained by this mathematical model were that the dispersion effect had the impact on productivity of employees and quality of code.

    To counter these negative effects, several steps have to be adopted. All these steps were based on following good software engineering practices throughout the lifecycle of the product development. The authors have classified these practices into three approaches oriented on prevention basis, appraisal basis and failure basis. Each of these approaches has its own significance in its way in some part of the development phase of the project. The authors observed that when the practices in a company are oriented towards the above mentioned approaches, the company does well to mitigate the effects of dispersion on productivity of employee and quality of code and on the contrary, even improves the performance better than collocated development.


Discussions:-
    
     We learnt about the creation of a model from scratch and what elements is author considering in construction of it. At first, author considered all the factors affecting software development. First factor is work dispersion for which author had made use of Herfindahl-Hirschman index to obtain a numeric value of work dispersion. The other factor is a collection of approaches which the author describes are necessary to be followed by the companies working in dispersed manner. The first approach is of prevention-based which speaks about the various types of training an employee has to undergo before working on a project and various types of configuration management, task planning and scheduling processes. The second approach is of appraisal-based which speaks about practices to be followed while project is ongoing like review, inspection etc. The last approach is of failure-based which talks about various practices to be followed once the project is in the completion stages like testing, error tracking and correction.

    The model consists of two indicators that is development productivity and conformance quality. Then there are five types of control variables which are team size, code size, reuse, upfront investment and design rework. Some of these control variables are dependent on development productivity or conformance quality or both. The model tries to establish the relation between these factors affecting software development, indicators and control variables. The relation is about establishment of two equations of indicators in terms of functions as of above entities.

    The obtained model’s coefficients are obtained by making use of empirical data obtained from an unnamed CMM level 5 company’s quality attributes and other parameters. Durbin-Wu-Hausman endogenity method of two-stage least squares test is used to obtain these coefficients. The significance of the obtained model with coefficient value is tested by making use of two-tailed hypothesis test. The validity of the whole model on the whole was tested by making use of F-Test. Both the validity tests gave positive results signifying the model obtained is mathematically correct.

    Then using the values from the model, it was established that productivity of employees decreases with increase in dispersion and productivity of employees has an inverse relation with quality of the code. The values obtained in model also denoted that increase in appraisal-based and failure-based approaches will help to reduce productivity loss caused by dispersion. The model also indicated that more failure-based approaches will help to increase the quality of the product.

     The main concluding remark will be stated as dispersion significantly reduces development productivity and has effects on conformance quality. But these negative effects of dispersion can be significantly mitigated through deployment of structured software engineering processes in terms of various types of approaches described by the authors. Companies when going for distributed development have 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. The model results suggested that companies that institute high quality software processes are far more likely to overcome the effects of dispersion than companies that don’t.

No comments:

Post a Comment