As the software development industry matures, it is devising methods for ushering products from inception to completion, a process that has come to be known by the buzzword ALM (Application Lifecycle Management). Of course, development teams having been practicing ALM since software development began. The fancy acronym is the new thing!
For its part, Agile software development methods support all aspects of ALM. In fact, Agile puts ALM practices at the forefront of software engineering. This article explains how ALM can help organizations in general and then discusses how Agile practices utilize ALM.
The Elements of Application Lifecycle Management
Practices in ALM can be grouped into three areas:
Within each area, the following practices can be applied to any development team's ALM strategy.
- Requirements gathering
- Project management tools
- Source control
- Defect tracking
- Automated testing and more
As software teams have grown, tools to manage these parts of the lifecycle have become mainstays for many organizations and an important consideration in the ALM space. But what makes an ALM tool or practice Agile?
Because of the discipline that Agile methods have imposed on development teams, many tools have emerged to assist with those methods. As the Agile Manifesto states, "Individuals and interactions OVER processes and tools (that is, while we VALUE the items on the right, we VALUE the items on the left MORE)."
Clearly, Agile does not discourage the use of tools. What makes an organization's ALM practice(s) Agile is not the tools or which ALM practices it uses. Organizations need to utilize ALM practices only when it helps them to deliver value. Agile is not a silver bullet; it is a better way of developing software. So, making sure that individuals on the team interact frequently and do not rely on the tools over the interactions is one way to ensure that your ALM practice is Agile.
To ensure that interactions are valued more than tools, do not choose the tool and then make your process fit what the tool does. Have your team familiarize themselves with the Agile methods first, using a team room if possible to conduct lots of high-bandwidth communication. Then use low-tech options such as cards on a wall and spreadsheets for your ALM requirements and planning tools until you need something more advanced. All the while, hone the interactions between your team and the business. When it becomes too painful to continue with the low-tech approaches, research the tool that allows you to eliminate the pain.
Below are ALM practices and why and how Agile may put a different spin on them.