Application Lifecycle Management (ALM) encompasses the three key stages of the development and use of an application, referred to as idea, development and operations. This approach is the evolutionary successor of Software Lifecycle Management, a process limited exclusively to the stages of the development process, because it aims to encompass the whole period of time during which an organization allocates funds towards the development of an asset, from the initial idea to the end of the application’s life. The ALM trend, as applied today, includes DevOps because both concepts encourage the communication between IT operations teams and developers working on the same project. Further, it responds to the shift towards more complex systems where hardware and software lifecycles are interconnected and developers remain involved with the application even after deployment to continue making incremental changes. A successful ALM implementation is one where streamlined cycles of continuous assessment between the three stages are nurtured and maintained.
However, one of the main challenges of ALM is that of developing a predictable flow between the different parts of the process and visualizing it for each facet of the entire project team.
Image from community.hpe.com
Optimizing process mapping for flow in ALM
Mike Jones, a contributor to the industry media Tech Target, refers to the goal of ALM as “to improve application development and maintenance projects, making these projects more predictable and transparent to benefit the development team and the business as a whole”. If ALM is new to you, check out one of his articles about ALM’s complex identity. Without a clearly mapped and stable flow between its parts, ALM would not be able to achieve its primary goal. It is fitting then that the essential elements of Lean operations, including a pull-based Flow process, the prospect of value creation at every stage of work and the potential for perfection are inherent in the way ALM positions itself in regards to older methods of managing hardware or software life cycles. In many ways, a successful ALM implementation is an implementation of Lean, as well. Compare the goals and stages of the Lean and ALM processes in the image below and you will notice the commonalities between the two.
The principles of Lean can be applied at all stages of ALM and those who have done it claim that, with dedication and an investment in discipline, it can result in a predictable and transparent flow in any process. In an article for InfoQ called “A Step to Step Guide to Lean ALM”, Dave West, the Chief Product Officer at Tasktop, shares his belief that modeling the major steps of a lifecycle based on the Lean principles can optimize an ALM process towards success.
West advises, “…progress is more important than completeness. You can spend ages building the perfect process model for the Application lifecycle, describing all the possible paths and situations, but frankly the value is in modeling the major steps. It is therefore important to concentrate on getting a broad understanding of the flow …”
To run an ALM process using the principles of Lean, the team must select a way to map their flow and model the major steps of their process transparently.
Kanban is a method used by teams in various industries in order to visualize their work and map their workflow. Kanban uses columns on a board to represent the stages of a project and cards in the columns to represent specific work items. This approach helps teams apply the principles of Lean and places an emphasis on being as efficient as possible with the available resources. Being efficient within the individual project teams will help the overall process to create flow and continuously deliver value to the customer in a predictable and uninterrupted manner. Unlike Scrum sprints, for example, Kanban nurtures a streamlined process that can define all phases of an application’s lifecycle and channel them towards contributing to the value stream. DevOps teams, a key component of ALM, are highly unlikely to be successful with methods like Scrum, as they are not conducive to mapping flow throughout an entire organization. On the other hand, Kanban is a universal method that can span different departments without breaking the value chain.
Let’s explore two ways in which the major steps of ALM can be modeled using the Lean principles of the Kanban method.
Each stage of ALM can be mapped to its own Kanban board or boards to visualize the workflow for the team working on the various phases. Using a Kanban software, the cards on each of the process boards can be linked accordingly in order to create a hierarchy of interconnected work items and place them in the appropriate columns on the boards.
In Kanban, the term project is capable of uniting a number of different boards that represent all phases of the Application Lifecycle Management while, at the same time, providing clear, unique frameworks for each. A typical ALM with multi-board Kanban implementation will include the following project boards to provide a structure for each element of the process.
The Portfolio Board is the master application lifecycle board that helps project managers track the progress of all stages of the lifecycle on a global level.
By creating a links hierarchy between master tasks on this board and smaller tasks scattered among the other boards in a project, the portfolio board makes it easy to have a bird’s eye view of the status aspects of the application lifecycle. The image below provides a visual representation of a links hierarchy in which a breakdown for one of the features of the application is tracked on a macro as well as on a micro level. Find out how to set up a Portfolio Kanban to monitor progress on a global level without losing track of anything.
Example visualization of a links hierarchy on a Portfolio Board in Kanbanize
The most common scenario of teams working on an application are software development teams working on new development as well as on support issues. In the Kanban board below, the Development team has separated their work among the Expedite, Customer Issues and Features swimlanes and has mapped their process to the columns that segment the board. In a Kanban implementation of ALM, cards on this development board can be linked to support cards on the Ops and Maintenance board as well as to larger project cards in the Portfolio Board. In the In Progress section of the board, the columns Development and Testing are where the most action takes place. In Kanban, these columns have strict work-in-progress limits in order to prevent the appearance of bottlenecks, an impediment to flow. Read further about how to set up a development board to track the ALM Development Phase.
An example of a Development Board setup in Kanbanize
During the QA process, there is a lot of hand off back and forth between developers and QA. In order to prevent the creation of waste, the flow between the two processes and those that come before and after them needs to be modeled as clearly as possible on the Kanban. No matter whether you are managing the QA team as part of the Development board or on their separate Kanban, portraying the relationship visually helps the communication between the two teams flow smoothly. As a result, the negative impact of the handoffs that might occur as features move between the two teams before production is minimized and flow in the process is maintained. A while back, we published a step-by-step guide on exactly how to configure a QA board for your team in our Kanban for QA Case Study here.
An example of a QA board setup in Kanbanize
IT Operations Board
Development and IT Operations can be separated into two Kanban boards in a project with connecting links and automations creating a relationship between the individual cards on both boards. There are a number of legitimate use cases that point to the success of Kanban, in particular, as an ALM-conducive method to support the interconnectivity of IT Ops and Development for greater efficiency of both processes. Check out this interview with Yuval Yeret, senior enterprise Agile coach, about the synergy of Kanban and DevOps as well as a direct link to a suggestion of how to set up a DevOps board in Kanbanize.
Example of an IT Ops setup in Kanbanize
Each stage of ALM can also be mapped to a singular Kanban board for all phases of the ALM process.
With the option of a slightly more sophisticated backlog to allow for the structuring of the Idea phase, a way of performing maintenance and support as well as some team discipline, you can manage the entire ALM process on one single Kanban board. Your entire team can be working on it together while measuring the efficiency of their process on an individual level and on the team level.
This is an example of the sections of a single Kanban board tracking the entire lifecycle of an application and allowing for a smooth flow to be created between departments and phases of progress. This basic visualization can actually be broken down to the subparts of each process. For example, the Testing section of the In Progress column, can be broken down to Coding, Waiting for Tests to Pass, Ready for Review, and Review to better represent the process of QA itself. Below is a schematic structure of a Kanban board that could be used for an entire ALM process.
In his discussion on ALM, Mike Jones posits that “it’s not so much about picking specific products for your ALM implementation, but rather finding the right process and framework.”
If you want to try structuring your Application Lifecycle Management with the Kanban method, talk to us. We will help you create a breakdown of your ALM process on flexible Kanban boards that you can use to stay efficient and create a predictable flow in your process.