The ALM Background
This post will discuss why we need an ALM and why we care about it. Back, in 2008 when I started my Ph.d. degree in ALM area, I always argue that in the end user don’t see your codes, in the end users don’t see how you build the software. They see the result, they see the quality of your product, they see how you hit deadline and commit with working software. The idea behind of my arguments is abut “working software”. The question is how you make “a working software”?
The answer is simple enough is just “code it!”, creates your software by using any components , any software that help, and eliminate the bugs as soon as possible. The “Hajar Bleh” concept is a well known process in Indonesia . But it only happens with short and quick win project. In the long run projects let says more than three months, you will see a significant disaster using “Hajar Bleh” Process. A good sample in working software is come from Open source community. They provide strong relationship in vision, good team work, and structured process. A lot of Open Source community that build “real software” come with a good milestone and release plan that answer what will you do in the next quarter?
ALM and Software Process
ALM majorly focus in software development lifecycle itself. It is part of Software Engineering aspect that we learn in a classroom. Rather than works in “analysis paralysis”, many ALM concept focuses in delivering Software by reduce your workload, increase efficiency, quality and visibility and ultimately increase customer satisfaction. ALM is just like continues improvement (Kaizen spirit) in a software engineering process. It’s not only taking care about how we build a solution, but also taking care about how we sustain and maintain the solution in the next release. Frankly speaking, when you need a long run technique to maintain your solution or product, the ALM is the answer.
ALM and Agile method
When you heard about working software, you might get an idea to solve your problem using Agile method. Scrum, XP , or ICONIX will do the rest but ALM give you more. ALM add management and control aspect. You can see that ALM combine process, tools, and method. ALM give you additional mindset in terms controlling your project using a well known Agile method like Scrum or XP. It is work with your existing knowledge not against it
ALM and Tools
Tools provide you a great productivity. Sufficient tool will give you sufficient speed to solve the problem. Visual Studio or others shall support ALM in many ways. For example, VS2010 works great with the TFS to provide end-to-end ALM solution. You can download the visual studio vision by clicking the image below