Release Engineering Processes, Models, and Metrics
Total Page:16
File Type:pdf, Size:1020Kb
Release Engineering Processes, Models, and Metrics Hyrum K. Wright Empirical Software Engineering Laboratory Department of Electrical and Computer Engineering The University of Texas at Austin Austin, Texas 78712 [email protected] ABSTRACT The primary goal of this research is to develop techniques, No matter the development process or methodology, a soft- methods, metrics and processes whereby the release engi- ware product must ultimately be released to a user in a neering process can be quantitatively measured, reasoned readily consumable form. Different software products, from about, and improved. Such techniques will benefit the soft- desktop applications to web services, may require different ware industry by reducing release process overhead, and im- release processes, but each process must produce an arti- proving the quality of the release artifact. This paper gives fact which meets an expected level of quality, and is rela- a brief background of release engineering as a practice, the tively bug-free. We describe current research to model and existing research in this area, and how we intend to proceed quantify existing release processes, and an effort to prescribe toward our goals. improvements to those processes. 2. BACKGROUND Categories and Subject Descriptors Release engineering is the part of the software engineer- ing process during which the release artifact, usually an ex- D.2.9 [Software Engineering]: Management|software pro- ecutable, installer, library or source code package, is pro- cess models; D.2.7 [Software Engineering]: Distribution, duced. In traditional software development methodologies, Maintenance, Enhancement|release creation and distribu- such as the spiral or waterfall models, release engineering tion comes as part of the deployment and maintenance phases [1, 8]. Many proprietary and open source software projects em- General Terms ploy dedicated release teams which are tasked with building Management, Standardization the final shipping product, very literally \engineering the release." For many development teams, release engineering can usu- Keywords ally be broken into several phases: stabilization, validation, release engineering, release management, software processes and publication. During the entire process, the release is overseen by one or many release engineers. This individual or team may coordinate release activities, determine sched- 1. INTRODUCTION ule and make binding decisions regarding releases. Depend- A software release is the most prominent aspect of a soft- ing on the size of the development team, release management ware deployment. Whether a web service, an open source may be a dedicated assignment, or may rotate among team project, a commercial system, or an internally developed ap- members. plication, unreleased software is nonexistent software. Of- ten, significant external resources, such as marketing cam- 2.1 Related Work paigns, are dependent upon a successful release process. Despite the ubiquitous nature of the release process in the Development teams must ensure they have a sufficiently software development cycle, very little research has focused high-quality release process, to create low-fault and high- primarily on the release processes itself. Some of the existing frequency releases. literature looks at the distribution and maintenance of the Often, the release process changes as a organization grows. release artifacts, but not the process involved in creating A small startup company will release software much differ- them. ently than a multinational vendor. While developers and The open source world has provided a particularly fertile architects focus their energies on the design of the software source of data for examining release processes. Erenkrantz itself, the release process tends to gradually evolve, with outlined release processes in several open source projects, very little comprehensive design. Instead, companies and but the work is quite dated and each of the projects surveyed projects add release engineering techniques as required, with has changed their process in the interim [3]. Michlmayr ex- little forethought or structured design of the process. amined release engineering processes in open source projects, and problems that the open environment presents to the pro- Copyright is held by the author/owner(s). cess [6, 7]. Additional researchers have also examined how ESEC/FSE DoctoralSymposium’09,Aug. 25,2009, Amsterdam. The Netherlands. release managers fit into the social fabric of open source ACM 978-1-60558-731-8/09/08. projects [2]. 27 Other authors have looked at where the release process addition, very few standards exist for release engineering fits in the software development cycle. The problem of dis- processes and artifacts. We hope to address these issues tributing the release artifact is addressed by van der Hoek, through the above outlined research. et. al. [9], but the work is more aimed at dependency man- Every software team must eventually release the end re- agement of releases. Other work describes the Software sult of its labors. The release process is a critical part of Dock [4], a system for configuration, deployment and main- the software development cycle, and by better understand- tenance of software installations. ing the release process, software engineers, as well as de- velopment teams, will be better able to create high-quality 3. GOALS AND STATUS software releases. Part of this work will be simply defining the scope of the release engineering process, and how that applies in differ- 5. REFERENCES ent organizations. Many organizations task a \release team" [1] B. W. Boehm. A spiral model of software development with managing release engineering within the project, but and enhancement. Computer, 21(5):61{72, 1988. the charter of such a team can vary widely. While the needs [2] K. Crowston and J. Howison. The social structure of of every organization are different, many commonalities exist free and open source software development. First and creating a flexible, yet useful, description of the process Monday, 10(2), 2005. is an important part of our work. [3] J. R. Erenkrantz. Release Management Within Open Our primary goal, though, is to observe and model exist- Source Projects. In Proceedings of the ICSE 3rd ing release processes, and to eventually prescribe changes to Workshop on Open Source Software Engineering, May those processes in an effort to improve them. Metrics exist 2003. for nearly every other aspect of the software engineering cy- [4] R. Hall, D. Heimbigner, A. van der Hoek, and cle. These metrics help researchers and developers alike, by A. Wolf. The Software Dock: A Distributed, quantifying and describing the process, so they can then be Agent-based Software Deployment System. Technical improved upon [10]. We aim to introduce a similar frame- Report CU-CS-832-97, University of Colorado, Dept. work for use with release engineering. of Computer Science, February 1997. In previous work on this subject, we examined details of [5] J. Howison, M. Conklin, and K. Crowston. the Subversion open source project's release cycle for version FLOSSmole: A Collaborative Repository for FLOSS 1.5 [11]. We hope to expand this work to include lessons Research Data and Analyses. International Journal of learned from other commercial and open source projects, Information Technology and Web Engineering, particularly the problems they have encountered in their 1(3):17{26, 2006. own release engineering processes, and how they addressed [6] M. Michlmayr. Quality Improvement in Volunteer (or did not address) them. Free Software Projects: Exploring the Impact of We are currently working on creating a uniform database Release Management. In Proceedings of the First of release information for a variety of open source projects. International Conference on Open Source Systems, This is in a similar spirit as the FLOSSmole data min- pages 309{10, 2005. ing project [5], but focuses on only the release information [7] M. Michlmayr, F. Hunt, and D. Probert. Release for the selected projects. In the process of creating this Management in Free Software Projects: Practices and database, we are also creating rough methods of normal- Problems. International Federation for Information izing release information to allow inter-project comparison. Processing, 234:295, 2007. In addition, we are developing tools to support the mainte- [8] W. W. Royce. Managing the development of large nance and improvement of the collected data. software systems: concepts and techniques. In Using this data, and our proposed models and metrics, Proceedings of the 9th International Conference on we will then prescribe improvements to the projects' release Software Engineering, pages 328{338. IEEE Computer processes. This approach is not limited to just open source Society Press Los Alamitos, CA, USA, 1987. projects, and we also plan on examining selected proprietary [9] A. van der Hoek, R. S. Hall, D. Heimbigner, and A. L. release engineering practices. Wolf. Software release management. ACM SIGSOFT We also plan to examine the current tooling infrastruc- Software Engineering Notes, 22(6):159{175, 1997. ture surrounding release engineering. Anecdotal evidence seems to suggest that what tools exist are homegrown, and [10] A. L. Wolf and D. S. Rosenblum. A study in software not uniform throughout the software industry. These tools process data capture and analysis. In Second could help standardize release artifact creation and nota- International Conference on the Software