Software Release Management

This page is a work in progress, and covers my current research into Software Release Engineering.

I first became interested in this topic several months ago, when at work we started discussions into how we could and should change our software versioning system. This prompted me into doing some research into how to handle multiple branches (Beta, RC, Stable). It turns out this this is a fairly large portion of SoftwareConfigurationManagement; in fact, some people have a job description of "Software Release Engineer" or "Build Engineer", where all they do is manage the releases, builds, tagging, and so on. They themselves do not touch the code or deal with the code changes; they make sure that others do when they are supposed to. They can be viewed as a sort of 'production engineer'.

For a list of the sources I've been using, see SoftwareEngineeringBooks.

About that same time, there was also a thread on the CVSMailingList regarding real examples of Branching. Several people were so kind as to reply, which is where NightlyBuildsAndTags and PromotingChangesToQA originated from. That is what started the Release Engineering with CVS pages. However, this page is not specific to any particular SCM tool, but rather a discussion of the reasons and methods behind SRM.

Software Engineering is really a cog in the Capability Maturity Model wheel.

The final result of my research paper can be found here: SRM.pdf [E]


Other sites that link here