Introduction: Wading through the Maze
Release Management is a practice that oversees the build and delivery of software to its intended user. The practice plays a crucial role in the development, testing and deployment of software into organizations. Put this way, it sounds deceptively simple. But ask software engineers about it and they will tell you that managing software releases is a chaotic, painstaking, time-consuming and often risky endeavor. Errors can be expensive. Worse, poor software documentation can delay effective rectification and hurt business. Amidst capturing the needs of organization and the release of the application, is the tension between the development and production teams. Developers don’t have adequate access to production environments, introducing an element of uncertainty in the final product. Naturally, Release Management is becoming an important practice in a bid to ensure improved customer satisfaction and lowered development and business costs. In the fast moving Energy Trading and Risk Management (ETRM) environment, Release Management becomes the difference between supreme success and dismal disaster.
Energy and Utility companies rely on their ETRM applications 24x7. With changes in the business, competitive and regulatory environments (Federal Energy Regulatory Commission, the Environmental Protection Agency, the Energy Utility Technology Certificate, etc.), ETRM application users have begun to demand, on average, three to six monthly enhancements. In a volatile market, where Utilities need to constantly optimize the energy mix and meet changing regulatory and reporting norms, they need swift turnarounds for application upgrades and changes, without disruption of day-to-day business activity.
The Science Behind the Art of Release Management
This means change management in an ETRM environment must be streamlined, consistent and repeatable. This is true for packaged solutions and, more so, for the scores of customized homegrown applications that Utility ETRM teams typically use.
Most companies have a monthly release calendar – specific dates and times when ETRM application updates are deployed for User Acceptance Testing (UAT) and, thereafter, into each production environment. At this point, developers are actually making changes in the production environment.
During the UAT phase each incident must be tracked and resolved or considered for future release (Incident Management). An error introduced in the production stage could call for expensive roll backs and further changes. To minimize this risk, each build and version needs to be documented, maintained and overseen by formal Change Management and Build Management techniques. Combined with knowledge of Systems Development Life Cycle (SDLC), these steps constitute realistic and accurate Release Management.
Rigorous implementation of these steps has two positive outcomes: applications are better managed, bringing a focus to continuous improvement and not to reactive maintenance that focuses on defect rectification and equally important, there is improvement in customer satisfaction.
From an ETRM perspective, the outcomes can be further spelt out:
1. Energy Trading
Traders can make accurate decisions based on P&L reports/mark-to-market change in their respective books/portfolios
2. Risk Management
Users can identify their exposure to risk based on inputs from enterprise system and changing thresholds/regulatory requirements.
Securing Revenue and Productivity While Managing Cost and Risk
Typically, the core benefits of Release Management can be categorized under revenue, productivity, cost and risk.
Revenue: A monthly pre-determined release calendar ensures that all teams can allocate and use resources more efficiently. A calendared approach has the additional effect of streamlining the complete Release Management process - from requirements gathering, development, testing to deployment -- reducing chaos and providing accelerated time to value. When Release Managers have an intimate knowledge of business processes, release management can deliver higher value. This is because ReleaseManagers can proactively identify areas for improvement and spur development in the right direction. Just as important is the repeatability and consistency of the process. These two factors directly lower the number of issues surfacing in the production environment, leading to improvement in customer satisfaction levels. But the most important facet of Release Management, related to revenue, is the ability to remain agile and flexible. This allows ETRM organizations to aggressively address changes in the business, competitive and regulatory horizon.
Productivity and Cost: Rigorously enforced standards and Release Management best practices (such as the development of prototypes, reviews, unit testing, and documentation) reduce rework and have a positive impact on customer trust. Good Release Management that introduces and encourages collaboration between teams and stakeholders increases the success rate of releases. When schedules and priorities are developed in a collaborative manner, the goals of business users are met, reducing costs associated with delays and rollbacks. In an ETRM environment, timeframes are critical and downtimes beyond pre-determined thresholds of users are unacceptable. Rollbacks can also be eliminated through the use of version control that tracks changes and determines the code to be migrated to particular environments. In essence, introducing an element of traceability across Development, Testing, UAT and Production, through version control reduces errors in deployment and prevents roll backs (see Figure 1 for Deployment Documentation)
The Importance of Documentation
Utility users depend on their ETRM applications being available round the clock and have low tolerance for down time. Deployment Documentation is central to successful Release Management and to the goals of the ETRM user. Typically required Deployment Documentation is shown here.
Figure1: Deployment Documentation
Risk:
Minimizing risk and failure in an ETRM environment is critical. Can changes be made visible to teams/management before release so that the potential failure can be identified, isolated and rectified? This is a simple but good practice to put in place as part of a Release Management exercise. Similarly, each build must be tested and validated before it is introduced into production. There is always the danger of change requests swamping the development and testing team and introducing elements of uncertainty. In such instances, it is recommended that the development team frequently builds prototypes for validation by the customer. Risk management also requires that changes be traceable by people, vendors, activities and release dates. With regulations such as Sarbanes-Oxley, this is a fundamental and basic requirement for ETRM organizations. A number of commercially available tools to track and report such changes are available for ready implementation.
You Get What You Adopt
Release management is an important scientific practice that supports software development. ETRM organizations in Utilities can benefit from it if they implement it end-to-end within their environment. This is especially important given that typical Utility organizations who have always been risk averse, could have half a dozen rapid changes required to be made each month to their ETRM applications. The priority needs to be on minimizing financial and compliance risk while bearing in mind that ETRM users cannot afford downtime of their applications. How well a Utility organization responds to these needs is a function of the Release Management practice it adopts.