What Is the Definition of Application Lifecycle Management (ALM)?
I thought it would be helpful to take a deep look at application lifecycle management (ALM) in order to bring some clarity to the field. First, let’s define the term ALM.
Wikipedia defines ALM as “the process of managing the life of an application through governance, development and maintenance.” So, how does this differ from the software development life cycle (SDLC)? The answer is simple. SDLC deals with the phases of software development; ALM deals with a broader perspective of the applications.
Two analysts from Gartner write about the magic quadrant for ALM by further refining the term into differing theologies based on the development methodology. They then introduce you to sixteen different vendors whose tools help you to manage ALM; the authors also explain how the tools stack up against each other.
Many vendors have offered their own definitions of ALM. Microsoft provides a video that offers the company’s own definition and branding of ALM. HP, another major player in the ALM market, offers its take on ALM and how you can improve by embracing the concept of application lifecycle intelligence (ALI).
Now that we have a definition of ALM and we know how it can be broken down, let's turn our attention to ALM's component parts.
Currently, there is no consensus on what makes up ALM. However, there are some common components that most will agree on: design, requirements management, project management, change management, build management, software configuration management, software testing, issue and task management, and release and deployment management. We can potentially add more to this list if we continue to probe into ALM.
In conclusion, we now have a definition ALM, we understand the parts that comprise it, and we have a variety of tools that can help us manage it.
I'll leave you with these questions: How do you personally define ALM? How is ALM practiced where you work?