One of the largest mistakes made in implementing Release Management is that companies will purchase a tool to solve the problem. A tool is meant to enable a Release Management Process to be more streamlined and provide value in a predictable and reliable manner. A tool will not define or meet the goals of an organization right out of the box.
This Release Management definition process has been used successfully in financial institutions, large credit agencies, and Technology companies. A key differentiator for MMA is our ability to solve Release Management opportunities for companies who follow a single Software Development Life Cycle (SDLC) Process or Multiple SDLC processes. The business drivers in any company will dictate the time to market parameters and the Release Management Cycle must be able to meet those needs without revamping an entire organization.
The MMA Process:
MMA has a defined process to help organizations define and implement a Release Management program.1
Meet with Subject Matter Experts and key stakeholders within an organization to understand the current implementation of their release management process
Identify opportunities to enhance the current process or build a new process
Leverage the experience of MMA’s engagements to build a roadmap for enhancing or creating the release management process
Deliver the Release Management Road map to the project sponsor/owner
in identifying a tool to help manage the release management process
Implementation of Release Management
In today’s fast-paced environment, time to market is essential to having a competitive advantage. There is the typical struggle between Development and Operations of how to best achieve the fastest time to market for any given project. This leads to a situation where the production environment is so locked down that the development team feels too constrained and cannot get their product delivered in time. Subsequently, the production environment ends up being managed by the development team and quality suffers in order to meet a deadline.
When implementing a Release Management process two goals need to be met. The first being agility of development in order to deliver products to production in line with the business time to market goals. The second is having the right controls in place to ensure the protection of the production environment. With the introduction of a Release Management team, it is best to have a standalone team that delivers both requirements for both organizations.
Release Management has a strong tie to Quality Assurance. The Release Management team and the QA team must work hand and hand to deliver the desired outcomes of this process. The main driver for a Release Management process is to increase code reliability and quality, while delivering the time to market objectives of the business.
Steps of Implementation:
The first step is setting up the right process to meet the objectives of the business.
The second step is to ensure the quality goals of the production operations team are met.
The third step
is establishing the right team with the right skillsets.
The fourth step
is building out the required Test/Release Management environments to ensure step 2 of the process is achieved.
The fifth step
is implementing the process and working out all of the kinks.
The sixth step
is finding the right automation tool to streamline the process
Release Management should not only provide value from a development and operations perspective but should also deliver cost savings. These cost savings can be viewed in two categories. The first category being resolving defects in earlier test environments to reduce the cost of resolving defects in production. The second category is creating efficiencies in the process that reduce the investment required in managing and deploying code throughout the test environments and production.
We can reduce the necessary resources to maintain a Release Management process, by taking standard tasks and automating them. This frees up resources to work on more high value tasks to help drive revenue growth. The automated processes will help reduce deployment times and production issues due to manual mistakes made during production deployments. This allows operations and development teams to focus on revenue growth activities versus troubleshooting production issues.
There are many tools to assist in the automation of the release process. The major vendors that play in this space are CA, IBM Rationale, Serena, and BMC to name a few. Finding the right product for you company is important to ensure your business objectives are met.
Quality Assurance and Governance
A well-defined release process should be tightly coupled with the Quality Assurance process of an organization. The Release Management process should enable quality gate certification, standard test environments (that mirror production as much as possible), and enable testing for each testing team.
The Release Management process should enable governance as well. As more industries become increasingly regulated, the need for reporting has become a hot topic for meeting auditor requirements. Having a process and a tool set that can run reports to meet auditor requirements saves time and money.
A well-defined Release Management process will also provide governance for the development and operations team. By tracking the progression of code through the development environments it will provide visibility for management to see how teams are performing, provide visibility for areas of improvement, and ensure standards are being followed. Governance is a key outcome of a well-defined and executed Release Management process.
The testing team should have the proper environments to perform:
- Unit Testing
- Integrated Unit Testing
- Functional Testing
- User Acceptance Testing
- Performance Testing
- System Testing
- Operational Testing
The software that is developed to drive revenue for companies is of tremendous value. Having a well-defined code repository structure is extremely important. A code repository should be viewed as a vault for your most important intellectual property. There are many companies that sell such repositories.
Here are a few examples:
- Serena CM Dimensions
- CA Software Change Manager
- IBM Rationale Clear Case
- Serena PVCS
Having a defined standard Release Cycle provides visibility for Management and the Business as to when Code can be delivered to the production environment. This gives the business a predictable and reliable schedule of when functionality can be introduced into production. This is a key planning tool for all teams involved in the deployment process starting with the business and ending with the operations team.
Please see an example of the dashboard and calendar view from Serena Release Manager below:
Release infrastructure encompasses two major areas Software Configuration Management tools and the building and maintenance of the Test Environments.
Software Configuration Management (SCM) tools:
Selecting the right tools for your company’s needs is imperative. In today’s regulated environment having the right SCM tool can provide the tracking and audit reports necessary to meet the specifications of regulators. The tools should also be able to provide functionality to meet your process objectives and time to market objectives. For example: if you are an agile development organization the tool set should meet the agile requirements and be able to provide interfaces to other agile tools.
Building the right set of test environments is a key component of a Release Management process. There should be environments available that allow all aspects of your testing process to be performed seamless and easily for the appropriate test team. Below are some key principles to follow when setting up your test environments:
- Use the standard server build used by your operations team
- Set defined deployment windows for development teams
- Use the same hardware configuration in a Staging or UAT environment as you would for production
- If required build a separate performance engineering environment
Regression testing is a key component in any testing process or Release Management process. As new functionality, enhancements, or defects are implemented, all changed code should be regression tested. The most efficient way of regression testing is through automated testing.
Automated testing involves using a tool such as Parasoft to run regression scripts. While manual testing is an alternative, it often is more expensive and time consuming to complete. The most effective way to build an automation suite is to build manual test cases of new functionality and then migrate them to automated regression scripts once the project has been delivered. The best use of automation however, is to build the automate scripts as part of a new project and future enhancements, although deadlines may dictate your ability to automate everything and still meet the time to market objectives.
Automation plays an additional role. When selecting a tool to manage your Release Management process, you should have the ability to call automated testing tools. Think of a manufacturing process where you want as much automation as possible. In software development if you can push a button that deploys, tests, and promotes the code through testing environments, and creates the schedules for production deployment; imagine the cost savings and time that will be recovered to perform more value at work on your new revenue producing products and enhancements for revenue generation.
MMA works with a number of industry leaders to perform quality Release Management operations
MMA is currently working with these Automation Tool Companies to provide the proper links to their solutions
MMA has initimate knowledge of these toolsets and can provide services for every aspect of implemention or maintenance
Serena Software is the largest independent Application Lifecycle Management (ALM) vendor. The company helps organizations orchestrate their
application development, IT and business processes. More than 3,000 active enterprise customers, encompassing almost one million users
worldwide, depend on Serena's ALM and Process Management solutions to deliver great applications with confidence and to automate important
processes for speed, auditability and efficiency.
CA Technologies is an IT management software and solutions company with a deep expertise across all IT environments—from mainframe and
distributed, to virtual and cloud. Solutions from CA Technologies enable customers to manage and secure IT environments and deliver more
flexible IT services to the business faster.
IBM Clear Case is an industry-leading solution that provides sophisticated version control, workspace management, parallel development support
and build auditing to improve productivity. The system scales to any size team from small workgroups to distributed enterprise teams to support
evolving organizational needs.
Subversion is an open source version control system. Founded in 2000 by CollabNet, Inc., the Subversion project and software have seen
incredible success over the past decade. Subversion has enjoyed and continues to enjoy widespread adoption in both the open source arena and
the corporate world. Subversion is developed as a project of the Apache Software Foundation, and as such is part of a rich community of
developers and users.
For 25 years, Parasoft has researched and developed software solutions that help organizations deliver defect-free software efficiently. By
integrating Development Testing, API/cloud/SOA/composite app testing, and service virtualization, we reduce the time, effort, and cost of delivering
secure, reliable, and compliant software. Parasoft's enterprise and embedded development solutions are the industry's most comprehensive—
including static analysis, unit testing with requirements traceability, functional & load testing, dev/test environment management, and more. The
majority of Fortune 500 companies rely on Parasoft in order to produce top-quality software consistently and efficiently.
In a nutshell Jenkins CI is the leading open-source continuous integration server. Built with Java, it provides over 400 plugins to support building
and testing virtually any project.