Unraveling the code: an in-depth empirical study on the impact of development practices in auxiliary functions implementation | Software Quality Journal Skip to main content
Log in

Unraveling the code: an in-depth empirical study on the impact of development practices in auxiliary functions implementation

  • Research
  • Published:
Software Quality Journal Aims and scope Submit manuscript

Abstract

Auxiliary functions in software systems, often overlooked due to their perceived simplicity, play a crucial role in overall system reliability. This study focuses on the effectiveness of agile practices, specifically the pair programming and the test-first programming practices. Despite the importance of these functions, there exists a dearth of empirical evidence on the impact of agile practices on their development, raising questions about their potential to enhance correctness without affecting time-to-market. This paper aims to bridge this gap by comparing the application of agile practices with traditional approaches in the context of auxiliary function development. We conducted six experiments involving 122 participants (85 novices and 37 professionals) who used both traditional and agile methods to develop six auxiliary functions across three different domains. Our analysis of 244 implementations suggests the potential benefits of agile practices in auxiliary function development. Pair programming showed a tendency towards improved correctness, while test-first programming did not significantly extend the total development time, particularly among professionals. However, these findings should be interpreted cautiously as they do not conclusively establish that agile practices outperform traditional approaches universally. As indicated by our results, the potential benefits of agile practices may vary depending on factors such as the programmer’s experience level and the nature of the functions being developed. Further research is needed to fully understand the contexts in which these practices can be most effectively applied and to address the potential limitations of our study.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Subscribe and save

Springer+ Basic
¥17,985 /Month
  • Get 10 units per month
  • Download Article/Chapter or eBook
  • 1 Unit = 1 Article or 1 Chapter
  • Cancel anytime
Subscribe now

Buy Now

Price includes VAT (Japan)

Instant access to the full article PDF.

Fig. 1
Fig. 2
Fig. 3

Similar content being viewed by others

Availability of data and materials

The authors declare that the data (programs, test sets, function descriptions, and more) supporting the findings of this study are available within the paper and are accessible via the following link: http://www.ict.unifesp.br/fsilveira/data/SoftwareTestingExperiment_data.zip.

Notes

  1. http://junit.org/ – accessed in July, 2023.

  2. Duration typically refers to the total time required for individuals, pairs, and teams of developers to complete tasks.

  3. Effort is generally calculated by summing the time spent by each individual in a pair or team of developers, akin to our method of measuring effort, i.e., considering twice the time spent for pairs of programmers.

  4. Only a single subject that participated in our study did not respond to our survey and was thus not considered in the graphs.

  5. http://commons.apache.org/ – accessed in July, 2023.

  6. This function is cited because its source code is available online. Nonetheless, it is reasonable to presume that the other functions listed in Sect. 1 are also of equivalent size. For example, a PlayStation-like leap year detection function requires only a small number of code lines to be implemented.

  7. All experimental artifacts, encompassing subjects’ programs, test sets, function descriptions, and more, are accessible via the following link: http://www.ict.unifesp.br/fsilveira/data/SoftwareTestingExperiment_data.zip.

  8. http://eclipse.org/ – accessed in July, 2023.

  9. http://cobertura.github.io/cobertura/ – accessed in July, 2023.

  10. http://www.r-project.org/ - 07/06/2021.

References

Download references

Funding

Partial financial support was received from Fundação de Amparo à Pesquisa do Estado de São Paulo (FAPESP) and Conselho Nacional de Desenvolvimento Científico e Tecnológico (CNPq).

Author information

Authors and Affiliations

Authors

Contributions

All authors contributed equally to this work (study conception, design, material preparation, data collection and analysis, and writing).

Corresponding author

Correspondence to Fábio Silveira.

Ethics declarations

Conflicts of interest

The authors have no relevant financial or non-financial interests to disclose.

Additional information

Publisher's Note

Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.

Rights and permissions

Springer Nature or its licensor (e.g. a society or other partner) holds exclusive rights to this article under a publishing agreement with the author(s) or other rightsholder(s); author self-archiving of the accepted manuscript version of this article is solely governed by the terms of such publishing agreement and applicable law.

Reprints and permissions

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Lemos, O., Silveira, F., Ferrari, F. et al. Unraveling the code: an in-depth empirical study on the impact of development practices in auxiliary functions implementation. Software Qual J 32, 1137–1174 (2024). https://doi.org/10.1007/s11219-024-09682-4

Download citation

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11219-024-09682-4

Keywords

Navigation