RegisterLogin
What is ALM?
 
What is ALM?

ALM is an acronym for Application Lifecycle Management. This acronym embodies a philosophy as well as specific methods and tools. ALM is gaining visibility and importance in the software development field as more companies realize the key role that it plays in their ability to deliver high-quality software in a timely manner. First, let’s examine the acronym itself. Then we can dive into the specific components.

Application: Software designed to address a specific need. For instance, an accounting program is an application. It harnesses the power of the computer to manage a company’s financial accounts. There are many different types of applications to address a wide variety of needs, from business accounting to news, entertainment, scientific research, transportation, manufacturing, health care – you name it and there is probably a software application involved in some way.

Application Lifecycle: Every software application has a lifecycle. The application starts out as an idea. That idea gets captured in the form of requirements that describe the application. The application is built, tested and released. After its initial release the application is supported, maintained and enhanced. Defects are corrected and new features added, resulting in another release. Eventually the application is replaced altogether with a newer version using the latest technology. And the cycle starts all over again.

Application Lifecycle Management: The application lifecycle needs to be deliberately managed in order to achieve the best solution in the least amount of time and at the lowest cost. There's more to delivering great software than writing elegant code. The software product is informed by clearly understood requirements and sound architectural choices. But the application also needs to be tested, packaged, deployed and supported. This end-to-end holistic view of software development has come be known as Application Lifecycle Management.

The philosophy of ALM is simple: optimize your software development process to maximize the flow of value to your customer. Making this philosophy a part of the organization’s culture produces improvements because it promotes the right behavour. But the key to gaining a competitive advantage is in how an organization goes about optimizing their software development process.

Software development as an engineering discipline is still in its infancy. But effective practices are beginning to emerge. Through trial and error we’re learning how to deal with risk, ambiguity and rapid change. We’re successfully adapting engineering practices from other, more mature industries. We’re learning how to reduce waste and increase the flow of value by using the right combination of methods and tools.

Application Lifecycle Management encompasses a variety of disciplines, combining them into an integrated solution for managing the lifecycle of an application. These disciplines include:

Requirements Management: the process of eliciting, prioritizing and agreeing on specific requirements for the application, and then controlling change and communicating to relevant stakeholders. Requirements management is an ongoing activity throughout the lifecycle of an application.

Software Architecture: the process of developing an overall design strategy for the application. Often involves the use of modeling and design patterns.

Software Configuration Management: the process of tracking and controlling changes in the application over time.

Software Quality Assurance: the process of applying and monitoring the testing methods used to ensure the quality and robustness of the application. These testing methods can include unit tests, integration tests, acceptance tests and usability tests.

Release Management: the process of building and releasing the application in a consistent, repeatable manner. Often involves automated build and verification testing, and in some instances includes automated deployment.

Project Management: the process of planning, organizing, and managing resources to bring about the release of an application that successfully realizes the expected outcome within a specified period of time.

Support Management: the process of providing ongoing customer support by tracking reported issues to closure in a satisfactory and timely manner. Often combines software defect tracking with IT hardware and systems support to provide a comprehensive support solution to the customer.

 

 
Copyright 2009 Arrowrock Corporation Terms Of UsePrivacy Statement