Problem solve Get help with specific problems with your technologies, process and projects.

How does ALM differ from SDLC?

In this expert response, Mike Jones explains that SDLC is a subset of ALM with ALM covering the processes for all products in a portfoli. He also gives some specific recommendations of when you might want to use a waterfall SDLC and when it might be better to use an agile SDLC for the applications in your portfolio.

How does ALM differ from SDLC?
ALM (application lifecycle management) is quite different from SDLC (software development lifecycle). ALM is about managing the entire application lifecycle-- from the initial application definition to application maintenance, retirement and everything in between. I like to think of ALM as a superset, one that should include one or more SDLCs. To use a file management analogy, look at ALM as the root and SDLC as a child folder.

Going with my premise above, one of the major steps in the application lifecycle is the actual delivery of the...

application. This is where the SDLC comes into play. SDLCs are all about the process you will use to deliver an application. Most SDLCs provide a formal set of phases and tasks within each phase to deliver a working piece of application software. In most cases the SDLC is based on a formal software development methodology.

In the best case scenario, a development shop will only have to deal with a couple of distinct SDLCs: one for when they acquire packaged apps and one for when they deliver custom applications. In some cases the actual nature of the application will require a specific SDLC.

When purchasing a package, I recommend using more of a waterfall SDLC as you need to define your requirements to accurately assess the package fit. On a related topic, if the package requires more than 20% customization from its "out of the box" functionality, you should consider a different package or reassess the build versus buy decision.

When you are going to build a custom application you should base your SDLC on an agile approach. This will allow you to start fast, deliver incrementally and react to changing business needs as you go.

Thus, your ALM process should cover all applications in your portfolio with different SDLCs for specific application deployment needs.

Dig Deeper on Topics Archive