DEV Community

Cover image for What’re the Differences between Software Engineering, Application Lifecycle Management and Project Management?
Franco Scarpa
Franco Scarpa

Posted on

What’re the Differences between Software Engineering, Application Lifecycle Management and Project Management?

Top comments (7)

Collapse
 
brandinchiu profile image
Brandin Chiu

Everything you've included here is an organizational process for building and shipping a product.

Application Lifecycle Management refers to how an organization manages and plans their internal Software Development Lifecycle, and is in most cases (in my experience), a synonym for systems engineering, or the process of planning the full scope of a software project from start to finish including conceptualization and development. The actual act of doing this has fallen out of practice due to the wide adoption of Agile, and the more perverse version "move fast and break things", as popularized by large tech companies like Facebook.

Project Management is the consistent review of a particular project to ensure that it is meeting it's goals: things like deadlines, financial goals, etc.

In short, the lifecycle management is planning the development of the project, the engineering piece is actually programming it, and the project management piece is keeping it on track.

That being said, these terms are heavily generalized, and will vary widely from organization to organization. In my over a decade of doing this, I've never actually formally worked in an environment with anyone responsible for application lifecycle management, for example. A lot of this work gets done as part of the software "engineering" component.

So take these definitions as a more high-level review. The specifics will change heavily from one interpretation to another.

Collapse
 
francoscarpa profile image
Franco Scarpa

Thanks, Brandin. Your answer helped me. At University, I had both Software Engineering and Project Management classes. Unfortunately, I couldn’t attend them because they were optional, but now that I work as a developer I thought they were important things to know. For example, at work we use CI/CD pipelines to make night builds. Before this experience, I’d never heard about this concept. Again, I thought I was missing an important part of software development.

Collapse
 
brandinchiu profile image
Brandin Chiu

I'd highly encourage you to spend some time on your own learning about project management.

It's a valuable set of skills to have. It will help you better appreciate the work your managers are doing and improve your ability to communicate and work with them, and it will prepare you for how your career will progress in the future.

It's super important, and a knowledge set I find a lot of developers skip.

Thread Thread
 
francoscarpa profile image
Franco Scarpa

That’s great! I surely want to improve it! Do you think I should do the same with ALM and SDLC?

Thread Thread
 
brandinchiu profile image
Brandin Chiu

Understanding how SDLCs develop is probably important, but ALM specifically isn't really a thing anymore.

The industry has matured a lot since ALM was used, and most of those responsibilities have been broken up into other jobs like devops and just general best practices.

Thread Thread
 
francoscarpa profile image
Franco Scarpa

What’s your version of “devops”?

Thread Thread
 
brandinchiu profile image
Brandin Chiu

In this particular scenario we'd be talking about things like managing automated testing, deployments, and source control systems.