Software lifecycle management (SLM) is the discipline for managing software development across its life cycle. I’ve been covering this space since 2003 when I started as an IT industry analyst and have witnessed its evolution as the vendor tool category of application life cycle management (ALM). It’s useful to ask what the difference is between SLM and ALM.
How to do software engineering right is a perennial question that everyone in the software world, academic to commerce, is engaged in. The art of doing it right has evolved over many decades, and each generation is adding to better practices and methodologies: most recently we are in the aftermath of the agile, lean, and DevOps revolutions/evolutions. Thus, there is an increasing body of knowledge of useful and good ways of creating software, and this lasting knowledge is what SLM aims to capture.
The commercial flip side is how vendors market tools to cover this need, and hence ALM is the market of tools that do SLM. The point being that ALM doesn’t necessarily offer the ideal SLM for hard commercial reasons. In an important respect that highlights the gap that existed, the next stage in ALM evolution brings us nearer to SLM: a true end-to-end management of the life cycle that embraces the most recent trends of agile, lean, and crucially, DevOps.
The older generation of ALM tools principally catered for the needs of developers, spanning the concept, requirements, testing, coding, building, and some basic delivery automation. However, DevOps has introduced a whole new level of automation and sophistication (ease of use at scale) in a new generation of release management tools. This tool category evolved quite separate from ALM but seen from an SLM viewpoint, the end-to-end integration of tooling should have ALM include DevOps.
ALM has gone through waves of adoption. In the world of enterprise IT, ALM has largely given way to essentially agile life cycle management (although the best of these tools have hybrid features for legacy projects to be managed in waterfall styles of work). Vendors market to the needs of their customers, some prefer loosely coupled tools, others prefer tightly integrated, highly centralized ALM suites. The open-source movement has had a huge impact in this space.
The need for ALM extends also to advanced engineering and manufacturing, and with the digital transformation taking place across every industry, business products and services are becoming more software-centric. The need for ALM, and especially the tightly integrated, highly centralized variety is greatest here, and represents the growth market for ALM. Especially with safety-critical product development, the use of ALM is paramount to meet the needs of regulations and compliance.
The next evolution of ALM is therefore an integrated suite that includes DevOps release management. To trace requirements across test, build, and deployment: to which container, on which cloud or mobile product (phone, pacemaker, car etc.). To audit changes and control access and deployments. To know which issue in the field traces back to an individual developer for a rapid fix and update. Some of these features may be unfashionable today in enterprise IT, but are necessary in engineering manufacturing, especially in safety-critical product development; this is where the next generation of ALM is growing.