Release engineering processes, their faults and failures
MetadataShow full item record
Release processes form an important, if overlooked, part of the complete software development life cycle. Many organizations implement the roles of release engineering and release management in different ways, with a wide amount of variance within the software industry. Ill-designed processes can lead to a higher number of software faults and costly delays. Failures in release engineering can have negative implications, yet the causes of release process failures are not well understood within in the software engineering research community. This dissertation addresses the questions of what the common release process structure is, what the common failure modes are, and how organizations recover from and prevent these failures. We address these questions through a series of case studies with practicing release engineers at commercial software companies. The live interviews with these individual companies provide insight into the state of the practice in release engineering today across a broad spectrum of organization and software domains. The results of these studies indicate four areas of theory in release engineering which future researchers can probe in more depth. These areas center around process organization, social causes of release process failure, the relationship between software architecture and the release process, and how organizations attempt to improve release processes. For practicing release engineers, these results show that most organizations would benefit from three primary improvements: increased process automation, more modular software design, and improved organizational communication and support of release engineering groups. By implementing these improvements, software development companies and the release engineering processes they support will avoid the most common process failures in this critical phase of the software life cycle.