Actual vs. perceived effect of software engineering practices in the Italian industry

https://doi.org/10.1016/j.jss.2010.05.077Get rights and content

Abstract

A commonly cited limitation of software engineering research consists in its detachment from the industrial practice. Several studies have analyzed a number of practices and identified their benefits and drawbacks but little is known about their dissemination in the industry. For a set of 18 practices commonly studied in the literature, this paper investigated diffusion, effect on the success, and perceived usefulness in 62 actual industrial projects from 28 Italian IT companies. In particular we proposed a classification of these perceptions and we were able to classify 14 practices. We found statistical evidence that 7 factors have an actual effect (positive for 6 of them, negative for one). Moreover 77% (10 out of 13) of the known good practices (e.g., importance of good project schedule or complete requirements’ list) are perceived consistently by the industry. For a few other practices (having a champion's support, using metrics, reducing quality) we noticed a lack of awareness in the industry. Starting from these observations we propose guidelines for industrial practice and suggestions for academic research.

Introduction

According to the IEEE glossary “Software engineering is the application of a systematic, disciplined, quantifiable approach to the development, operation, and maintenance of software”. Usually it encompasses the activities of a team led by a project manager and the interaction with customers in a competitive and volatile environment.

The first problems with software development were identified during the NATO Garmisch conference in 1968. Since then academic research is focused on defining better practices for software development. However, the rate of software project failures remains high (CHAOS).

Researchers identified several software engineering practices – both useful and harmful – and their expected effects on a software process outcome. Unfortunately the actual adoption of practices is not driven by scientific empirical knowledge. One reason for this could be poor communication between academic and industrial worlds. Single case studies and joint projects do not provide complete feedback from practitioners on the adopted practices and their usefulness or applicability to daily software development process. At the same time academy keeps developing solutions that perform well in some projects, but there is little knowledge about how real or utopian these solutions are in industrial software development.

Among the factors influencing the adoption of software engineering practices an important role is played by their perceived usefulness. This is one of the main factors identified in the technology acceptance model (TAM). TAM provides a framework describing how users come to accept and use a technology (Davis, 1989).

The main goal of the work presented in this paper is to assess the perceived effects of several well-known software engineering practices on the success or failure of the projects. More in detail we focused on answering the following two research questions:

  • RQ1: Which factors do affect the success or failure of software projects?

  • RQ2: What is the perceived effect of presence (or absence) of a factor X on a project's outcome?

The assessment was performed on the basis of a series of interviews with practitioners working in the industry. In particular, as far as the practitioners’ perception is concerned (RQ2), we devised a classification schema in order to objectively evaluate the appreciation of best practices.

The paper provides several contributions:

  • it presents additional empirical evidence on the objective effectiveness of best practices,

  • it describes the industrial acknowledgment of best practices, and

  • it defines a taxonomy for the perception of practices.

The paper is organized as follows: Section 2 presents the background of the study, the conceptual model and gives an overview of related work. In Section 3 we define the study, including factor taxonomy, hypotheses formulation, sampling strategy, data measurement and analysis techniques. Section 4 presents data analysis. In Section 5 we discuss the findings of the study. In Section 6 we address threats to validity. Conclusion is presented in Section 7.

Section snippets

Background and related work

In this section we describe studies related to the analysis of software engineering practices and their industry-wide adoption. According to the PMBOK Guide (PMI, 2004) “A project is a temporary endeavor undertaken to create a unique product, service, or result”. We use this definition for software projects too. We organize the observable characteristics of a project into a conceptual model, presented in Fig. 1. While we adopt – on purpose – a terminology that is consistent with that used in

Study definition

In this section we present the detailed research hypotheses. Before that we present a model to evaluate the effect of factors that will be used in defining the hypotheses.

Descriptive statistics

We have gathered answers from 33 respondents, both project managers and developers, via phone and email contacts. In total we have data about 33 successful projects and 29 failed ones from 28 companies.3 Response rate was about 25%, which is good compared to similar studies. The selection of companies was performed through random sampling; we checked whether the distribution of company size in our sample resulted

Discussion

We have conducted a case–control study to verify the actual effectiveness of project success factors (RQ1) and the perception of the same factors by software developers (RQ2). Results are summarized in Table 8. Answers to RQ1 are either “Yes” or “No”, indicating whether the factor had a statistically significant influence on the outcome. Odds ratios are also reported: values greater than 1 indicate a success factor while values lower than 1 indicate a failure factor. Answers to RQ2 are the

Threats to validity

We discuss here the threats to validity of this study.

Conclusion validity concerns the relationship between the treatment and the outcome. We have used proper non-parametric statistical tests for data analysis and, when necessary, applied α-level corrections to mitigate the possibility of Type I errors.

An important threat to internal validity is represented by the possible lack of accuracy in independent variables’ measurement. The independent variables consisted in determining whether a given

Conclusions

This paper reported results from a case–control study aimed at understanding the effect of some well-known practices on the outcome of software projects. We have analyzed and compared both the actual effect and the perceived effect of these factors. For a number of factors there is complete agreement between perceived and actual effect, and the effect is statistically significant. We conclude that these practices should be recommended for all software projects: defining precisely the

Evgenia Egorova is a Post-Doc researcher at the Politecnico di Torino, Italy. Her research interests include empirical software engineering, software metrics, and software product and project management. She received PhD degree from the Politecnico di Torino, MSc degree from the Technical University Hamburg-Harburg, Germany, and Bachelor's degree from the Moscow State University of Economics, Statistics and Informatics, Russia. She spent one year working at Siemens Mobiles, Munich, Germany.

References (36)

  • K.R. Linberg

    Software developer perceptions about software project failure: a case study

    Journal of Systems and Software

    (1999)
  • A. Agresti

    An Introduction to Categorical Data Analysis

    (2007)
  • R. Berntsson-Svensson et al.

    Successful software project and products: an empirical investigation

    Proceedings of the ACM/IEEE International Symposium on Empirical Software Engineering

    (2006)
  • V. Basili et al.

    The future engineering of software: a management perspective

    IEEE Computer Magazine

    (1991)
  • F. Brooks

    The Mythical Man-Month: Essays on Software Engineering

    (1995)
  • Camera di commercio (CCIAA) di Torino – UNIMATICA di Torino, 2006. L’ICT in Provincia di Torino: La sfida...
  • M. Cantamessa et al.

    Il settore ICT in Piemonte

    (2004)
  • D. Coggon et al.

    Epidemiology for the Uninitiated

    (1997)
  • CHAOS reports from the Standish Group http://www.standishgroup.com. Biennial reports require subscription, sample from...
  • D. Damian et al.

    An industrial case study of immediate benefits of requirements engineering process improvement at the Australian Center for Unisys Software

    Empirical Software Engineering

    (2004)
  • F.D. Davis

    Perceived usefulness, perceived ease of use, and user acceptance of information technology

    MIS Quarterly

    (1989)
  • DeMarco, T., Lister, T., 1987. Peopleware: Productive Projects and Teams, Dorset...
  • T. Dybå

    Factors of software process improvement success in small and large organizations: an empirical study in the Scandinavian Context

  • T. Field

    When BAD things happen to GOOD projects

    CIO Magazine

    (1997)
  • R.A. Fisher

    Statistical Methods for Research Workers

    (1954)
  • C. Holland et al.

    A critical success factors model for ERP implementation

    IEEE Software

    (1999)
  • L. Huang et al.

    Determining how much software assurance is enough: a value-based approach

    Proceedings of the 7th International Workshop on Economics-driven Software Engineering Research

    (2005)
  • F. Hubert et al.

    Requirements engineering as a success factor in software projects

    IEEE Software

    (2001)
  • Cited by (13)

    • Evaluating different families of prediction methods for estimating software project outcomes

      2016, Journal of Systems and Software
      Citation Excerpt :

      Most previous research on the prediction of software project outcome has focused on the identification of the software development characteristics or practices which contribute to project success (Abe et al., 2006; Cerpa et al., 2010) or in the probability of occurrence of threats (Smite, 2007). There are characteristics or practices that should be used by all software projects in order to be successful, but others may have different effects depending on the context of the project (Egorova et al., 2010). Some researchers suggest that it is essential to identify the characteristics of successful projects in order to determine similarities (Cerpa et al., 2010; Procaccino et al., 2001; Wohlin and Andrews, 2005).

    • Cross-factor analysis of software engineering practices versus practitioner demographics: An exploratory study in Turkey

      2016, Journal of Systems and Software
      Citation Excerpt :

      For example, a recent paper (Garousi and Zhi, 2013) gathered the opinions of 246 Canadian software engineers in 2013 about software testing practices and reported various findings, e.g., (1) The importance of testing-related training is increasing over years, (2) Functional and unit testing are two common test types that receive the most attention and effort. While the data and findings reported by existing surveys, (e.g., Beck and Perkins, 1983, Zelkowitz et al., 1984, Curtis et al., 1988, Cusumano and Kemerer, 1990, Blackburn et al., 1996, Singer et al., 1997, Holt, 1997, Dutta et al., 1999, Groves et al., 2000, Cusumano et al., 2003, Aytaç et al., 2003, Denger et al., 2007, Aykol, 2009, Sökmen, 2010, Egorova et al., 2010, Kirk and Tempero, 2012, Vonken et al., 2012, Garousi et al., 2014, Garousi and Zhi, 2013), are interesting, most of those studies have studied SE practices individually, e.g., software testing practices in Garousi and Zhi (2013). In addition to such trends and findings, it is also important to understand the cross-factor relationship of SE practices, e.g., what are the correlations among the degree of challenges experienced in various SE phases/tasks?

    • A survey of software engineering practices in Turkey

      2015, Journal of Systems and Software
    • Perceived causes of software project failures - An analysis of their relationships

      2014, Information and Software Technology
      Citation Excerpt :

      In the case of software project failure, the project environment is commonly related to the project complexity [18,42,43], organizational factors [37], available assets [12,37,42–44], policies [43], structure [43], business domain [27,37,45] and technology [45]. The people related causes [27] cover social interaction [27,42,45,46], skills [13,42,45,46], and motivation [16,47]. McLeod and MacDonell [27] indicate that social interaction affects the outcome of software projects.

    View all citing articles on Scopus

    Evgenia Egorova is a Post-Doc researcher at the Politecnico di Torino, Italy. Her research interests include empirical software engineering, software metrics, and software product and project management. She received PhD degree from the Politecnico di Torino, MSc degree from the Technical University Hamburg-Harburg, Germany, and Bachelor's degree from the Moscow State University of Economics, Statistics and Informatics, Russia. She spent one year working at Siemens Mobiles, Munich, Germany.

    Maurizio Morisio is an associate professor at the Politecnico di Torino, Turin, Italy. He received the PhD degree in software engineering and the MSc degree in electronic engineering from the Politecnico di Torino. He spent two years working with the Experimental Software Engineering Group at the University of Maryland, College Park. His current research interests include experimental software engineering, service engineering, software reuse metrics and models, agile methodologies, and commercial off-the-shelf processes and integration. He is a consultant for improving software production through technology and processes. He is a member of the IEEE Computer Society.

    Marco Torchiano is an assistant professor at Politecnico di Torino, Italy; he has been post-doctoral research fellow at Norwegian University of Science and Technology (NTNU), Norway. He received an MSc and a PhD in Computer Engineering from the Politecnico di Torino, Italy. He published more than 50 research papers in international journals and conferences. He is the co-author of the book ‘Software Development—Case studies in Java’ from Addison-Wesley, and co-editor of the book ‘Developing Services for the Wireless Internet’ from Springer. His current research interests are: empirical software engineering, OTS-based development and software engineering for mobile and wireless applications.

    View full text