This blog post focuses on the difference between "Release Engineers" and "Release Managers," and I'm writing it because I've talked to people who don't see what separates the two roles. It's an important distinction, and an organization's view of the difference is an indicator of how mature its enterprise release process is.
What Is Release Engineering?
A common pattern in the past few years is the creation of centralized Release Engineering groups. These professionals apply common patterns for automating releases, they have a solid understanding of build and testing frameworks, and they help a large organization standardize software delivery. These centralized groups have become more popular as enterprises support an increasing number of applications and a faster release cadence.
In an ideal enterprise, all of your applications are packaged, delivered, and installed according to a standard, and these teams serve to apply and enforce enterprise IT policy. For example, the Release Engineering team may be responsible for a common Continuous Integration server, a standard approach to branching and tagging in source control, and the establishment of a common playbook for production releases.
These Release Engineering teams are comprised of individuals with a solid understanding of Devops tools and development standards, but also of operational considerations. The teams work best when they are treated as a set of floating "experts" - architects and specialists who can be dropped into a project to solve a technical release challenge. This is what Release Engineering does well: solve problems with technology.
What Is Release Management?
While technology is important for releases, a focus on the purely technical aspects of a release fails to see the full challenge of project coordination and management. The organizational complexity of a release is much more than the sum of its technical parts. Large, distributed releases are company-wide events. When multiple groups have to coordinate, these problems are far more challenging than technical problems.
This is where a release needs a coordinator - a project manager to assess risk, evaluate timelines, consider contingency plans, and orchestrate activity across organizational boundaries. Complex software releases have governance gates that are driven by quality assurance groups and business stakeholders, and the larger your release the more likely it is that you will need to maintain an auditable record.
A large release requires professionals with experience in enterprise resource management, cost accounting, contingency planning, and conflict resolution. The larger the release, the less likely it is that the release manager will be concerned with technical details. Release managers are focused on people and process.
Analogy: Different Kinds of Ships Need Different Kinds of Captains
Think of another industry that has a similar challenge. For example, consider the range of responsibilities for the captain of a boat:
The rise of the individual application development group managing its own release has created a romanticized view of software releases. In the past few years many have elevated the status of the Release Engineer, but the reality of enterprise software development is that you need to set up a strong release management function.
Release Managers Are the Admirals
Release Engineers focus on technology while Release Managers focus on people and process. In smaller organizations these roles may be one and the same.
Many confuse Release Engineering with Release Management because the modern software release is still a new and developing area of innovation. We mistake the process of making a release with the management function that led up to a successful release, and we tend to reward the people that perform the software release as the essential players.
And they are. Don't get me wrong. Release Engineering is an important function in the enterprise IT landscape, but don't think you've solved the release problem by setting up a Release Engineering team. You need to invest in the tools and the people necessary to make your release process mature and efficient. Hire Project Managers and invest in a tool like Plutora that can model a release from both a release engineering and a release management perspective.