Application lifecycle management (ALM)
regards the process of delivering software
as a continuously repeating cycle of inter-related steps: definition, design, development, testing, deployment and management. Each of these steps needs to be carefully monitored and controlled.
Proponents of application lifecycle management claim that it
- Increases productivity, as the team shares best practices for development and deployment, and developers need focus only on current business requirements
- Improves quality, so the final application meets the needs and expectations of users
- Breaks boundaries through collaboration and smooth information flow
- Accelerates development through simplified integration
- Cuts maintenance time by synchronizing application and design
- Maximizes investments in skills, processes, and technologies
- Increases flexibility by reducing the time it takes to build and adapt applications that support new business initiatives
The principles of application lifecycle management (ALM) are integral to mature development disciplines. Experienced development organizations employ these principles to ensure quality in the products they develop.
Application lifecycle management involves a variety of typical software project phases:
- Project management
- Project tracking
- Requirements planning
- Design and development
- Quality Assurance
- Release management
History, proponents and precursors
As application development has evolved over time, more and more tools have been introduced. Initially, software development was supported with individual point tools, and then simple suites of tools emerged with loose integrations. Now we have modern comprehensive lifecycle tools that are fully integrated and provide capabilities for most of the roles in ALM. The most recent innovation is the discussion around ALM 2.0 which describes a vision for the application development infrastructure needed to meet the needs of the most modern development communities.
As the complexity and sophistication of the software development task has grown it has been matched by increasing numbers of tools. The initial set of tools started with version control tools at the heart of the lifecycle and have grown out from there. Though there is no industry definition of what constitutes and what does not constitute an ALM tool, and the list gets longer every day, the generally accepted list includes:
The Integrated Development Environment (IDE) is evolving; tool vendors are increasingly integrating their products to deliver suites. IDEs are giving way to tools that reach outside of pure coding and into the architectural, deployment, and management phases of an application’s lifecycle: Application Lifecycle Management. The hallmark of these suites is a common user interface, meta model, and process engine that also enable ALM team members to communicate using standards-based architectures and technologies such as Unified Modeling Language (UML).