As I was thinking about writing this article, I reflected on the current state of application lifecycle management (ALM) and how it fits into an agile framework. For clarity, I define ALM to be a set of tools and practices that work together across the project lifecycle to help you deliver an instance of a product (aka, a release).
A reasonable ALM product will have a common user interface for utilizing the ALM functionality. It will also include a meta-model and process engine to parse and share information across and amongst the various functions within the ALM framework. I am fortunate enough to have been involved with both ALM and agile. Initially, I thought about simply sharing my view on the current state of ALM, as I have experienced it within an agile perspective.
Current ALM products and practice still need to mature because they often lack a solid business reason for doing ALM and the true integration that is needed to make everything seamless. With that in mind I realized that I had an ideal state of what I would envision agile for ALM to look like, and it involves a strong business reason.
Focusing on customer value from inception to release is the key to establishing an ALM framework within an agile context. While many ALM frameworks start with planning or requirements, I suggest that agile ALM begin as early as inception or during the creation of the business vision for the product or a specific release. This helps provide the context of the customer value that is being built during the project. Agile ALM also should include mechanisms that focus on customer validation and effective product delivery. Customer validation via end-of-sprint reviews are key to ensuring the team stays focused on providing customer value. Having an effective and lean product delivery mechanism ensures that agile teams can release products at a moment’s notice, particularly for software-as-a-service-based products.
In agile, the more seamless an integrated product development framework is, the more an agile team can focus on building customer value. The integration becomes an enabler for delivering customer value. At the same time, there is a need for flexibility and customization so that an ALM tool framework doesn’t drive the team’s interaction. The Agile Manifesto states, “People and interactions over process and tools.” It doesn’t say that you should forgo process and tools, but it implies that we should always be aware of what is best for the people based on current and future interactions amongst the team. More importantly, we should not have tools drive the process or constrain the interaction possibilities.
Now I would like to present to you my ideal agile ALM framework. This agile ALM framework is a wish list that supports customer value¾the primary focus of agile. It establishes the mechanisms that help a product team create and manage customer value throughout the lifecycle and ensures traceability of customer value from all stages of the lifecycle. With that in mind, this will be a two-part series on agile ALM for delivering customer value. Part one will discuss the disciplines at the front-end of a lifecycle that provides an effective ALM framework focusing on customer value. Part 2 will focus on the middle to back-end practices.
Ideal Agile ALM: Customer Value Chain for Agile ALM
The notion of the value chain has been around since at least 1980 when Michael Porter established his value chain framework further explained in his 1985 book, Competitive Advantage: Creating and Sustaining Superior Performance but the concepts had been discussed in conferences and companies well before this time. I suggest taking the ALM framework, merging it with a customer value chain framework, all while applying the agile methodology of iterative and incremental approaches. This integrated framework emphasizes customer value and validation in an iterative and incremental approach.