An Empirical Study of the Content and Quality of Sprint Retrospectives in Undergraduate Team Software Projects
A fundamental component of the Agile process—widely used in both software engineering courses and industry—is the \emph{retrospective}, or \emph{retro}, in which teams come together at the end of a sprint to reflect on their teams’ performance. We conducted an empirical study to explore three research questions concerning retros in undergraduate team projects: (1) What do students reflect on? (2) What is the quality of their reflections? (3) How do teams’ retros vary in terms of content and quality? Our study analyzed a corpus of 963 statements documented in the retros of 32 undergraduate software teams (\textit{n} = 182 students) enrolled in four software engineering courses at two North American universities. A content analysis revealed that teams reflected most often on their work, communication, and collaboration practices. Nearly a third of teams’ reflections focused on their general work practices, while nearly half focused on specific areas of the software development lifecycle—most prominently, pull requests, issues, and coding/testing/debugging. An analysis of the quality of teams’ retros reflections showed that only 13% provided justification for a strategy to be stopped, continued, or started. An analysis of team-by-team results indicated significant differences in teams’ retro content and quality. We compare these results to previous studies of retros in academia and industry, and consider their implications for software engineering education.