The more software project and test managers I talk to, the more definitions of application lifecycle management (ALM) I hear. One calls it a set of integrated tools to manage the software development lifecycle. Another tags it as a methodology that ties together governance, development, and operations processes. Others apply it to any tool that helps in managing software. It appears ALM means different things to different people.
In my traditional manner of doing research, I looked up the definition in Wikipedia. What did I find?
Application lifecycle management (ALM) is the marriage of business management to software engineering… It is a dynamic field with changes in definition coming about quickly as the field matures.
OK. So Wikipedia wasn’t going to give me the definitive answer. How about TechTarget’s own WhatIs? I love that resource for finding trendy tech definitions and subscribe to the WhatIs word of the day. I checked it out, and guess what? WhatIs didn’t have a definition for ALM either. So, I decided to take a crack at defining it for WhatIs, even though computer science pundits and scholars have yet to author an official definition.
I can see the headlines now: Yvette Francino discovers true meaning of ALM.
Wikipedia will need to be updated. Computer science textbooks around the world will reflect my words.
The definition will be translated into 138 languages. Developers will sit in circles, cross-legged in Buddha position chanting, “ALM” as they quietly contemplate the meaning of application lifecycle management, authored by Yvette Francino. Clearly this is a heady responsibility that must be taken seriously.
Upon further research I discovered that Wikipedia had referenced one of SSQ’s articles on the topic: ALM 2.0 Application lifecycle management changing to meet development organizations’ needs. In this article, Kelly Shaw tells us, “ALM is a set of disciplines that together govern the process of turning business ideas into software.” She goes on to describe a new generation of tools, ALM 2.0, that “is about transforming tools from being discipline-centric to being role-focused and process-centric.” ALM tools are meant to integrate the various disciplines that are used in software development, using elements such as reporting, traceability, and collaboration. The data gathered throughout the lifecycle, if done well, can be used cohesively as part of a whole system.
I suppose I’d compare it in simple terms to a game of “gossip.” You get a whole bunch of people together lined up and one person whispers a phrase to a second person who whispers it to a third person and so on. The final person says the phrase out loud and it is invariably much different than the original phrase. If you start with a long phrase and a lot of people, you can bet your ending phrase is going to be outrageously different!
The point is, the more complex a software application is and the more tools that data must be shuffled through, the more likely it is that your ending data is going to lose something in translation from tool to tool. ALM tools attempt to solve that problem.
Are they succeeding? I queried some of my friends in the industry and found that ALM tools were met with a fair amount of skepticism. “Moonbeams and fairy dust” was a definition thrown out. It seems that many practitioners think ALM is often marketing hype to sell tools. I asked SSQ contributor and industry consultant , Matt Heusser to comment.
“It’s been my experience that there are real problems with keeping track of exactly what is in the current release and how to test it, especially as systems mature, or companies grow through acquisition and need to integrate disparate systems. So the problem is really there, it just seems to me that the solutions offered a bit naive and incomplete. This leads me to a search, not for ‘one ALM tool to rule them all, one tool to bind them,’ but instead for just enough management of our apps.”
Matt will be expounding upon this in his upcoming SearchSoftwareQuality tip, Just Enough ALM . Expect it in the next few weeks.
Is ALM a modern solution to the complexity we face in software development? Is ALM pure marketing hype — a vendor buzzword used for any tool that is used in software development? Let me know! What do you think?