Application lifecycle management (ALM) is the process of supervising a software application across its entire lifespan, from the moment it enters the planning phase, to its initial launch, through its many revisions and updates, until it reaches end of life. It is similar to, but more comprehensive than, the Software Development Lifecycle (SDLC), which focuses on the initial development of the product, and can be thought of as a subset of the ALM. For a popular and long-lived product, the ALM may span several SDLCs.
ALM is done with a combination of people, processes and tools that provide three essential elements: governance, development, and operations. The governance stage includes such things as business case development for the application, resource management, portfolio management, data security planning, etc. The development stage is where the initial SDLC takes place, including identifying problems, planning, designing, building, testing, deploying and updating the first version of the application. The operations stage includes deployment and maintenance of the technology.
In an agile development model, there will probably not be a final handoff to the operations team for deployment and maintenance. Instead, following DevOps principles, the developers will remain involved after deployment and make any changes needed.
ALM is a beneficial approach that saves time and money by helping avoid costly mistakes and scope creep. The initial governance stage, with its vital business planning and resourcing, helps align the app to business outcomes. The version control and planning tools found in many ALM products help the developers make better decisions as the product ages.
There are many ALM tools available, which support the unique requirements of this effort. Features such as requirements management, source code management, testing and QA, version control, portfolio management, real-time planning, and team communication, are available in most of these products.