As opposed to a single defined notion of a tool, a concept that I consider more useful in this context is that of an ALM framework. These frameworks are actually concerned with the full evolution of applications, as opposed to just individual pieces of the lifecycle, and include both the ALM process and supporting tools. From a tool perspective, there are two main approaches to take with an ALM framework for your organization. You can collect ALM tools and integrate them to build a customized ALM platform or you can install a full-fledged ALM platform.
As usual, the best method depends heavily on the organization, but there are a few guidelines that should be taken into consideration when picking a particular solution. Once you have defined your ALM process, look for the right set of tools or integrated platform that will remove the major bottlenecks and inefficiencies in your process. If looking at individual tools, the main concern is integration cost. Although assembling a set of tools gives more flexibility to support your organization's ALM process, the cost of integration shouldn't be neglected. You need to be careful not to spend more resources building the ALM framework than actually doing ALM.
On the other hand, when going for a fully-built ALM platform, make sure the platform is flexible enough to fit your organization's process. Keep in mind that these processes usually have many tacit rules; it's not just what's written in the manuals. One suggestion is to look for the ability to "break the rules" on the ALM platform. It should be possible to bend the pre-defined process if needed, to try new ways to do the process, or to handle an exceptional situation -- all of which is done with full notifications and accountability, of course!
ALM tools are a broad category for sure. But with the right ALM process, you can identify the areas where you need to remove inefficiencies and then select the right tools for the job.
This was first published in November 2010