It's Time for Lean ALM
Today, we are seeing an explosion of software, the likes of which has never been seen before. At the same time, because only a small, select number of people can create, manage and deploy software, a crisis is looming. And increasingly it is affecting companies in sectors ranging from manufacturing to retail. Software is eating your lunch, and you don’t know it! But if this is the case, then what should a CIO do about it?
ALM is the infrastructure to support your applications
In a word, it is lifecycle–CIOs need to look at the business process of planning, delivering and supporting their applications in a new light. They must concentrate not just on initiatives like Agile and DevOps, but instead holistically transforming their organizations to be lean. And the place to begin is not the data center or the service desk, but on how they manage the Application Lifecycle Management (ALM), which is the product lifecycle management (PLM) approach to software or application assets. It is the infrastructure that enables your IT organization to plan, develop, test and maintain applications while ensuring that they report on their status, value and change state. ALM has historically focused on the development organization, but in this modern, dynamic world, it needs to include connection points to portfolio planning and operations. Thus, ALM is the tool chain for managing the lifecycle of your applications. And it needs to change.
Time to apply lean to ALM
The term lean is used to describe the set of practices that can transform your enterprise in pursuit of increasing customer value while reducing waste. The ideas of lean were harvested from the manufacturing industry and the revolution that Toyota and other car manufactures drove in the 80s. But today it has been adopted in many industries as a set of practices to help transform their processes. At the heart of lean are five simple principles:
1. Improving the whole value chain instead of a focus on optimizing individual disciplines.
2. Creating processes that need less human effort, less capital and less time while increasing quality.
3. Increasing agility and flexibility in the process by empowering teams and providing them with a broader ability to make changes in the process.
4. Introducing measures and feedback in the system for everyone to share and respond to.
5. Making process improvement and its effect on business value the responsibility of everyone, not just a select group of process people.
And at the heart of lean is understanding the value chain and reducing waste, which then can be used to drive more value-added work.
Waste is everywhere
Non-value added work or waste undermines the software delivery and maintenance lifecycle. It manifests itself in emails, spreadsheets and meetings where information is recreated and aggregated. Each discipline in the lifecycle uses different tools, optimized for their role, which are not connected to other tools in the lifecycle. Managers can’t lead others, because they arespending too much time trying to get a real picture of what is happening and running status meetings. As software teams adopt Agile practices, these problems get worse as the work batch size decreases, but the cadence of the lifecycle increases. Manual processes that connect the lifecycle start to break. Waste is not just a cost problem, but an effectiveness and delivery problem.
Let’s apply lean to ALM
At the heart of the Agile and DevOps movements is the desire to break down the barriers and provide the process tools to enable software delivery to flow. Scrum, the de-facto Agile team approach, encourages teams to break down the barriers between requirements, development and test. DevOps goes one step further encouraging software delivery as a whole to better connect with the IT or operations groups. But breaking down barriers only works if you think more holistically, and lean provides you with the tools. If you look at the five simple principles and apply them to ALM, you can build an environment that encourages movements like Agile and DevOps. This is accomplished by the following:
1. Focusing on the value streams that drive the change to the applications. Some of these value streams come from major, innovation led changes that traditionally are funded as projects or programs, others are from production defects or small enhancements. But focusing on these flows in a holistic, not departmental, way allows you to uncover waste and build KPIs that radiate the right information to everyone.
2. Looking to automate as much of the non-value adding work as possible. The DevOps movement has taken the idea of automation as a battle cry encouraging teams to remove manual activities associated with releasing software, but automation should be applied to the whole value chain.
3. Pushing process improvement down to the people doing the work. Lean should be enabled by external process people, not implemented by those people. Once the value streams are understood it is possible to build teams that are focused on those streams and the applications that are being changed by them. Those teams need to be equipped to both understand holistically what is happening with the stream and be able to adopt the changes to improve it. To take an idea out of classic lean they must have a dashboard that shows how the production line is working, and the ability to stop it to make it better.
4. Putting in place real-time measures that provide application and value-stream transparency. No longer do production and development metrics support different parts of the organization. Instead, they need to be merged to provide insights into the true status of an application and the changes that are happening or are being planned. These metrics will evolve and change as the teams better understand what is valuable vs. noise. Traditional stability and on-time/on-budget metrics will still exist but will be delivered in the context of value metrics.
5. Encouraging the whole organization to consider improving the lifecycle because it is important to the business and them. Make improving ALM a key initiative in the organization and report on its effectiveness. This will enable business value that drives lasting change into the value streams and associated applications. It will also have a material impact on the business, as waste is removed and value is increased.
Change does not happen overnight, but ALM can be the glue that organizations need to drive fundamental change into the organization. It can be the mechanism that turns disconnected initiatives around Agile and DevOps into unified organization process improvement and change. And lean can be the set of principles that help organizations make the right decisions about that change. IT is perhaps the worst offender when adopting a set of ideas, and then dropping them to move on to something better. Because of this, for many skeptics, Agile and DevOps are just the next set of fads.
Lean is not a fad, but instead a proven set of ideas that has changed the world. By applying lean ALM to the value streams that drive application change and their associated systems we can manage new trends while improving the whole business.