Agile Application Lifecycle management, known as Agile ALM, is a relatively new concept, and can be defined as a marriage of Agile methodology with Software Configuration Management to develop and release software in a coherent and integrated way. The best part about Agile ALM is that it can be customized to be used with any process models and methodologies, even Waterfall and Spiral models. This approach results in processes and lightweight tool-chains which are very high quality, flexible and open to change. The primary focus of Agile ALM is not processes or tools but people. Projects are driven by people who are provided authority, and in return very high accountability is expected. In scenarios where tools will benefit, they have to be light weight and open source, so that they remain agile in principle.
- Proper implementation of Agile ALM leads to:
- Increase in productivity
- Reduction of cost
- Team collaboration
- Removal of redundancy
- Practical approach of coding and deployment
- Makes software development fun
The philosophy behind Agile ALM is that it removes functional, technology and process barriers. It forms a streamlined approach wherein every process and every artefact is very nimble and adaptable. It encompasses all the phases in a lifecycle like Development, Design, Deployment, Testing, Release etc. It is not restricted to any particular phase and it also spans all artefact types with equal ease. Because it implements light weight tools and it also defines task based activities which are directly aligned to requirements, hence it allows teams to collaborate without any silos. Another feature of agile ALM is that it makes the relationship of an artefact along with other artefacts or user stories or tasks visible to everyone, it accounts for greater transparency among business teams, while helping in traceability and reproducibility.
It’s essential to take a stakeholder focus in any Agile effort; one must consider the role of releasing code in Agile ALM as well as the service orientation and application architecture. As merely adopting Agile principles is not enough unless they are inculcated and internalized, similarly it is imperative to establish an effective ALM through culture, processes, tools and manpower. Agile ALM is aligned with engineering processes spanning development cycles, which result in releases that are functionally and technically consistent. By organizing, linking, and referencing activities and artefacts, you can track the development progress as a whole. Through the use of integrated tool chains, ALM helps you to overcome the biggest challenge in the software creation process: the technological and functional barriers that make it difficult to implement a transparent and consistent development process.
Agile ALM, when implemented properly, can bring transformational changes in the way a software project is developed. It’s an innovation approach which will find many takers in the software industry in the years to come.