In my previous blog â€˜a call to action for our industry – it is time for Lean ALM’ I described if, as an industry we do not change our approach to ALM, our ability to innovate and deliver value will decrease. I use the analogy of auto manufacturing, describing the need for an approach akin to Lean to transform the way we approach software. My call to action was that it was time to adopt “Lean ALM”. It is time to drop the dogma of sequential, inflexible, poorly automated and traditionally managed approaches and replace it with an approach that takes the ideas of Lean and combines them with ALM to create a next generation way of approaching applications lifecycle. But what is Lean ALM?
Lean is increasingly an over loaded term, so we should start with the basics. At the macro level Lean is the focus on value whilst reducing waste. To reduce waste and build the perfect value creation process, organizations must focus on the value stream, create transparent measurement, empower people to be able to change and improve the value stream. Lean then provides the practitioner with a large array of techniques such as A3, Kanban and the 5 whys to aid them in their pursuit of perfection. Â Lean is as much philosophy as it is technique; with Lean followers all approaching the organization in a Scientific method and ruthless measurement oriented way. The result is organizations that are not only efficient, but also driven to deliver superior customer value.
ALM is what PLM (Product Lifecycle Management) is to product development providing a unifying management approach to the practice of software engineering. It focuses on breaking down barriers between the disciplines of software engineering such as requirements, development, test and deployment and creating a unified approach to the management of the application. Â ALM is also described as the way of automating the SDLC and promoted by vendors as the motivation to introduce integrated tool platforms. But ultimately ALM is all about business management across the complete lifecycle of the application.
Lean ALM, applies Lean Thinking Â to the lifecycle of the application. Lean is a natural complement to ALM providing not only a set of practical techniques, but more importantly a philosophy focused on increasingly value and reducing waste. By adding Lean to ALM an organization can think of not only applying management techniques to software engineering, but in the context of a set of principles that drive customer value. This leads us nicely to 5 principles that become crucial:-
Lean ALM, applies Lean Thinking to the lifecycle of the application. Lean is a natural complement to ALM providing not only a set of practical techniques, but more importantly a philosophy focused on increasingly value and reducing waste. By adding Lean to ALM an organization can think of not only applying management techniques to software engineering, but in the context of a set of principles that drive customer value. This leads us nicely to 5 principles that become crucial:-
- The Applications Value Stream – Lean is a process oriented approach, thus it should come as no surprise that the flow of work on an application is a key element to Lean ALM. Understanding the flow of creation, improvement and support is crucial to successfully improving its value and reducing its waste.
- Autonomy – When talking about improved productivity, Peter Drucker describes, how knowledge workers need to be free to decide how they work. With increased innovation demands being placed on software engineers the need for autonomy and freedom only increases. Allowing developers to decide how they work, what tools they use and even what machines they work on provides an environment that is both motivating and efficient.
- Adaptability – At the heart of Lean is the desire to have flexible, dynamic and responsive systems. The classic feedback loop that Eric Reis wrote about in â€˜Lean Startup’. Agile methods are cited by many for providing flexibility, but the reality of Agile is its focus, for many is the development team. Lean ALM requires a much broader view of the value stream applying Agile and other processes as necessary.
- Transparency – To enable a flexible and responsive system Lean ALM must provide information to all the people involved in the system. This information must be real time and in the context of their usage and environment. By providing transparent information you equip people with the ability to see what is happening, and react.
- Collaboration – ALM is a team sport. Enabling a collaborative environment where both structured and unstructured information is shared is crucial for the development of the software, but also its maintenance. For example, wouldn’t it be great for support to see the known defects and the discussions associated with them.
Thinking about Lean ALM provides a great foundation for transforming the value chain of software delivery and maintenance. But it application will require change – change to the way in which delivery is thought about and valued. Also it will create a new role, one of process owner, ALM architect or sensei. This role is crucial for success, as someone needs to drive this change into an organization.
So what should you do..
- Start thinking about Lean – read books like the machine that changed the world by James Womack.
- Identify your sensei – Finding someone who wants to drive change into the organization and is respected and valued by their peers.
- Look to your measures – what can and should you start measuring to deliver change and value into your software delivery capability.
And of course listen to a recorded webinar.