What is ALM?
Application lifecycle management (ALM) is the people, tools, and processes that manage the life cycle of an application from conception to end of life.
ALM is made up of several disciplines that have often been separated under legacy development processes, such as a waterfall development method, including project management, requirements management, software development, testing and quality assurance, deployment, and maintenance.
Application lifecycle management supports agile and DevOps development approaches by integrating these disciplines together and enabling teams to collaborate more effectively for your organization. Adopting ALM also leads to continuous delivery of software and updates with frequent releases, sometimes as often as several per day, as opposed to new releases only coming every few months or once a year.
Application lifecycle management provides a framework for software development while also helping you to manage your software over time. Following ALM practices uses a lightweight, pre-established plan and requirements to turn an idea into an application. When approaching software development with ALM, you need to consider the whole lifespan of the application. Maintenance and future updates should be taken into account, including when the application should be retired and replaced. By bringing these pieces together, ALM leads to faster deployments, improved visibility into your workflow, higher-quality products, and increased developer satisfaction.
ALM helps give visibility to the development process. Because the process is integrated, you can see what progress has been made, which steps still need to be completed, how long things are taking, which tests have been completed, and more.Application governance
Governance describes the decisions made about an application. When you begin the process of creating a new application, you’ll start with the initial idea for the app and also need to consider how it relates to your business needs and goals. This contributes to the requirements for the new application, which need to be defined and agreed upon as part of the governance stage. Resource management, data and security, and user access are additional components of application governance. Standardization of these processes leads to the ability to automate governance. Automating these governance processes will speed application delivery.
After requirements for the application or update have been outlined and agreed to development can begin. Teams that follow the agile methodology for development may be developing and deploying as often as once, or even several times, each day. Designing, building, testing, and deploying the application can all be considered part of the development phase.
Once the new application has been developed it will need to be tested and bugs will need to be resolved before moving forward into production.
For agile and DevOps teams, testing should occur simultaneously with development. Feedback should be passed back to the development team in a continuous manner.
Continuous integration should be part of the development process to keep these frequent updates from conflicting with each other.
The goal of the testing stage is to make sure that the requirements outlined by governance have been met and that the application works as it should before being released to users.
Operations and maintenance
After the tests are completed and the necessary bugs are fixed, the application can be deployed to users. The operations and maintenance stage is what focuses ALM on the complete lifespan of an application. Ops doesn’t end once an application is deployed. Regular maintenance and updates need to be considered. Retirement of an application or service should also be considered as part of maintenance. Teams should define at what point an application will no longer be supported or a newer version will become available.
Application lifecycle management tools
ALM tools essentially function as project management tools that help you bring people and processes together. Look for a tool that includes version control, the ability for teams to communicate in real time, requirements management features, estimation and project planning, source code management, and test management.You may find all of the features you need in 1 tool, or you may need to integrate with additional tools—developer-specific tools, for example. The ALM tool you choose should also support your development process, whether it's agile, waterfall, DevOps, or something else.
Examples of ALM tools:
- Atlassian Jira
- IBM ALM solutions
- CA Agile Central
- Microsoft Azure DevOps Server
- ZenTao ALM
ZenTao ALM is a Scrum tool for application development projects with features including Backlog Management✓ Sprint and task✓ bug tracking✓ Roadmap✓ Burndown✓ Kanban✓ SaaS✓ Self Hosting✓