Arvind on Taking A Closer Look at Application Lifecycle Management
I would love to start with the quote by Dave West :
“If you aren’t doing ALM today and software is important to your business, you need to start thinking about how to get transparency, how to get understanding of the application process flow, and to think of software as a business process.”
Application Lifecycle Management (ALM) is set of disciplines that together govern the process of turning business idea into software application. When appropriately implemented, ALM simplifies the lives of everyone involved in the change process, improves communication, brings transparency, automates regulatory compliance and supports the organization in rapidly providing high quality solutions to the highest priority business requirements.
ALM is much more than just SDLC or writing code but is an integral part of the IT portfolio management in today’s competitive digital landscape starting from Ideation to retiring the application. It is doing every aspect of ALM right in order to maximize the value of the applications we create or build with highest efficiency and quality at all stages to shorten the time to market. ALM is a continuous process of managing life of an application through three distinct areas: governance, development, and operations/Maintenance.
Key benefits of ALM:
- Faster time-to-market
- Increased productivity
- Design efficiency
- Increased quality
- Lower cost of introduction
- Insight into critical business processes
- Better reporting and analytics
A growing number of companies today realize that ALM solutions can yield a variety of benefits in terms of collaboration, traceability, time to market and software quality. The most important benefit of an ALM solution is coordinating the people, processes, information, and tools involved in a project to deliver innovation to your stakeholders. Because there is no one-size fits all solution, one should focus on the following imperatives as he implements an ALM approach best suited to their environment and culture:
- Use Real-time Planning
- Establish Lifecycle Traceability of related artifacts
- Enable In-context Collaboration
- Cultivate Development Intelligence
- Practice Continuous Process Improvement
When ALM is implemented as part of a traditional, waterfall-style software development methodology, it tends to take on the characteristics of the methodology itself. That’s not surprising—integration makes existing practices more efficient, but it does not necessarily change them, and ALM is at least compatible with a relatively inflexible, top-down style of management.
For organizations transitioning to Agile methodologies like Scrum or Kanban, ALM provides the backlog management, communication and reporting capabilities that are necessary in order to truly realize the promise of Agile.
ALM systems make it easy to automate and track everything that happens from the time the need for a change arises until the time the solution is delivered to the end users while reducing administrative burdens on developers. Users have an easy way to enter requests and developers have a powerful way to review and work with those requests. At every stage of the process, notifications are sent out regarding assignments and all activity is tracked. With an ALM System in place, developers can focus on supporting the business with high quality solutions.
Over the past decade the key thing I’ve learned is that in software delivery there is no single source of artifacts. Regardless of the software delivery process -- Agile or other methodology -- processes need to work across a variety of tools and be implemented on top of those tools.
We need to break through those tool and process silos in order for the next generation of software lifecycle implementation to become more about collaboration and communication -- anchored by the code and other artifacts that we are creating in the process.
With these lessons in mind, to get started scaling your Agile and DevOps transformation consider the following steps:
- Define your end-to-end software lifecycle architecture. This can take a DevOps centric view if you are focused on continuous integration and deployment. Or a more Agile centric point of view if you are focused on the project and team side of things. Either way, create a diagram that highlights how value flows from business idea to functioning software, and all of the stakeholders involved.
- Define the concrete tools that will support those teams and interactions. The reality is that each one of the stakeholders will live in their tool of choice, be that an issue track and source repository.
- Define the connections between the teams and tools rather they being in silos & falling out here & there.
To summarize, Application lifecycle management (ALM) should not enforce existing IT and software delivery environments as an overhead but should act as facilitator; the idea is to integrate as many tools and processes as possible into a unified workflow which helps improving efficiency and delivering quality in sort time in a cost effective with transparency at all levels. The ALM journey will keep continuing forward, and, as technical and process trends come and go, the core principles are perhaps more relevant than ever with the ever increasing competitive digital landscape.