an empirical study of the determinants of software productivity

36
1 An Empirical Study of the Determinants of Software Productivity and Development Time James A. Rodger* MIS and Decision Sciences Eberly College of Business & Information Technology Indiana University of Pennsylvania, Indiana, PA 15705 724-357-5944 (phone) 724-357-4831 (fax) e-mail: [email protected] Submitted to: Midwest DSI * Corresponding Author

Upload: others

Post on 03-Feb-2022

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: An Empirical Study of the Determinants of Software Productivity

1

An Empirical Study of the Determinants of Software Productivity and Development

Time

James A. Rodger*

MIS and Decision Sciences

Eberly College of Business & Information Technology

Indiana University of Pennsylvania, Indiana, PA 15705

724-357-5944 (phone)

724-357-4831 (fax)

e-mail: [email protected]

Submitted to: Midwest DSI

* Corresponding Author

Page 2: An Empirical Study of the Determinants of Software Productivity

2

An Empirical Study of the Determinants of Software Productivity and Development

Time

James A. Rodger is a Professor of Management Information Systems at Indiana

University of Pennsylvania (IUP). He received his Doctorate in MIS from Southern

Illinois University at Carbondale in 1997. Dr. Rodger has published several journal

articles related to these subjects. His work has appeared in Annals of Operations

Research, Communications of ACM, Computers & Operations Research, Decision

Support Systems, Expert Systems with Applications, Lecture Notes in Computer Science,

International Journal of Human-Computer Studies as well as several other journals.

Submitted to: Midwest DSI

Page 3: An Empirical Study of the Determinants of Software Productivity

3

An Empirical Study of the Determinants of Software Productivity and Development

Time

Abstract

In this paper, we identify a set of factors that may be used to forecast software

productivity and software development time. Software productivity was measured in

function points per person hours, and software development time was measured in

number of elapsed days. Using field data on over 130 field software projects from various

industries, we empirically test the impact of team size, integrated computer aided

software engineering (ICASE) tools, software development type, software development

platform, and programming language type on the software development productivity and

development time. Our results indicate that team size, software development type,

software development platform, and programming language type significantly impact

software development productivity. However, only team size significantly impacts

software development time. Our results indicate that effective management of software

development teams, and using different management strategies for different software

development type environments may improve software development productivity.

Keywords: Software engineering, software metrics, fourth generation languages, CASE

tools, field study, tools and techniques, models and principles, team size, volatility,

development platform and type, productivity, elapsed development time

Page 4: An Empirical Study of the Determinants of Software Productivity

4

An Empirical Study of the Determinants of Software Development Productivity and

Development Time

INTRODUCTION

Competition in software industry has increased significantly. One of the ways

software companies can stay competitive is to improve software development

productivity of their software products. However, despite the advances in software

development tools, development methodology and programming languages, research

shows that productivity improvements have either remained the same or declined

substantially [43].

Several studies in the literature have measured factors impacting either software

productivity or software development time [21, 14]. Blackburn et al. [20] argue that

software productivity and software development time are not the same. For example, low

productivity organizations can reduce the software development time by increasing the

software development team size. While increasing the number of software developers to

reduce software development time is an interesting option, Fried [41] argues that large

teams increase the non-productive time due to increased communication and coordination

requirements.

Very few researchers have focused on developing models to understand the

primary antecedents of software development productivity and software development

time. In fact, we are not aware of any study that uses real-world data and investigates the

impact of certain variables on both software development productivity and software

development effort. For example, the Blackburn et al. [20] study uses survey data and

measures managerial perceptions.

Page 5: An Empirical Study of the Determinants of Software Productivity

5

Management of both software development productivity and software

development time are of paramount importance. Effective management of software

development productivity and software development time leads to a better competitive

position for an organization [72]. In certain cases, managing software development time

may lead to a lower likelihood of schedule overrun and litigation due to violations of

contractual agreements.

In this paper we investigate the impact of team size, ICASE tools, software

development platform, software development type, and type of programming language on

software development productivity and software development time. We use a real-world

data set of 130 different software development projects. The projects in the data set were

completed between years 1989-2001 in over seven different countries. The data are used

in many other studies and is publicly available from the International Software

Benchmarking Standards Group [5, 66, 87].

The rest of the article is organized as follows. First, using the software

engineering literature, we identify the factors that may impact the software development

productivity and software development time. Second, we describe our data and

empirically test the impact of the identified factors on software productivity and software

development time. In the end, we provide a summary, limitations and future extensions of

the research.

RELEVANT LITERATURE AND HYPOTHESES

Very few researchers have focused on developing models to understand the

primary antecedents of software development productivity and software development

time. Subramanian and Zarnich [88] proposed a theoretical model that causally predicts

Page 6: An Empirical Study of the Determinants of Software Productivity

6

the software productivity. The Subramanian and Zarnich [88] model consists of three

independent variables: ICASE tools, systems development method and ICASE tool

experience. Using real-world data on several software projects from an organization,

Subramanian and Zarnich [88] empirically validated their model. Foss [40] proposed

four essential aspects for reducing software development time —tools, methodology,

people and effective management. Given that tools, methodology and people impact

both software productivity and development time, we investigated the impact of these

factors on software productivity and development time.

Tools and Methodology

Programming methods and tools are known to have an impact on the software

development effort [84, 98]. Programming methods consist of the programming

language, the development platform and the development methodology [84, 88, 98].

Programming, project management and design tools – hereafter called

development tools – do have an impact on software productivity and development time.

Development tools have been used to improve analyst and programmer productivity,

improve software quality, reduce maintenance, and increase management control over the

software development process. Automated software development tools fall into three

categories: programming support tools, design technique tools and project management

tools [44]. There is qualitative data available that supports the development tool type as

having an impact on the software effort and productivity [31]. Other researchers have

supported these claims [42, 55, 100].

Programming languages are the primary methods for creating software. The basic

challenge for business software builders is to build reliable software as quickly as

Page 7: An Empirical Study of the Determinants of Software Productivity

7

possible. Fourth generation languages automate much of the work normally associated

with developing software applications [71]. The literature on the impact of language type

on software productivity is inconclusive. Blackburn et al. [20] reported that language

type does have an impact on software development productivity. However, Blackburn et

al. [21] reported that language type does not have an impact on productivity. One of the

reasons why programming languages might not have an impact on effort is that some of

the programming languages, such as C++, might be more complex than some of the other

3GLs. 4GLs and recent object-oriented programming languages, while complex, provide

many functionalities that might lead to lower effort. For example, Microsoft Foundation

Classes (MFC) in Visual C++ and JAVA Swing classes in Java programming provide

several reusable classes that might be used to design graphical user interfaces efficiently.

3GL languages don’t provide such extensive capabilities; some of the complex visual

interfaces are only possible in 4GL languages.

This leads to the following hypothesis:

Hypothesis 1: The use of 4GL programming language will increase

software development productivity and reduce software development time.

Integrated CASE (ICASE) tools are designed to provide support for all phases of

the systems development life cycle [88]. The capabilities of ICASE tools include the

following:

1. Graphical capabilities for modeling user requirements, and error and consistency

checking

2. Prototyping and system simulation capabilities

3. Code generating capabilities

Page 8: An Empirical Study of the Determinants of Software Productivity

8

4. Code testing, code validation, and code reuse capabilities

5. Reengineering, reverse engineering, data dictionary and database interface

capabilities

6. Management information acquisition, storing, managing and reporting

capabilities.

Banker and Kauffmann [9] showed that the use of ICASE tools has a significant impact

on productivity. Subramanian and Zarnich [88], confirming the positive impact of

ICASE tools on productivity, showed that no significant differences in productivity are

observant for different types of ICASE tools. Subramanian and Zarnich [88] mentioned

that programmer experience with ICASE tools is an important factor in improving

productivity. Vessey et al. [97] argued that the use of ICASE tools alone cannot warrant

productivity improvements, and programmers trained in the use of ICASE tools are

crucial for productivity improvements. Blackburn et al. [21, speculating on the impact of

CASE tools, mentioned that increasing project complexity and size are obscuring the

advantages that CASE tools bring. We propose following hypothesis:

Hypothesis 2: The use of ICASE tools will increase software development

productivity and lower software development time.

Team Size

Team size, as a factor impacting software effort and productivity, has been used

in several studies [5, 14, 39, 48, 57, 81, 84]. While team size seems to play a role, its

impact is not clearly established. In a global survey of different countries, Blackburn et

al. [21] argued that smaller teams might be more productive. However, the authors said

that the assertions about small team size and productivity are rarely supported by

Page 9: An Empirical Study of the Determinants of Software Productivity

9

anecdotal evidence. Microsoft used a strategy of employing small teams of star

developers and found that the strategy, when confronted with the market realities of

marketing, developing, and maintaining large mass-market applications, does not work

well [61]. Large team size might inhibit productivity due to inefficiencies created by the

problems of coordination and communication between the members of the team [73, 74].

However, larger team size during the customers’ requirements phase might avoid

ambiguity, which might improve productivity. Banker and Kemerer [11] argued that

software projects might benefit from larger team size as specialized personnel with

expertise in certain areas might improve overall productivity.

Smith et al. [84], in their empirical study on the impact of team size on software

effort, using an object-oriented programming language-based system, showed that team

size does not have a significant impact on software effort. However, Angelis et al. [5], in

multi-organizational and multi-project data, claimed that team size does have an effect on

software development effort. Since our data is similar to Angelis et al. [5] data, we have

the following hypothesis:

Hypothesis 3: An increase in team size will decrease software

development productivity and increase software development time.

Computer Platform

Computer platform, as a factor impacting software development time and

productivity, has been used in several studies [3, 25]. The computer platform refers to the

both the machine complex and infrastructure software and is a function of execution time

constraints, main storage constraints and platform volatility [25]. The platform

characteristics in which application software development programming needs to be

Page 10: An Empirical Study of the Determinants of Software Productivity

10

accomplished is determined by a target machine such as a mainframe, minicomputer, or

personal computer [45]. Platform difficulty (factors) is rated from very low to very high

and can be used to determine software development productivity and elapsed time [25].

In the modern client-server architecture, personal computers are used as clients

and small or mid-range computers are used as servers [82]. Mainframe computers

continue to be used for centralized data management functions midrange computers have

become popular in distributed data processing [86]. While the older legacy systems are

run on mainframes, the newer systems running on the personal computer or midrange

platforms function to interact with the legacy systems. Based on the foregoing discussion,

we propose following hypothesis:

Hypothesis 4: An increase in computer platform complexity will increase

software development productivity and lower software development time.

Software Development Type

It is a well documented that the costs of enhancing software applications to

accommodate new and evolving user requirements is significant [13]. Software

development can fall into three major types. These categories include new,

redevelopment and enhancement software types. According to ISBSG standards, new

development types mean that a full analysis of the application area is performed,

followed by the complete development life cycle, (planning/ feasibility, analysis, design,

construction and implementation). An example of a new development type may be a

project that delivers new function to the business or client. The project addresses an area

of business, (or provides a new utility), which has not been addressed before or provides

total replacement of an existing system with inclusion of new functionality. In the re-

Page 11: An Empirical Study of the Determinants of Software Productivity

11

development of an existing application, the functional requirements of the application are

known and will require minimum or no have no changes. Re-development may involve a

change to either the hardware or software platform. Automated tools may be used to

generate the application. This includes a project to re-structure or re-engineer an

application to improve efficiency on the same hardware or software platform. For re-

development, normally only technical analysis is required. Enhancement changes are

development types made to an existing application where new functionality has been

added, or existing functionality has been changed or deleted. This would include adding

a module to an existing application, irrespective of whether any of the existing

functionality is changed or deleted. Enhancements do not have errors but require

significant costs for system upgrades [95]. Adding, changing and deleting software

functionality to adapt to new and evolving business requirements is the foundation of

software enhancements [14]. Software volatility is a factor that drives enhancement costs

and errors [27, 46]. Further, there is an opportunity to introduce a new series of errors

every time an application is modified [65]. We propose following hypothesis:

Hypothesis5: An increase in software volatility will decrease software

development productivity and increase software development time.

Manova is used to test the resulting model seen in Figure 1.

____________________

INSERT FIGURE 1

____________________

DATA AND EXPERIMENTS

We obtained the data on 1,238 software projects from International Software

Benchmarking Standards Group (ISBSG). The ISBSG (release 7) data are used by

Page 12: An Empirical Study of the Determinants of Software Productivity

12

several companies for benchmarking software projects and are available in the public

domain. The ISBSG procedures encourage software development teams to submit their

project data to the repository in return for a free report, which graphically benchmarks

their projects against similarly profiled projects in the ISBSG repository [5]. The

software project data typically are submitted by the software project manager, who

completes a series of special ISBSG data validation forms to report the confidence he/she

has in the information he/she provides. ISBSG has developed a special mutually

exclusive data quality rating that reflects the quality of data related to any given project.

Each project is assigned a data quality rating of A, B, and C to denote the following:

A= The project data satisfies all the criteria for seemingly sound data.

B= The project data appears fundamentally sound, but some data attributes might

not be fundamentally sound.

C= The project data has some fundamental shortcomings.

Companies participating in ISBSG benchmarking acquired project data in several

different ways. FP data on the projects were acquired mostly by an automated process

(about 40%) or obtained from the development tools (about 21%). The software effort

data were mostly recorded (about 59%). In certain cases, the software effort data were

derived from the actual project cost (about 13%). In many cases, the data acquisition

procedures were missing or unknown.

The software projects in ISBSG release 7 data came from 20 different countries.

Figure 2 illustrates the major data-contributing countries. The top three known

contributing countries were the United States, Australia and Canada. Over 97% of the

projects were completed between the years 1989-2001. Most of the projects (about 50%)

Page 13: An Empirical Study of the Determinants of Software Productivity

13

were completed between the years 1999-2001. Figure 3 illustrates the data quality rating

of the ISBSG release 7 data on the 1,238 projects, and Figure 4 illustrates the industry

type distribution for the 1,238 projects.

____________________

INSERT FIGURE 2

____________________

____________________

INSERT FIGURE 3

____________________

____________________

INSERT FIGURE 4

____________________

The ISBSG data set included data on integrated CASE tools, programming languages,

development type, development platform, elapsed time, productivity and team size. Of

the total 1,238 software projects, only 138 projects had complete data on all five

independent and dependent variables for investigating elapsed time and productivity. For

the elapsed time and productivity model, we used all 138 projects, respectively, in our

analysis .

____________________

INSERT FIGURE 5

____________________

____________________

INSERT FIGURE 6

____________________

Figure5 illustrates the distribution of projects by different programming languages and

Figure 6 illustrates CASE tool types. The majority of the projects used a fourth

Page 14: An Empirical Study of the Determinants of Software Productivity

14

generation programming language. ICASE tools were used in only about 7.9% of the

elapsed time model and 7.8% for productivity model. All other projects used upper

CASE tools, no CASE tools or lower CASE tools.

____________________

INSERT FIGURE 7

____________________

____________________

INSERT FIGURE 8

____________________

Figure 7 illustrates project distribution by industry type and figure 8 illustrates data

quality for the 138 projects in the elapsed time and productivity model. The majority of

projects, about 22.2%, were from the banking industry for the elapsed time and

productivity model. When comparing the industry distribution and data quality for the

138 projects with the original set of 1,238 projects, we see that the data quality

distribution for the 138 projects is very similar to the data quality distribution for the

original 1,238 projects. For the elapsed time and productivity model, 65.9% was A

quality and 34.1% was B quality.

____________________

INSERT FIGURE 9

____________________

____________________

INSERT FIGURE 10

____________________

Page 15: An Empirical Study of the Determinants of Software Productivity

15

Figure 9 illustrates project distribution by platform type for the elapsed time and

productivity models. Figure 10 illustrates development type for the 138 elapsed time and

productivity projects respectively. The majority of platforms, about 47.62%, were main

frames for the elapsed time and productivity model. The majority of development types,

about 69%, were new development for the elapsed time and productivity model.

Analysis

We used the Multiple Analysis of Variance (MANOVA) procedure to test all

hypotheses. Table 1 illustrates the results of the multivariate tests for the five

independent and the two dependent variables, elapsed time and productivity. The

Pillar’s Trace, Wilk’s Lamda, Hotelling’s Trace and Roy’s Largest Root were significant

at the 0.05 level of significance for development type. Pillar’s Trace, Wilk’s Lamda,

Hotelling’s Trace and Roy’s Largest Root were significant at the 0.000 level of

significance for development platform and team size and language generation. Pillar’s

Trace, Wilk’s Lamda, Hotelling’s Trace and Roy’s Largest Root were not significant for

I-CASE.

____________________

INSERT TABLE 1

____________________

Table 2 illustrates the tests of between-subjects effects in the elapsed time and

productivity model. It also illustrates the results of the overall model fit. The results

indicate that the overall model fit was satisfactory. The F-value was 8.359 for

productivity and 1.945 for elapsed time. The model fit was significant at the 0.01 level of

significance for both elapsed time and productivity. The R-square for elapsed time was

Page 16: An Empirical Study of the Determinants of Software Productivity

16

0.323. This indicates that the independent variables explain about 32% of the variance in

the dependent variable. The R-square for productivity was 0.672. This indicates that the

independent variables explain about 67% of the variance in the dependent variable.

The results provide support for hypothesis one. The coefficient for 4GL is

significant for productivity (p=0.003) and not significant for elapsed time (p=0.364).

This indicates that the use of 4GL programming languages do reduce software elapsed

time and increase productivity. For hypothesis two, no significant impact of ICASE tools

was found on the software elapsed development time or productivity. This indicates that

use of ICASE tools do not have an impact on the software development elapsed time or

productivity. Hypothesis three was supported at the 0.05 level of significance, for elapsed

time, indicating that the increase in team size will lead to an increase in the software

development elapsed time (p=0.024). However, productivity was also supported at the

0.000 level of significance indicating that the increase in team size will lead to an

increase in productivity (p=0.000). These results may suggest a nonlinear relationship is

at work here. Hypothesis four was supported. The coefficient for platform is significant

for productivity (p=0.000) and not significant for elapsed time (p=0.271). This indicates

that the platform used has an impact of reducing software elapsed time and increase

productivity. Hypothesis five, which investigated development type volatility, was

supported, indicating that enhanced development lead to increases in software

development elapsed time. The coefficient for volatility is significant for productivity

(p=0.011) and not significant for elapsed time (p=0.217). This indicates that the

development type volatility has an impact of reducing software elapsed time and increase

productivity.

Page 17: An Empirical Study of the Determinants of Software Productivity

17

____________________

INSERT TABLE 2

____________________

In order to increase the confidence on the pair-wise comparisons for development type

volatility and platform type, the Tukey method was utilized in the elapsed time and

productivity model. Post hoc tests are not performed for generation because there are

fewer than three groups. Post hoc tests are not performed for LNSIZE because at least

one group has fewer than two cases.

These results can be seen in tables three and four.

____________________

INSERT TABLE 3

____________________

____________________

INSERT TABLE 4

____________________

DISCUSSION, LIMITATIONS AND CONCLUSIONS

We have investigated the factors impacting the software elapsed time and

productivity. Using the existing literature, we identified several variables that might

impact software elapsed time and productivity. Further, using a data set of 138 projects

for elapsed time and productivity, we empirically tested the impact of several factors on

these dependent variables.

Tabachnick and Fidell [90], state that for multiple continuous dependent

variables, multiple discrete independent variables and some continuous independent

Page 18: An Empirical Study of the Determinants of Software Productivity

18

variables, a researcher should run Factorial MANCOVA. MANOVA works best with

either highly negatively correlated dependent variables or moderately correlated

dependent variables when correlation is less than 0.6. Since our correlation between

productivity and elapsed time is a negative number, greater than 0.60, the use of

MANOVA is more powerful than using two ANOVAs.

The results provide support for hypothesis one. The coefficient for 4GL is

significant for productivity (p=0.003) and not significant for elapsed time (p=0.364).

This indicates that the use of 4GL programming languages do reduce software elapsed

time and increase productivity. For hypothesis two, no significant impact of ICASE tools

was found on the software elapsed development time or productivity. This indicates that

use of ICASE tools do not have an impact on the software development elapsed time or

productivity. Hypothesis three was supported at the 0.05 level of significance, for elapsed

time, indicating that the increase in team size will lead to an increase in the software

development elapsed time (p=0.024). However, productivity was also supported at the

0.000 level of significance indicating that the increase in team size will lead to an

increase in productivity (p=0.000). These results may suggest a nonlinear relationship is

at work here. Hypothesis four was supported. The coefficient for platform is significant

for productivity (p=0.000) and not significant for elapsed time (p=0.271). This indicates

that the platform used has an impact of reducing software elapsed time and increase

productivity. Hypothesis five, which investigated development type volatility, was

supported, indicating that enhanced development lead to increases in software

development elapsed time. The coefficient for volatility is significant for productivity

(p=0.011) and not significant for elapsed time (p=0.217). This indicates that the

Page 19: An Empirical Study of the Determinants of Software Productivity

19

development type volatility has an impact of reducing software elapsed time and increase

productivity.

ICASE tools have been known to have significant impact on productivity [9, 88].

In our case, the non-significant impact of ICASE tools on elapsed time and productivity

could be because of several reasons. First, over 90% of our data set did not contain

ICASE tools, and the limited number of ICASE tools might have jeopardized the

statistical significance. Second, we did not have information on the programmers’

ICASE tool experience. Subramanian and Zarnich [88] indicated that ICASE tool

experience is one of the contributing factors for lower productivity in ICASE tool

projects. Kemerer [59], highlighting the importance of ICASE tool experience, wrote the

following.

Integrated CASE tools have raised the stakes of the learning issue. Because these

tools cover the entire life cycle, there is more to learn, and therefore the study of

learning – and the learning-curve phenomenon – is becoming especially relevant.

Thus, we believe that lack of information about ICASE tool experience might have

impacted the significance results between the ICASE tool and software project elapsed

time and productivity effort hypotheses.

The type of programming language did not have an impact on software project

elapsed time (p=0.364), but did impact productivity (p=0.003). The descriptive statistics

of the data indicate that about 51% of the projects were developed in 4GL languages, and

49% of the projects were developed in 3GL programming languages. Thus, we believe

that our data was not very biased for any particular generation of programming

languages. The insignificance of programming language on software project elapsed

time could be due to several reasons. The first reason might be that the programmers’

Page 20: An Empirical Study of the Determinants of Software Productivity

20

experience in programming language might play a role. A few languages are more

difficult to learn than others. Second, the complexity of a language type might

compensate for any other advantages that it might offer, such as code and design reuse.

We observed very interesting results in regard to team size. First, an increase in team

size generally leads to higher software project elapsed time and decreased productivity.

This increase in software project elapsed time might be due to increased communication

requirements that in turn lead to decreased overall productivity.

The heterogeneity of software project elapsed time, development effort recording

techniques, and data quality of projects improve the external validity of our study at the

expense of internal validity of the study. Given that our data came from multiple

projects and multiple organizations, heterogeneity was expected. We do, however, note

that there may be certain limitations related to the internal validity of the study. There

may be other factors that may limit the generalization of the results of our study. First,

we had very few ICASE tools in our data set, which might have had an impact on both

internal and external validity of hypotheses related to ICASE tools. Second, we did not

have programmers’ experience information on ICASE tools and programming languages,

which is known to have an impact on the software development effort. Third, the non-

parametric dataset and parametric regression model might have provided us a lower fit,

and the regression results might in fact be improved by using non-parametric models.

Since our data is available in the public domain, we believe that future research may

address some of these issues.

Page 21: An Empirical Study of the Determinants of Software Productivity

21

REFERENCES

1. Albrecht, A.J. Measuring Application Development Productivity. Proceedings of the

IBM Applications Development Symposium, GUIDE/SHARE, (1979), 83-92.

2. Albrecht, A.J. AD/M Productivity Measurement and Estimate Validation, CIS & A

Guideline 313. New York: IBM Corporate Information Systems and Administration,

1984.

3. Albrecht, A.J. and Gaffney, J.E. Software Function, Source Lines of Code, and

Development Effort Prediction: A Software Science Validation. IEEE Transaction on

Software Engineering (6), (1983), 639-647.

4. Ang, S. and Slaughter, S.A. Work Outcomes and Job Design for Contract Versus

Permanent Information Systems Professionals on Software Development Teams. MIS

Quarterly (25:3), 321-350.

5. Angelis, L., Stamelos, I., and Morisio, M. Building a Software Cost Estimation Model

Based on Categorical Data. Proceedings of Seventh International Software Metrics

Symposium, London, UK, (2001), 4-15.

6. Banker, R., Chang, H., and Kemerer, C. Evidence on Economies of Scale in Software

Development. Information and Software Technology (36:5), (1994).

7. Banker, R.D., Charnes, A., and Cooper, W.W. Some Models for Estimating

Technical and Scale Inefficiencies in DEA. Management Science (20:9), (1984), 1078-

1092.

8. Banker, R.D., Datar, S.M., and Kemerer, C.F. A Model to Evaluate Variables

Impacting the Productivity of Software Maintenance Projects. Management Science

(37:1), (1991), 1-18.

9. Banker, R.D. and Kauffman, R.J. Reuse and Productivity in Integrated Computer-

Aided Software Engineering: An Empirical Study. MIS Quarterly (15:3), (1991), 375-

401.

10. Banker, R.D., Kauffman, R.J., and Kumar, R. An Empirical Test of Object-Based

Output Measurement Metrics in a Computer Aided Software Engineering (CASE)

Environment. Journal of Management Information Systems (8:3), (1992), 127-150.

11. Banker, R.D. and Kemerer, C.F. Scale Economies in New Software Development.

IEEE Transactions on Software Engineering (15:10), (1989), 1199-1205.

12. Banker, R.D. and Maindiratta, A. Piecewise Loglinear Estimation of Efficiency

Production Surfaces. Management Science (32:1), (1986), 126-135.

Page 22: An Empirical Study of the Determinants of Software Productivity

22

13. Banker, R. and Slaughter, S. The Moderating Effects of Structure on Volatility and

Complexity in Software Enhancement. Information Systems Research (11:3), (2000),

219-240.

14. Banker, R. and Slaughter, S. A Field Study of Scale Economies in Software

Maintenance. Management Science (43:12), (1997), 1709-1725.

15. Barki, H. and Hartwick, J. Interpersonal Conflict and its Management in Information

Systems Development. MIS Quarterly (25:2), (2001), 195-228.

16. Benbasat, I. and Vessey, I. Programmer and Analyst Time/Cost Estimation. MIS

Quarterly, (1980), 31-43.

17. Bergernon, F. and St-Arnaud, J.Y. Estimation of Information Systems Development

Efforts. Information and Management (22), (1992), 239-254.

18. Bielak, J. Improving Size Estimates Using Historical Data. IEEE Software,

(November/December 2000), 27-35.

19. Biffl, S. and Gutjahr, W. Influence of Team Size and Defect Detection Technique on

Inspection Effectiveness. Proceedings of Seventh International Software Metrics

Symposium, London, UK, (2001), 63-75.

20. Blackburn, J., Scudder, G., Van Wassenhove, L., and Hill, C. Time Based Software

Development. Integrated Manufacturing Systems (7:2), (1996a), 35-45.

21. Blackburn, J D., Scudder, G.D and Van Wassenhove, L.N. Improving Speed and

Productivity of Software Development: A Global Survey of Software Developers. IEEE

Transactions on Software Engineering (22:12), (1996b), 875-885.

22. Boehm, B.W. Software Engineering Economics. New Jersey: Prentice Hall Inc.,

1981.

23. Boehm, B.W. Understanding and Controlling Software Costs. IEEE Transaction on

Software Engineering (14:10), (1988), 1462-1477.

24. Boehm, B.W., Abts, C., and Chulani, S. Software Development Cost Estimation

Approaches: A Survey. Annals of Software Engineering (10:1), (2000), 177-205.

25. Boehm, B.W., Clar, B., Horowitz, C., Westland, C., Madachy, R., and Selby, R.

Cost Models for Future Software Life Cycle Processes: COCOMO 2.0.0. Annals of

Software Engineering (1:1), (1995), 1-30.

26. Brooks, F. The Mythical Man-Month. Reading, MA: Addison-Wesley, 1975.

Page 23: An Empirical Study of the Determinants of Software Productivity

23

27. Butchner, G. Addressing Software Volatility in the System Life Cycle.

Unpublished Doctoral Thesis, 1997.

28. Charnes, A., Cooper, W.W., and Rhodes, E. Evaluating Program and Managerial

Efficiency: An Application of Data Envelopment Analysis to Program Follow Through.

Management Science (27:6), (1981), 668-697.

29. Chrysler, E. Some Basic Determinants of Computer Programming Productivity.

Communications of the ACM (21:6), (1978), 472-483.

30. Chulani, S., Boehm, B. and Steece, B. Bayesian Analysis of Empirical Software

Engineering Cost Models. IEEE Transactions on Software Engineering (25:4),

(July/August 1999), 573-583.

31. Cusumano, M.A. and Kemerer, C.E. A Quantitative Analysis of U.S. and Japanese

Practice and Performance in Software Development. Management Science (16:11),

(1990), 1384-1406.

32. DeMarco, T. Structural Analysis and System Specification. New York, NY:

Yourdon Press, 1978.

33. DeMarco, T. Controlling Software Projects. Englewood Cliffs, NJ: Prentice Hall,

1982.

34. Desharnais, J.M. Analyze Statistique de la Productivite des Projets de

Developpement en Informatique a Partir de la Technique des Points de Fonction. Master

Thesis, (1988), Universite du Quebec a Montreal, Montreal, Quebec.

35. Dolado, J.J. A Validation of the Component-Based Method for Software Size

Estimation. IEEE Transactions on Software Engineering (28:10), (October 2000), 1006-

1021.

36. Fairley, R.E. Recent advances in software estimation techniques. International

Conference on Software Engineering, (1992), 382-391.

37. Faraj, S. and Sproull, L. Coordinating Expertise in Software Development Teams.

Management Science (46:12), (2000), 1554-1568.

38. Fenton, N. and Pfleeger, S. Software Metrics: A Rigorous & Practical Approach.,

PWS Publishing, 1997.

39. Finne, G.R., Witting, G.E., and Dersharnais, J.M. Estimation Software Development

Effort with Case-Based Reasoning. The 2nd

International Conference on Case-Based

Reasoning (ICCBR-97), Providence, RI, (1997), 13-32.

Page 24: An Empirical Study of the Determinants of Software Productivity

24

40. Foss, W.B. Fast, Faster, Fastest Development. Computerworld, (27:22), (1993), 81-

83.

41. Fried, L. Team Size and Productivity in Systems Development. Journal of

Information Systems Management (8:3), (1991), 27-41.

42. Gamota, G. and Frieman, W. Gaining Ground: Japan’s Strides in Science and

Technology. Cambridge, MA: Ballinger, 1988.

43. Glass, R.L. The Realities of Software Technology Payoffs. Communications of the

ACM (42:2), (1999), 74-79.

44. Gregory, W. and Wojtkowski, W. Applications Software Programming with Fourth-

Generation Languages. Boston: Boyd and Fraser, 1990.

45. Greiner, L. Is Development a Slave to the Platform? Computing Canada (30:17),

(2004), 18.

46. Hager, J.A. Software Cost Reduction Methods in Practice: A Post-Mortem Analysis.

Journal of Systems and Software, (14:2), (1991), 67-77.

47. Hammer, M. and Champy, J. Reengineering the Corporation. Allen and Unwin,

1994.

48. Hastings, T.E. and Sajeev, A.S. A Vector-Based Approach to Software Size

Measurement and Effort Estimation. IEEE Transactions on Software Engineering (27:4),

(2001), 337-350.

49. Heemstra, F.J. Software cost estimation models. Proceedings of the 5th

Jerusalem

Conference on Information Technology (Cat. No.90TH0326-9), Next Decade in

Information Technology, (1990), 286 -297.

50. Howard, A. Agile Software Development: The Business of Innovation. Computer,

(September 2001), 23-24.

51. Hu, Q., Plant, R., and Hertz, D. Software Cost Estimation Using Economic

Production Models. Journal of Management Information Systems (15:1), (1998), 143-

163.

52. IFPUG, Function Point Counting Practices Manual, Release 4. 1997.

53. Jeffery, D.R. and Lawrence, M.J. An Inter-Organisational Comparison of

Programming Productivity. Proceedings of 4th

International Conference of Software

Engineering, (1979), 369-377.

Page 25: An Empirical Study of the Determinants of Software Productivity

25

54. Jeffery, R., Ruhe, M. and Wieczorek, I. A Comparative Study of Two Software

Development Cost Modelling Techniques using Multi-Organizational and Company-

Specific Data. Information and Software Technology (42), (2000), 1009-1016.

55. Johnson, C. Software in Japan. Electronic Engineering Times, (1985), 1.

56. Jones, C. Programming Productivity. New York, NY: McGraw-Hill, Inc., 1986.

57. June, E.S. and Lee, J.K. Quasi-Optimal Case Selective Neural Network Model for

Software Effort Estimation. Expert Systems with Application (21), (2001), 1-14.

58. Keil, M., Tan, B.C.Y., Wei, K.K, and Saarinen, T. A Cross-Cultural Study on

Escalation of Commitment Behavior in Software Projects. MIS Quarterly (24:2), (2000),

299-325.

59. Kemerer, C.F. How the Learning Curve Affects CASE Tool Adoption. IEEE

Software, (May 1992), 23-28.

60. Kemerer, C.F. Reliability of Function Points Measurement: A Field Experiment.

Communications of the ACM (36:2), (1993), 85-97.

61. Kemerer, C.F. Progress, Obstacles, and Opportunities in Software Engineering

Economics. Communications of the ACM (41:8), (1998), 63-66.

62. Laranjeira, L.A. Software Size Estimation of Object-Oriented Systems. IEEE

Transactions on Software Engineering (16:5), (1990), 510-522.

63. Leon-Garcia, A. Probability and Random Processes for Electrical Engineering.

Reading, Massachusetts: Addison-Wesley Publishing Company, 1994.

64. Lim, W.C. Effects of Reuse on Quality Productivity and Economics. IEEE Software

(11:5), (1994), 23-30.

65. Littlewood, B. and Strigini, L. Validation of Ultrahigh Dependability for Software-

Based Systems. Communications of the ACM, (36:11), (1993), 69-80.

66. Lokan, C.J. An Empirical Analysis of Function Point Adjustment Factors.

Information and Software Technology (42), (2000), 649-660.

67. Low, G.C. and Jeffery, D.R. Function Points in the Estimation and Evaluation of

Software Process. IEEE Transactions on Software Engineering (16:1), (1990), 81-84.

68. Mahmood, M.A., Pettingell, K.J., and Shaskevich. Measuring Productivity of

Software Projects: A Data Envelope Analysis Approach. Decision Sciences (27:1),

(1996), 57-80.

Page 26: An Empirical Study of the Determinants of Software Productivity

26

69. Matson, J.E., Barrett, B.E., and Mellichamp, J.M. Software Development Cost

Estimation Using Function Points. IEEE Transactions on Software Engineering (20:4),

(April 1994), 275-287.

70. Meyer, B. Object Success. Prentice Hall, 1995.

71. Mimno, P. Power to the Users. Computerworld, (April 8, 1985), 11-28.

72. Pendharkar, P.C. and Rodger, J.A. A Probabilistic Model and a Belief Updating

Procedure for Predicting Software Development Effort. IEEE Transactions on Software

Engineering, (31:7) (2005), 615-624.

73. Pendharkar, P.C. and Rodger, J.A. An Empirical Study of the Impact of Team Size on

Software Development Effort. Information Technology and Management, ((2007).

74. Pendharkar, P.C. and Rodger, J.A. The Relationship between Software Development

Team Size and Software Development Cost. Communications of the ACM, (forthcoming,

2007).

75. Pendharkar, P.C. and Subramanian, G.H. Connectionist Models for Learning,

Discovering and Forecasting Software Effort: An Empirical Study. The Journal of

Computer Information Systems (43:1), (2002), 7-14.

76. Putman, L.H. A General Empirical Solution to the Macro Software Sizing and

Estimating Problem. IEEE Transactions on Software Engineering (4:4), (1978), 345-

361.

77. Reymond-Peyle, D. Software Development Methods and Tools: Some Trends and

Issues. Software Engineering Journal, (1996), 99-103.

78. Roberts, T.L., Gibson, M.L., Field, K.T., and Rainer, K. Factors that Impact

Implementing a System Development Methodology. IEEE Transactions on Software

Engineering (24:8), (1998), 640-649.

79. Rubin, H.A. Macro-Estimation of Software Development Parameters: The

ESTIMACS System. SOFTAIR Conference on Software Development Tools,

Techniques, and Alternatives, Arlington, VA, (1983), 109-118.

80. Rubin, H.A. The Art and Science of Software Estimation: Fifth Generation

Estimators. Proceedings of the 7th

Annual ISPA Conference, Orlando, FL, (1985), 56-72.

81. Sengupta, K., Abdel-Hamid, T.K., and Bosley, M. Coping with Staffing Delays in

Software Project Management: An Experimental Investigation. IEEE Transactions on

Systems, Man and Cybernetics-Part A: Systems and Humans (29:1), (January 1999), 77-

91.

Page 27: An Empirical Study of the Determinants of Software Productivity

27

82. Shelly, G.B., Cashman, T.J., and Rosenblatt, H.J. Systems Analysis and Design, 7th

Edition. Boston: Thompson-Course Technology.

83. Shoval, P. and Feldman, O. A Combination of the Mk-II Function Points Software

Estimation Method with the ADISSA Methodology for Systems Analysis and Design.

Information and Software Technology (30:13), (1997), 855-865.

84. Smith, R.K., Hale, J.F., and Parrish, A.S. An Empirical Study Using Task

Assignment Patterns to Improve the Accuracy of Software Effort Estimation. IEEE

Transactions on Software Engineering (27:3), (March 2001).

85. Srinivasan, K. and Fisher, D. Machine Learning Approaches to Estimate Software

Development Effort. IEEE Transactions on Software Engineering (21:2), 126-137.

86. Stair, R.M. and Reynolds, G.W. Principles of Information Systems. New York, NY:

Thomson-Course Technology, 2003.

87. Stamelos, I., Angelis, L., Morisio, M., Sakellaris, E., and Bleris, G.L. Estimating

the development cost of custom software. Information & Management, 40, (2003), 729-

741.

88. Subramanian, G.H. and Zarnich, G.E. An Examination of Some Software

Development Effort and Productivity Determinants in ICASE Tool Projects. Journal of

Management Information Systems (12:14), (1996), 143-160.

89. Symons, C.R. Function Point Analysis: Difficulties and Improvements. IEEE

Transactions on Software Engineering (14:1), (1988), 2-11.

90. Tabachnick, B.G. and Fidell, L.S. Using Multivariate Statistics. Needham Heights,

MA: Allyn and Bacon, 2001.

91. Tegarden, D.P., Sheetz, S.D., and Monarchi, D.E. The Effectiveness of Traditional

Metrics for Object-Oriented Systems. Proceedings of the Twenty-Fifth Hawaii

International Conference on System Sciences (IV), (January 1992), 359-368.

92. Thomsett, R. When the Rubber Hits the Road: A Guide to Self-Managing Teams.

American Programmer, (1994), 37-45.

93. Thomsett, R. Managing Implications of Object Oriented Development. ACS

Newsletter, (1990), 10-12.

94. Unhelkar, B. and Mamdapur, G. Practical Aspects of Using a Methodology: A Road

Map Approach. Report on Object Analysis and Design (ROAD) (2:2), (1995), 34-36, 54.

95. Unhelkar, B. Process Quality Assurance for UML-Based Projects. Boston: Addison

Wesley, 2003.

Page 28: An Empirical Study of the Determinants of Software Productivity

28

96. Vessey, I. On Program Development Effort and Productivity. Information and

Management (10), (1986), 255-266.

97. Vessey, I., Jarvenpaa, S.L., and Tractinsky, N. Evaluation of Vendor Products:

CASE Tools as Methodology Companions. Communications of the ACM (35:4), (1992),

90-105.

98. Wrigley, C.D. and Dexter, A.S. A Model of Measuring Information System Size.

MIS Quaterly (15:2), (1991), 245-257.

99. Yourdon, E. Decline and Fall of the American Programmer. New Jersey: Prentice

Hall, 1993.

100. Zelkowitz, M.V. et al. Software Engineering Practices in the U.S. and Japan. IEEE

Computer, (1984), 57-66.

101. Zmud, R.W. Management of Large Software Development Efforts. MIS Quarterly,

(1980), 45-55.

Page 29: An Empirical Study of the Determinants of Software Productivity

29

USA

Aus

tralia

Cana

da UK

Neth

erland

s

Franc

e

Bra

zil

Japa

nIn

dia

Oth

er

Not S

pecifie

d

Country

Nu

mb

er

of

Pro

jects

FIGURES and TABLES

Figure 1: Determinants of Elapsed Software Development Time and Productivity

Figure 2: ISBSG release 7 project data origin by country

Elapsed

Time/

Productivity

Team Size

Development

Language

Development

Platform

Development Type Volatility

H

3

H 1

H

2

H 5

H

4

I-CASE

Page 30: An Empirical Study of the Determinants of Software Productivity

30

0

100

200300

400

500

Bankin

g

Public

Adm

in.

Fin

ancia

l

Insura

nce

Manufa

ctu

ring

Energ

y &

Ele

ctr

ic

Serv

ices

Com

pute

rs &

Com

m.

Oth

er

Mis

sin

g

Industry

Nu

mb

er

of

Pro

jects

0

100

200

300

400

500

600

700

800

A B C

Data Quality

Nu

mb

er

of

Pro

jects

Figure 3: Data quality distribution of the ISBSG release 7 project data

Figure 4: Industry type distribution in the ISBSG release 7 project data

Page 31: An Empirical Study of the Determinants of Software Productivity

31

Programming Language Type

0

10

20

30

40

50

60

70

80

90

3GL 4GL

Programming Language

Nu

mb

er

of

Pro

jects

Programming Language Type

Figure 5: Distribution of projects by type of programming language for Elapsed

Time and Productivity

Type of Case Tool

0

20

40

60

80

100

120

140

Other ICASE

Case Tool

Nu

mb

er

of

Pro

jects

Type of Case Tool

Figure 6: Distribution of projects by type of CASE tool used for Elapsed Time and

Productivity

Page 32: An Empirical Study of the Determinants of Software Productivity

32

Industry Type

0

5

10

15

20

25

30

35

Agricul

ture

Banking

Che

mical

s

Com

pute

rs/C

omm

unicat

ion

Energ

y/Ele

ctric

ity

Finan

cial

Insu

ranc

e

Man

ufac

turin

g

Med

ical

Public

Adm

inistra

tion

Service

s

Who

lesa

le/R

etai

l

Oth

er

Missing

Industry

Nu

mb

er

of

Pro

jects

Industry Type

Figure 7 Distribution of projects by industry type for Elapsed Time and

Productivity

Data Quality Rating

0

10

20

30

40

50

60

70

80

90

100

A B

Data Quality Rating

Nu

mb

er

of

Pro

jects

Data Quality Rating

Figure 8: Data quality distribution Elapsed Time

Page 33: An Empirical Study of the Determinants of Software Productivity

33

Development Platform

0

10

20

30

40

50

60

70

MF MR PC

Development Platform

Nu

mb

er

of

Pro

jects

Development Platform

Figure 9: Development Platform distribution for Elapsed Time and Productivity

Development Type

0

10

20

30

40

50

60

70

80

90

100

Enhancement New Development Re-Development

Development Type

Nu

mb

er

of

Pro

jects

Development Type

Figure 10: Development Type distribution for Elapsed Time and Productivity

Page 34: An Empirical Study of the Determinants of Software Productivity

34

Table 1: Multivariate Tests (b)

Effect Value F(a) Hypothesis

degree fr

Error df Sig.

Intercept Pillai's Trace .646 99.581 2.000 109.000 .000*

Wilks' Lambda .354 99.581 2.000 109.000 .000*

Hotelling's Trace 1.827 99.581 2.000 109.000 .000*

Roy's Largest Root 1.827 99.581 2.000 109.000 .000*

Development type Pillai's Trace .098 2.825 4.000 220.000 .026**

Wilks' Lambda .902 2.870 4.000 218.000 .024**

Hotelling's Trace .108 2.913 4.000 216.000 .022**

Roy's Largest Root .106 5.832 2.000 110.000 .004*

Development platform Pillai's Trace .326 10.720 4.000 220.000 .000*

Wilks' Lambda .675 11.830 4.000 218.000 .000*

Hotelling's Trace .479 12.940 4.000 216.000 .000*

Roy's Largest Root .475 26.129 2.000 110.000 .000*

I-CASE tool Pillai's Trace .010 .532 2.000 109.000 .589

Wilks' Lambda .990 .532 2.000 109.000 .589

Hotelling's Trace .010 .532 2.000 109.000 .589

Roy's Largest Root .010 .532 2.000 109.000 .589

Generation Pillai's Trace .086 5.143 2.000 109.000 .007*

Wilks' Lambda .914 5.143 2.000 109.000 .007*

Hotelling's Trace .094 5.143 2.000 109.000 .007*

Roy's Largest Root .094 5.143 2.000 109.000 .007*

Team Size Pillai's Trace .693 2.775 42.000 220.000 .000*

Wilks' Lambda .410 2.916 42.000 218.000 .000*

Hotelling's Trace 1.189 3.058 42.000 216.000 .000*

Roy's Largest Root .916 4.799 21.000 110.000 .000* * significant at the .01 level. ** significant at the .05 level. a Exact statistic b Design: Intercept+Development type+Development platform+I-CASE tool+Generation+Team Size

Page 35: An Empirical Study of the Determinants of Software Productivity

35

Table 2: Tests of Between-Subjects Effects

Source Dependent Variable Type III

Sum of

Squares

df Mean

Square

F Sig.

Corrected Model Project Elapsed Time 1770.704a 27 65.582 1.945 .009*

Productivity 115.786b 27 4.288 8.359 .000*

Intercept Project Elapsed Time 1658.895 1 1658.895 49.204 .000*

Productivity 83.106 1 83.106 161.990 .000*

Development Type Project Elapsed Time 104.390 2 52.195 1.548 .217

Productivity 4.802 2 2.401 4.680 .011**

Development Platform Project Elapsed Time 89.171 2 44.585 1.322 .271

Productivity 26.252 2 13.126 25.585 .000*

I-CASE tool Project Elapsed Time 6.344 1 6.344 .188 .665

Productivity .479 1 .479 .934 .336

Generation Project Elapsed Time 28.023 1 28.023 .831 .364

Productivity 4.705 1 4.705 9.171 .003*

Team Size Project Elapsed Time 1295.088 21 61.671 1.829 .024**

Productivity 48.736 21 2.321 4.524 .000*

Error Project Elapsed Time 3708.616 110 33.715

Productivity 56.433 110 .513

Total Project Elapsed Time 15219.960 138

Productivity 589.846 138

Corrected Total Project Elapsed Time 5479.320 137

Productivity 172.219 137 * significant at the .01 level. ** significant at the .05 level. a R Squared = .323 (Adjusted R Squared = .157) b R Squared = .672 (Adjusted R Squared = .592)

Table 3: Mean Differences for Development Type Volatility for Productivity

Redevelopment Enhancement

Enhancement 0.330 (p=0.548)

New 0.960 (p=0.026)** 0.270 (p=0.127)

** The mean difference is significant at the .05 level.

Page 36: An Empirical Study of the Determinants of Software Productivity

36

Table 4: Mean Difference for Platform Type for Productivity

Main Frame Personal Computer

Personal Computer 1.304 (p=0.000)*

Mid-Range 0.321 (p=0.115) 0.983 (p=0.000)*

* The mean difference is significant at the .01 level.