While the DevOps movement and associated technologies have garnered much attention and fanfare, few have addressed the core issue—the handoff from development to operations. This blog post explains why release management is the bridge between development and operations, and how you can strengthen that bridge with the right approach, tools, teams, and processes.
The Chasm Between Development and Operations
Development teams are “proactive.” Developers create software systems, and they often have an entirely different model of business from the operations teams. These groups have a wide variation in both process and approach to software release. Some development groups working on slow-moving, back-office systems may be very amenable to the service management model of software delivery.
Other groups, who are focused on fast-moving, highly technical systems, are not often aligned with the IT Service Management (ITSM) and Information Technology Infrastructure Library (ITIL) models. When it comes to tools, developers are more at home managing development processes with issue tracking tools like Atlassian’s JIRA and configuration management tools like Puppet or Chef.
In short, developers focus their efforts on “pushing out code.” Changes and enhancements to production systems and attendant failures in providing service are seen as part of this rush to get the latest and greatest code out to consumers. Developers thus tend to be Agile, proactive, and reliant on self-service for accomplishing their goals.
Operations groups, on the other hand, are “reactive.” They are focused on service management and incident response. Teams supporting Operations tend to use organization models closely aligned with ITSM and ITIL. A site operations team at a high profile website will use the term “customer” to refer to internal end users creating incidents and change requests in a system like BMC Remedy or ServiceNow.
Aiming for balance between business needs and accountability makes operations teams become cost conscious, process-driven, reactive, and wary of sudden and rapid change.
The Importance of Release Management for DevOps
Effective release management directs the flow of change throughout various pre-production environments culminating in successful deployment into the production IT environment in the least disruptive manner. Release activities include planning, designing, configuration, rollout planning, testing, communication, and deployment.
Release management is the lynchpin for a smooth transition of applications from code completion to deployment into live production environments.
There are a multitude of touch points, players, software tools, and workflow, as well as the complexity of modern-day application release to production—a fragile process that needs to be repeatable, error-free, and Agile. That’s where release management comes in and acts as a glue between dev and ops. With organizations adopting multiple methodologies like Waterfall and Agile, release management ceases to be an option and becomes critical.
Release management is like a heat shield protecting a release during the reentry process from a DevOps orbit to a more manageable ITSM approach that the largest companies have come to expect. In this context, release management is critical, and it is important to establish a sound release management practice within the organization.
A good release management tool such as Plutora helps organizations achieve the right balance between development and operations, and bridges the DevOps gap. Download our white paper How to Set up an Effective Enterprise Release Management Function to learn how you can implement release management in your enterprise.