Developers’ need for the rationale of code commits: An in-breadth and in-depth study

Khadijah Al Safwan*, Mohammed Elarnaoty, Francisco Servant

*Corresponding author for this work

Research output: Contribution to journalArticlepeer-review

8 Scopus citations

Abstract

Communicating the rationale behind decisions is essential for the success of software engineering projects. In particular, understanding the rationale of code commits is an important and often difficult task. Although the software engineering community recognizes rationale need and importance, there is a lack of in-depth study of rationale for commits. To bridge this gap, we apply a mixed-methods approach, interviewing software developers and distributing two surveys, to study their perspective of rationale for code commits. We found that software developers need to investigate code commits to understand their rationale when working on diverse tasks. We also found that developers decompose the rationale of code commits into 15 components, each is differently needed, found, and recorded. Furthermore, we explored software developers’ experiences with rationale need, finding, and recording. We discovered factors leading software developers to give up their search for rationale of code commits. Our findings provide a better understanding of the need for rationale of code commits. In light of our findings, we discuss and present our vision about rationale of code commits practitioners’ documentation, tools support, and documentation automation. In addition, we discuss the benefits of analyzes that could arise from good documentation of rationale for code commits.

Original languageEnglish
Article number111320
JournalJournal of Systems and Software
Volume189
DOIs
StatePublished - Jul 2022
Externally publishedYes

Bibliographical note

Publisher Copyright:
© 2022

Keywords

  • Software changes rationale
  • Software evolution and maintenance

ASJC Scopus subject areas

  • Software
  • Information Systems
  • Hardware and Architecture

Fingerprint

Dive into the research topics of 'Developers’ need for the rationale of code commits: An in-breadth and in-depth study'. Together they form a unique fingerprint.

Cite this