|
Managing Change Churn and Complexity |
|
Reducing Risk and Driving
Efficiency With Release Management
Managing Releases in a High Volume Change Environment
Change is a reality in every organization and life continues
to get more complicated through trends such as the adoption of Service Oriented
Architectures (SOA) and the rationalization or modernization of legacy
applications. This article will take a look at these two trends and how they
complicate life for application development teams by increasing both the volume
and complexity of change. I will then discuss the ways effective release
management can help organizations deal with the constant change churn,
complexity and change volume. Though release management isn't a silver bullet,
it is a tangible way to make a difference.
The Ever
Changing World of IT
Application modernization
is about rationalizing your application portfolio with the intent of
constructing more sustainable applications that reap higher rewards with a
lower maintenance cost.
In an ideal world,
applications would be written once, perfectly and require little or no
maintenance, freeing up application development teams to work on newer, more
innovative products or services.
The reality of IT however,
is that legacy systems do require maintenance, in many cases the maintenance
cost can be more significant than the initial investment. As well, this
maintenance requirement often results in differing applications with similar
functional capabilities.
Application modernization
is the evolutionary practice of rationalizing your existing applications to
introduce innovation and efficiencies in your application portfolio, but not at
the cost of throwing everything away and starting again. This dynamic process
requires diligence to maintain the existing legacy systems while freeing up
resources to produce more innovative and manageable applications that satisfy
new and emerging business requirements more readily.
From an IT operations
perspective, application modernization can spell disaster. In many scenarios,
coordinating the release of modern architectures such as J2EE and .NET along
with legacy systems such as System i (iSeries) and System z (zSeries) can
cripple an organization tying up resources and costing time.
To manage and coordinate a
multi-platform release, IT decision-makers need solutions with the necessary
level of traceability and control over all software artifacts. Allowing your
application development teams and IT operations teams to work in silos, often
by platform, obstructs the ability to prioritize and manage these related
systems holistically. As well, the risk associated with managing these
environments in isolation may be huge if there are application dependencies.
A single application
lifecycle management platform provides coordinated release management across
all strategic and legacy platforms within an organization. Through tight
integrations with System i development and integrations into System z tools,
cross-platform dependencies can be managed through a single release package.
These integrations ensure that dependent changes are released at the same time
and where necessary, rollback occurs simultaneously.
Another compelling feature
of a single integrated ALM platform is the ability to measure and manage effort
and cost across your legacy and modern application base. With dashboards, organizations
can effectively track and categorize their development and operational effort
by platform or application, ensuring accurate measurement of the development
and maintenance cost of their strategic applications and legacy applications.
Senior IT executives are empowered to keep their finger on the pulse of IT
throughout a multi-year modernization initiative through this ability to constantly
re-evaluate priorities.
The traceability offered by
a single consolidated ALM platform is fundamental to manage the large volumes
of change attributed to a multi-platform environment. With continuous change
churn, traceability is vital from requirements through to release. Such
end-to-end traceability ensures that the IT operations team implementing the
application change will have a solid understanding of the requirements being
satisfied by the release. Understanding the associated requirements ensures
adequate validation can occur during the integration or acceptance-testing
phase of the release.
The Adoption of Service Oriented
Architectures
A recent trend in the
development of business systems is the adoption of Service Oriented Architectures
(SOA), interoperable services which, once combined, provide a powerful
application or business process.
An SOA framework is
designed to enable organizations to achieve three key benefits:
- Faster time to
business through a more modular framework.
- Increased
re-use of assets.
- Reduced
integration cost.
Each of these benefits may
yield significant cost savings to an organization but implementing an SOA
strategy is not without its challenges, such as the management of
interdependence, scope of deployment, and large change volume.
One of the challenges in
adopting an SOA strategy is the delivery or deployment of related services.
With discrete, re-usable services being deployed all the time, how do you
manage delivery of changes to a service if it depends on another service?
An additional challenge
introduced by Service Oriented Architectures is their highly distributed
nature. Consider a retail deployment, where a service or group of services may
be deployed to hundreds or thousands of individual stores. How do you manage
the distribution of a service to hundreds or thousands of target machines?
Finally, with the high
volumes of change introduced by such a strategy, how does your IT operations
group cope with the rapid changes that are ongoing? Manual procedures are
simply not adequate for dealing with the volume of change and managing
scenarios such as recovery and rollback.
Much like the cross-platform
change scenario, a process-based approach will ensure satisfactory approval is
obtained, traceability back to requirements exists, adequate testing and
validation occurs to manage the coordinated release of related services. An
integrated ALM platform for release management can also help in automating many
of your IT operational practices, equipping your teams to deal with higher
volumes of change in a repeatable way.
An integrated platform groups
related service changes into a single release package, ensuring a coordinated
release effort. In addition, deployment can be scaled to support hundreds of
target servers for a given release package, ensuring that it can scale for your
SOA environment. Through integrated process and workflow, automation ensures
that teams can manage with the large volumes of changed introduced by SOA
development.
Managing High Volumes of Change
Release management
practices are vital for dealing with high volumes of change in an IT
environment. Three key benefits of a release management practice are
collaboration, efficiency and compliance.
Collaboration
Greater collaboration between
application development teams and IT operations teams occurs through the use of
common processes and technologies. This cross-team collaboration ensures a
clear sense of ownership and more transparency over the release process. This
enhanced visibility equips your IT operations teams with a better understanding
of application dependencies and the ability to elicit input from the
application development teams when constructing a release.
When a release is promoted
through stages in the release lifecycle, application development teams can be
more dynamically involved through real-time notifications of testing or
deployment failures, reducing the overall time to business.
Efficiency
Efficiency is generated
through the implementation of a release management practice through automation.
The automation of application delivery into production and pre-production
environments translates into time saved by staff in overseeing releases. The
recovery and rollback process can also be automated, ensuring that when a
failure occurs, the corrective action is automatically taken and appropriate
owners notified.
Cost efficiencies can be
obtained through less operational overtime and through the ability to raise the
operational capacity, ultimately dealing with larger volumes of change, to
satisfy the business more rapidly.
Compliance
Finally a release
management practice is vital for dealing with compliance. By tightly
integrating release management into your change and configuration management
practice, you build the capability to deal with larger change volumes, and
demonstrate key compliance criteria, including:
- What business
requirements are addressed?
- Which artifacts
make up this release?
- Who developed
the artifacts contained in the release?
- Who approved
this release for each environment it was promoted to?
- When was it
delivered to production?
- If a failure
occurred, what action took place?
Getting Started

Plan Your Release Management Process
A starting point for
release management is to define the requirements your organization has for a
solution.
- What kind of
platforms do you need to release to, do you need to support legacy
environments?
- Does an active
SOA strategy how is SOA being adopted today?
- What are your
objectives in adopting formalized release management practices, efficiency,
greater collaboration amongst teams or a need to better meet compliance goals?
With a clear set of
requirements defined you can be realistic about what you hope to achieve and
the necessary steps to achieving your objectives.
It is also important to
leverage existing methodologies or industry practices where they fit. ITIL and
other industry accepted frameworks for change, configuration or release
management can provide a solid footing for implementation, but you need to be sure
that they realistically align to the way your IT team needs to function.
Change and Configuration Management
The next logical step in
defining a release management solution is ensuring you have adequate change and
configuration management practices in place. It is important to ensure that the
appropriate balance of change and configuration management tool support exists
to support all of the environments that your IT project may span. This is
especially true where multi-platform dependencies exist. Without a solid change
and configuration management footing, anything that is released into a
production or pre-production environment will be suspect.
Integrated Deployment Support
With the appropriate CM
tools and policies in place organizations should look to achieve integrated
deployment support, where the deployment of artifacts only occurs with the
appropriate change approvals using secured configuration management baselines.
Technologies for deployment
should be selected based on their ability to scale within your organization and
their ability to form an integrated release management solution. Managing high
volumes of change is about having the right tools in place, forming an
integrated scalable solution in order to deal with the magnitude of change you
face.
Automating the Deployment Practice
Once you've achieved
integrated deployment in your change and configuration management environment,
automation should be a key objective in order to drive further efficiency and
to reduce risk.
Automation can be employed
to reduce risk exposure and to force teams to work in a more repeatable manner.
On the surface project teams and teams on differing platforms will appear to
work in a unique manner, by initiating an automation project you will be forced
too examine the commonalities.
Automating the deployment
of change is one area to focus on, but of equal importance is the automated
rollback and recovery. Consider the scenario where a release to production
fails, as the result of a software defect or perhaps due to a lack of capacity
on the production system. How do you invoke rollback and recovery in this
scenario? In many cases if rollback doesn't occur in a timely manner, a
disruption to business including potential financial penalties may be incurred.
By automating your rollback and recovery procedures you are eliminating the
scramble for resources to fix production issues and reducing your overall risk
exposure.
Conclusion
When
you stand back and look at the whole process of creating applications, release
management is a key piece. Done right, release management enables more
effective deployment of applications across an organization. With greater
complexity and increased volumes of change within organizations, scalability,
traceability and visibility for cross-team collaboration are key factors in
selecting a release management solution. A comprehensive release management
solution enables Application Development teams to manage and deploy change
across their enterprise effectively. At the end of the day, any process that
can be streamlined helps deal with the constant, increasing amount of change
that a business demands.
Once
deployment is under control, developers can spend more time creating innovative
applications to move the business ahead.
By Ryan Lloyd, ALM Product Manager, MKS Inc.
MKS is a
registered trademark of MKS Inc. All other trademarks acknowledged. © 2006. All
rights reserved.
Trackback(0)
|
|
WHITE PAPERS -- Become a Member and Login and you will never fill out forms again!
Recent Issues of CM Journal
Check out the TOOL SPOTLIGHT!
|