What you need to know about the ALM methodology
Gerie Owen provides an overview of ALM methodology, covering its requirements, development and maintenance phases and its core components.
Application lifecycle management (ALM) is a framework through which the process of software development and ongoing maintenance is recorded and controlled. The ALM methodology is a more comprehensive approach than the traditional systems development lifecycle (SDLC) because it includes continuous management from an application’s inception until its decommissioning. In fact, there may be multiple systems development lifecycles throughout the life of an application product. This article defines ALM, discusses its different phases and covers its core components.
ALM practices approach the product lifecycle using a phase structure. At a high level, there are three stages, or phases, of ALM — requirements definition and design, development and operations and maintenance. These activities occur in all software projects, regardless of the project methodology (e.g., XP, scrum or Waterfall) espoused by the organization; the difference is only in the ways in which these tasks are approached. Across the phases, the ALM methodology provide a governance system designed to ensure that the application is meeting business needs not only at the individual business level, but also as part of the organization’s total information technology strategy.
Starting a project: The requirements and development phases
In the requirements and design phase, application development is accepted as a formal project and resources are assigned to the project team through the governance process. In larger, more mature IT organizations, individual projects are assigned as part of IT programs that may be managed by a project management office. The business, functional and non-functional requirements are gathered by business analysts or product owners — and the proposed application is designed by the solution architect. Governance plays a role here as well as solution design based on corporate information technology standards.
In the development stage, the application is built, tested and deployed into production, again with oversight through the governance process and the project methodology in use within the organization. Depending on the approach, the build and test may take place in a series of short iterations or may be individual phases within the project. It may also be deployed and modified in production using a DevOps strategy, which requires close coordination between development and IT operations.
From development to deployment: The operations phase
Once an application has been deployed to production, it moves into the operations and maintenance stage. In this stage, IT operations is responsible for keeping the application online and functioning, which includes applying patches, hot fixes and minor upgrades. ALM governance dictates how and when fixes and patches are applied, when upgrades of different types are allowed and if the operating system and other supporting software can be upgraded.
How the activities within the stages of ALM are executed depends on the approach followed by the individual organization. The two main categories of ALM methodology are Waterfall and Agile. Organizations using Waterfall follow the traditional systems development lifecycle. Waterfall follows a series of individual phases beginning with initiation, moving into design, build and test sequentially and finishing with deployment. These phases are performed sequentially, with the previous one completing before the next one begins.
Agile breaks software releases into short iterations. Each iteration focuses on providing shippable software. Types of Agile methodologies include scrum, Lean, Kanban and Extreme Programming. Iterations may be deployed and tested in production, both to provide essential features to the business quickly, and to get rapid user feedback. Some organizations have taken Agile further and are employing continuous delivery and continuous deployment. This latest trend generally incorporates DevOps, in which development and operations are part of the project team and all are responsible for testing.
To fully understand the ALM methodology, it is important to review the individual components of the framework. At a high level, the components can be grouped based on their roles during the life of the product.
When an application begins its life as an idea, the project management and software development components are employed in order to bring the application into production. The project management component focuses on balancing the triple constraint: scope, cost and schedule. Requirements management comes into play as requirements are gathered and refined. The software development components, which include test coverage and defect tracking, are used to ensure that the application is of an acceptable level of quality before it is deployed to production. The deployment control component of ALM consists of the processes by which the code is moved to production.
Once the application is in production, components such as version control, performance monitoring and incident management are used to govern on-going support. On-going performance monitoring processes are critical to the success of the application. Poor performance can mean loss of customers, and solid performance monitoring provides the capability to find and fix issues before the customers are affected by them. Incident management processes are also critical, as problems — whether they are related to hardware, software, security or performance — can result in lost customers. Incident management procedures ensure that the analysis and remediation of production problems happens as effectively and as expediently as possible.
Finally, the portfolio management component of ALM is used throughout the product’s lifecycle to ensure that relevance and importance within the overall organization’s information technology picture is maintained. It is through portfolio management that an organization’s leaders determine the strategic technological direction (i.e., how technology will be used to achieve business goals).
By achieving these goals, the ALM methodology provides a framework not only for managing an application’s lifecycle from inception to decommissioning, but also for developing and managing the strategic technologic vision for meeting an organization’s business objectives.