Integrated Application Lifecycle Management (ALM) provides the ability to innovate while reducing overhead costs, thus improving time to delivery, quality, value, and predictability.
The classic definition of Application Lifecycle Management (ALM) derives from the notion of "software as a product": identifying distinct and cyclical phases of requirements management, software architecture, development, testing, maintenance, change management, project management, and release management.
Most importantly, and to dispel a common misconception, the scope of ALM is broader than the simple software development lifecycle (SDLC). The lifetime of an application includes the entire time an organization is spending money on it—from the initial idea through to the end of the application's life. To put matters in perspective, Forrester estimates that ongoing operations and maintenance consume 66% of IT budgets, while new projects and software initiatives represent only 34%.
To understand ALM, it's important to clearly distinguish between some common terms that are often misused. We often hear ALM, Software Configuration Management (SCM), and version control used interchangeably. (And change management is a vague umbrella term used to refer to any of these). In reality, ALM has evolved from SCM, which in turn has its root in basic version control. The functional coverage of each discipline is therefore quite different.
Version control is an essential development practice for tracking and controlling changes to source code. Version control tools emerged as soon as programming became a team endeavor involving multiple versions of the same software deployed in different sites and developers working simultaneously on updates. As bugs may arise in only certain versions, it is vitally important to be able to retrieve and run any given version of the software to locate and fix the problem. Similarly, it may be necessary to develop two or more versions of the software concurrently, typically where one branch is maintained purely for fixing bugs, and the other (the trunk) for the development of new features.
Different version control tools utilize different techniques for managing concurrent access to the same source. The most prohibitive method of file locking will prevent simultaneous check-out on source. The most permissive (and common) method allows simultaneous modifications, with semi-automatic features to assist in the delicate operation of an ad hoc merge of changes.
Another fundamental feature in version control is the attribution of baselines, otherwise known as tags or labels, to identify a snapshot of the application at a given moment in order to be able to retrieve the same precise state of the sources at a later date.
Previously, CVS and now its successor Subversion have been widely used open-source tools in this category, both based on a client/server architecture.
Software Configuration Management (SCM)
Where version control manages source code changes, the scope of Software Configuration Management (SCM) is considerably wider. Traditional SCM identifies four procedures that must be defined for each software project:
- Configuration Identification identifies configurations, configuration items, and baselines.
- Configuration Control is the implementation of a controlled change process. This is usually achieved by a Change Advisory Board (CAB) whose function is to approve or reject change requests.
- Configuration Status Accounting includes recording and reporting all necessary information on the status of the development process.
- Configuration Auditing ensures that configurations contain all their intended parts and are consistent with specifications, including requirements, design documents, and user manuals.
Further, SCM addresses the management of environments (both software and hardware), build processes and tools, and defect tracking to ensure that every defect can be traced back to the source. SCM defines processes to prevent unauthorized changes, procedures to follow when making changes, required information, and usually workflow management as well.
SCM is one of the Key Process Areas (KPAs) required to reach level 2 maturity in the Capability Maturity Model defined by the Software Engineering Institute (SEI).
Examples of Software Configuration Management tools are PVCS and Rational ClearCase.
Application Lifecycle Management (ALM)
At the highest level, ALM capabilities manage the entire lifetime of an application from design to deployment and until its end-of -life. ALM is orders of magnitude more complex than basic version control of software.
In practice, ALM can be considered as three overlapping layers: governance, development, and operations. Planning for deployment likely begins shortly before the application is completed, and the act of deployment itself is a fundamental part of operations. Once the application is deployed, it must be monitored throughout its lifetime. Similarly, each update to the application must be deployed once completed. So effective ALM toolsets are integrated vertically between the three layers as well as horizontally across phases.
Figure 1: ALM can be considered as having three aspects.
("What is Application Lifecycle Management?", Chappel & Associates)
Cloud Computing and Software as a Service (SaaS): The New ALM Model
With the advent of the cloud and software as a service (SaaS), certain aspects of the traditional Application Lifecycle Management model are shifting. The changes principally impact the downstream phases of software delivery and deployment, and in particular the boundary between development and operations departments.
Fifteen years ago, the software development lifecycle revolved around fixed requirements, local in-house development teams, "big bang" projects in which hundreds of modules were delivered at distant intervals, and stakeholder review/acceptance at the final delivery. This waterfall approach to development resulted in the majority of software projects failing to deliver in terms of cost, timeliness, and end-user satisfaction.
In contrast, IT projects today deal with evolving requirements, geographically distributed development teams, ongoing stakeholder engagement, and incremental delivery. The success of this new model relies heavily on team collaboration and process automation, and in turn, is making new demands on ALM tooling.
At the same time, tighter budgets, stiffer competition, and regulatory constraints are pressing IT departments to modernize not only their applications but also their methods and tools. Pervasive web and mobile components have made application architectures more complex, involving multiple platforms, often with a legacy business application at the core. ALM tools must manage the dependencies between diverse technologies and facilitate communication in teams of mixed IT cultures.
We all know that application quality impacts the revenue of a business as well as its ability to compete and innovate. Recent management studies report that application outages are network-related only 25% of the time and software-related 40% of the time. In today's business climate, massive software changes must be delivered with increasing frequency and to higher levels of quality. This imposes modernization efforts across both development teams and IT operations to become more proficient in rolling changes into production, with a closer cooperation between the two.
Therefore, both agile methods and, in turn, DevOps are central to the new ALM model, emphasizing pragmatism, collaboration, accountability, and a "need for speed."
Comparative Evaluation of ALM Solutions in the Market
Many companies are finding that existing ALM toolsets do not adequately support this dynamic landscape. In Q4 2012, the Forrester Wave report on Application Life-Cycle Management evaluated major leading ALM solutions against 116 criteria, ranking nine key players according to current offering, market presence, and strategy. As was the case in the previous Gartner ALM/Agile report from 2010, IBM again received highest ratings in 2012 for strongest product offering. Like Microsoft, IBM takes a general-purpose perspective on ALM, supporting traditional, agile, and hybrid planning methods. Agile practices are treated as a special instance of ALM workflows, metadata, and reporting—in other words, a special configuration of their ALM tools.
According to Gartner, ALM is what enables sustainable agile practices. We see that new, collaborative approaches are what differentiate ALM tools today.
From Application Lifecycle Management (ALM) to Collaborative Lifecycle Management (CLM)
The IBM Rational offering for Collaborative Lifecycle Management (CLM) is an Eclipse-based solution built over the open Jazz platform, with a host of tools for wide-scale collaboration, real-time traceability, planning, and agile methods. It supports Web, SOA, and mobile application design with specific features for managing outsourced development. The goal is ambitious: to provide a common environment and toolset to unite developers on Windows, AIX, Linux, mainframe, and (even) IBM i.
The 2013 EMA Research Report "DevOps for a New Millennium" concludes that Rational CLM is an effective tool for agile team collaboration, continuous delivery, and the DevOps lifecycle.
Under the covers, Rational CLM integrates three existing tools designed to foster greater collaboration in the change management, requirements, and testing phases of the application development lifecycle—namely, Rational Team Concert (RTC), Rational Requirements Composer (RRC), and Rational Quality Manager (RQM).
RTC is the strictly ALM component of this CLM offering. By unifying technology cultures under the same toolset, RTC simplifies project management and helps break down the silos that inhibit efficiency and change.
The underlying Jazz platform provides for open collaboration across the software and systems lifecycle. It connects the disciplines of project planning, requirements, development, and testing and supports continuous improvement and feedback. Jazz products implement the Open Services for Lifecycle Collaboration (OSLC) specifications so that they can integrate with each other and with products from other tool providers.
OSLC means that RTC can easily interoperate with existing tools. For example, it's easy to import Bugzilla, Jira, or any other change-tracking system with CSV file support into TRC work items. Similarly Subversion and CVS repositories can be easily imported into RTC SCM. Connectors are available to provide dynamic integrations with Subversion, ClearCase, ClearQuest, Synergy, and others.
In June 2013, IBM commissioned Forrester Consulting to interview IBM CLM clients and examine the potential return on investment (ROI) an organization may realize by deploying CLM in order to increase communication process efficiencies and time savings. A financial analysis on four existing CLM customers was compiled into a "composite three-year risk-adjusted ROI." The reported composite ROI result was 522% over a three-year payback period.
Specific Requirements of Power Systems and the IBM i Platform
Rational Team Concert for i (RTC for i) builds on the core RTC product, adding a Team Server and Build System toolkit for IBM i. It introduces team collaboration features to the platform and manages native languages such as RPG and COBOL. RTC for i is shipped as an installable component for Rational Developer for i (RDi).
However, thanks to the well-deserved longevity of the platform, any application development or modernization tooling on IBM i requires specific support for its unique technical environment, capable of analyzing decades-old legacy code and variants up to the latest object-oriented languages. This specificity has tended to isolate development teams and discourage new developers from moving to the platform. For RTC to successfully federate Web and IBM i developers into a common environment, a rich layer of IBM i-specific technology is needed to maximize the automation of routine tasks.
Integrated with RTC for i, the ARCAD Pack for Rational provides the deep IBM i functionality needed for managing the many specialized technology variants on the platform. In particular, it completes the automation of dependency analysis, integration build, and deployment, simplifying the change process and shortening time to delivery. It supports all IBM i languages and environments—from 30-year-old legacy applications in COBOL or RPG III through SQL to free-format ILE and newer object-oriented code.
With the combination of RTC, Rational Developer for i (RDi), and ARCAD Pack for Rational, teams working on multitier and application modernization projects are managed in a consistent way. The workflow and actions such as check-out, edit, compile, and check-in of changes, as well as association of changes with tasks or defects, are very similar whether the source is RPG, COBOL, CL, EGL, C#, PHP, or Java.
Figure 2 below shows a functional view of the IBM integrated solution for Power Systems development: a modern, productive work environment based on the standard Eclipse IDE, making IBM i easily accessible to all developers, from recent graduates to platform veterans.
Figure 2: An integrated solution for Power Systems development.
In summary, ALM is much more than just writing code. All three aspects — governance, development, and operations—are equally important. Taking a broad, holistic view of ALM and doing all three aspects well helps maximize the value of the applications we create.
It is through integrated, collaborative ALM solutions that we can address today's complex IT environments and demanding business climate. Integrated Application Lifecycle Management (ALM) provides the ability to innovate while reducing overhead costs, thus improving time to delivery, quality, value, and predictability.
As a highly rated example in the industry, the IBM Rational Collaborative Lifecycle Management (CLM) solution is designed to an integrated ALM approach. It brings together requirements management, quality management, change and configuration management, and project planning and tracking on a common unified platform. ARCAD Pack for Rational extends CLM with specific IBM i technology to empower IBM i teams to reap the benefits of modern agile delivery.
Rational CLM allows organizations to coordinate people, processes, and tools across multiple host platforms. It possesses a rich set of features including in-context team collaboration, lifecycle traceability across disciplines, real-time planning, development intelligence, and reporting. Rational CLM is a versatile and scalable product, fitting well with both formal and agile environments, allowing for continuous process improvement and a progressive modernization of methods and tools.