This blog post is the first in a series of blog posts discussing the common vernacular of modern software development – their definition, origin and taxonomy.
Anyone involved with software development or administration is likely to have heard of ALM or Application Lifecycle Management. But what does it mean in today’s context? Over the last few years, you’ve probably come across terminology such as “ADLM”, “DevOps” and “EAP” as popularized acronyms. However, what is the difference between these terminologies? And what do they mean in today’s context? Is there any difference at all, or are these just another set of marketing jargon? And what about SDLC, or Software Development Lifecycle? What happened to it? And how does it fit into to modern software development.
SDLC – Software Development Lifecycle
Let’s start off with SDLC or Software Development Lifecycle first. The concept of SDLC has been around for years (circa 1960’s). The desire for software lifecycle management arose due to the increased complexity of managing software development projects, and the inherent nature of software deliverables – to be continually changed and updated. The management of the software development lifecycle aimed to breakdown this complexity into its simpler components, making them easier to evaluate and manage.
SDLC was designed to rein in development projects and add predictability, with the goal to deliver greater value. SDLC was conceived to follow a more structured and incremental approach – i.e. phases of the good old waterfall / V-Model approach to software development, where the phases consisted of software planning, requirements management, design, development, build management and finally Test and QA. And depending on the industry, software development still very much continues to follow this approach. However, over the last decade or more, Agile has become mainstream and methodologies such as Scrum and Kanban have become the defacto approaches in software development for their obvious benefits. This is where ADLM comes in.
ADLM – Application Development Lifecyle Management
ADLM or Application Development Lifecycle Management is a derivative term/acronym coined by Gartner, which they define specifically as the management of the “development” portion of an application’s life and in which key elements are included such as: software requirements definition and management, software change and configuration management, software project planning focusing on Agile planning (remember this for later), work item management, quality management, including defect management.
To recap then, both SDLC and ADLM deal with the management of the development lifecycle. So, what is the difference between the two? And how does the idea of Agile development fit into all this? Simply put, Agile methodologies like Scrum or Kanban are frameworks of implementation of the SDLC, and ADLM is the management of the software lifecycle when Agile methodologies are implemented.
So how do these two fit together? If we look at the taxonomy of both, for the most part ADLM and SDLC are essentially the same; the most significant difference lies in the methodology itself on how software development is being managed. With ADLM Agile methodologies take precedence and as a result we see activities such as Software Change and Configuration management, and Issue/Defect management play a more vital role in software development. Agile places greater emphasis on being able to not only manage software change but to embrace it.
Read part 2 of ALM, ADLM, EAP, SDLC & DevOps: Understanding Software Development.