一句话:通过访谈揭示高可靠性组织中软件失败学习实践、障碍及对流程与工具的启示。
软件失败可能带来严重后果,但组织如何从失败中学习仍缺乏深入产业实证。本文以某国家航天研究中心为案例,对10名研究软件工程师进行深度访谈,并补充其他高可靠性组织的5次访谈,考察工程师如何收集、记录、分享和应用失败教训。研究发现:失败学习往往是非正式、临时且未一致整合进软件开发生命周期的;重复失败因缺乏结构化流程而持续存在;时间限制、团队更替与文档碎片化导致的知识流失、以及流程执行不力,是系统性学习的主要障碍。文章为理解实践并改进失败管理提供了指导。
Software failures can have significant consequences, making learning from failures a critical aspect of software engineering. While software organizations are recommended to conduct postmortems to learn from failures, the effectiveness and adoption of these practices vary widely. Understanding how engineers gather, document, share, and apply lessons from failures is essential for improving software reliability and preventing recurring failures. High-reliability organizations (HROs) often develop software systems where failures carry catastrophic risks, requiring continuous learning practices to ensure reliability. These organizations provide a valuable setting to examine practices and challenges for learning from software failures. Such insight could help develop processes and tools to improve reliability and to prevent recurring failures. However, we lack in-depth industry perspectives on the practices and challenges of learning from failures. To address this gap, we conducted a case study through 10 in-depth interviews with research software engineers at a national space research center. We examine how they learn from failures: how they gather, document, share, and apply lessons learned. To assess the transferability of our findings, we include data from 5 additional interviews at other HROs. Our findings provide insight on how software engineers learn from failures in practice. To summarize our findings: (1) failure learning is informal, ad-hoc, and inconsistently integrated into SDLC; (2) recurring failures persist due to the absence of structured processes; and (3) key challenges, including time constraints, knowledge loss due to team turnover & fragmented documentation, and weak process enforcement, undermine efforts to systematically learn from failures. Our findings contribute to a deeper understanding of how software engineers learn from failures and offer guidance for improving failure management practices.
@inproceedings{abs-2509-06301,
title = {Learning From Software Failures: A Case Study at a National Space Research Center},
author = {Dharun Anandayuvaraj and Tanmay Singla and Zain Alabedin Haj Hammadeh and Andreas Lund and Alexandra Holloway and James C. Davis},
booktitle = {ICSE},
year = {2026},
doi = {10.1145/3744916.3773149}
}