Tuesday, October 31, 2006

Understanding ALM

It is important to understand the complete life-cycle of an application to know and manage risk around it. ALM links all pieces of the puzzle to give us a complete picture and a bird-eye view. One can look at the life-cyle from different perspectives - For example: it can be read to reflect risk from quality standpoint.

Every software project starts with a simple concept and follows eight typical steps as shown in the following ALM diagram:

CopyRight - Rajeev
In the first step, Business Analysts gather requirements from customers (voice-of-customer forms, surveys, polls) and document them in the requirements database called Product Requirements Definition (PRD). Once the requirements are ironed out, Technical Analysts convert these requirements into Functional Specifications Definition (FSD) in terms of User Cases (UML diagrams). The process then goes through the development cycle, where developers, release engineers, and testers work together to deliver the requirements in form of a product or a service offering.

In this process, Quality Assurance (QA) team is responsible for the validation (Are we building the right thing?) and verification (Are we building the thing right?) of engineering deliverables.

The above ALM diagram summarizes different steps of a typical software development process. Companies have various adaptations of this overall process with the following steps being crucial and unifying.

  • Requirements Management
  • Test Management and Test Automation
  • Release Management
There are different players in the ALM industry (top ones being Mercury and Borland) that provide tools for different pieces of the puzzle. More and more companies are focusing on automation frameworks, which aid testing. However, if you really want to improve quality of your products, you must "Cease dependence on inspection to achieve quality" (Deming's TQM principle)

Risk is injected into the system everytime some information (or some work-product) exchange hands. We must have tools that can measure the quality of the processes (i.e. ALM sub-processes) to be able to deliver a really good quality product.

Watts S. Humphrey is the poineer of TSP and PSP processes, which uses software engineering discipline to deliver higher quality products. Look at this video for more enlightenment.

Trackback URL: Understanding ALM