Plutora Blog - Release Management
Release Management vs Release EngineeringReading time 6 minutes
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 captain of a small lobster boat off the coast of Maine is often the only person responsible for steering the ship and managing everything on that boat.The analogy here is to the job of a lone release engineer at a startup. Not only is there no release manager, but there are few governance and success gates. This is a one-person show, and you are focused on the technology challenges.
- The captain of an aircraft carrier looks more like the CEO of a large corporation; this captain manages teams.The analogy here is a release manager for a group of related applications. Like the captain of a large ship, a release manager performs a daily routine to ensure that different groups are communicating about deadlines, gates, and dependencies. The focus is on anticipating issues and preventing problems related to a breakdown of people or process.
- Taking this analogy further, that captain reports to an admiral who is responsible for coordinating and directing the operations of an entire fleet of vessels. Admirals don’t concern themselves with the day-to-day operations of each ship; they simply understand the capabilities and commitments, and they issue coordinated orders to achieve objectives.The analogy here is a senior release manager or Release Orchestrator who manages other release managers throughout the organization. In the largest organizations there is a similar hierarchy within release management, and the most senior release managers only concern themselves with the SLAs provided by the various groups they oversee.
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.
- If you have a single application or a handful of applications with a predictable release schedule, you can get by without committing yourself to rigorous planning and process, and you might be able to run a release with release engineers alone.
- If your organization scales to more than ten interdependent projects or if your release team has to support applications created by multiple departments, you need to hire dedicated project managers to manage the risk of the release process and keep people focused.
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.