Focus on the “Lifecycle”
Application Lifecycle Management is – or should be – the management of an application’s (or applications) lifecycle. An application’s lifecycle really begins from the time it is originally conceived – as a business request to IT to support a specific business function, or as a solution to a strategic opportunity identified during a management review, or a response to a new opportunity for an IT services firm (to bid) for developing a new solution for an external business customer.
In response to the request or opportunity, an organization may build a new application from scratch or implement an ISV product (such as an ERP or CRM tool) or even integrate a combination of in-house, open-source and ISV components into a single “Application” that solves the business problem that the request or opportunity originally captured.
The initial implementation of the solution (and even subsequent large updates to it) is typically run as a project to develop, deploy and implement the application for the business functions that need it – sometimes for an entire organization. Subsequently, that application needs to be maintained and enhanced in response to new and evolving business needs.
While the primary focus of ALM is in the ‘development or implementation’ part of the lifecycle, and the tools and processes needed to effectively deliver applications, all of the above activities, and some that are subsumed in them, constitute Application Lifecycle Management.
What is Lean/ Agile ALM?
The term “Agile” usually refers to the Agile techniques of software development such as Scrum which focuses on frequent delivery of software in multiple iterations or sprints in order to provide early visibility to the end-customer of what is in the pipeline – and take corrective action if needed. A variety of other Agile software engineering practices such as XP, TDD, BDD and others tackle the problems associated with traditional software development methods such as “Waterfall” to help organizations deliver software on time and with the expected quality and fidelity to business requirements.
Lean software development, with associated tools such as Kanban based pull systems, apply lean principles of seeing (and optimizing) the whole picture, delaying commitment as much as possible, delivering continuously or as often and as much as possible, and empowering the whole team, to developing and delivering software products. In many ways, Lean methods attempt to solve some of the shortcomings of Agile methods such as scope leakage, delayed or missed deadlines and disruptive organizational changes.
Lean/ Agile ALM is all about delivering the right applications/ solutions to business using not only Lean/ Agile development processes and tools but also by demonstrating agility in managing the overall ALM – be it in evaluating an application portfolio’s RoI to business, evaluating and making the right choices on a regular basis or providing visibility to all aspects of an application’s development work in progress.
Agile ALM is about Business Agility!
Agile ALM is about providing teams and organizations the visibility and information they need to make informed decisions as quickly as possible to ensure that they stay on top of a constantly changing business world. It is about providing an integrated ecosystem that ensures traceability that is critical for making changes to software without causing other software to break, and keeping the overall software stack in sync. It is about analytics and insight that allows organizations to stay on top of their technology investments and RoI, proactively helping them make investment decisions.
In today’s world of highly technology and software dependent businesses, Agile ALM is about ‘agility’ that it provides to an organization to respond to changing market conditions with technology solutions effectively and on a sustained basis.
Lean/ Agile ALM is about making businesses lean and agile!