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.
My ideal ALM world would be well integrated across the various lifecycle disciplines while allowing teams to focus on building customer value. This involves being able to trace the idea from inception to delivery. The primary value of my ideal agile ALM framework is that it continually focuses on the value of what we are building for our customer throughout the lifecycle. Let’s take a look at some of the key functionality a worthy agile ALM solution should include.
Business Visioning: In the Beginning of Any Customer Value, there is the Idea.
We need to capture customer ideas and prioritize and rank them to ensure we are building something the customer wants. Ideas primarily come from the customer, but they may be channeled through discussions with product owners, sales, presales, product marketing, and others. However, with an idea management system, ideas can come directly from the customer and then be sorted out by the product owner.
It is advantageous to provide an idea generation collaboration space with web conferencing, both threaded and traceable from the source to the idea. An effective idea management system as part of the ALM framework has the ability to gather and evaluate ideas in order to select the best ideas that align with customer needs and market conditions that will be further validated downstream within the ALM framework. This provides customers with a place to submit ideas, which may evolve into objectives, epics, or user stories. The latter implies integration between idea-generation to user stories in the product backlog.
A key to business visioning is the ability to generate market-level objectives from ideas so that we have a vision of what we want to build, yet we are adaptable to the ever-changing marketplace. Then we should generate a business case from the ideas, market objectives, potential return on investment, market analysis, and more. There should also be a way to trace from the ideas and objectives to the stories, code, test cases, and deliverables that support them.
Establishing profiles of potential or existing customers validates our business vision in the long run. This helps us both understand our customers and identify the customers who we will use to recognize and validate customer value. Selecting the wrong customers can lead us astray, so this aspect should be integrated into the customer validation strategy.
Collaboration: A Platform for Sharing and Brainstorming Customer Value and Product Details
This platform involves virtually replicating an agile team room via collaboration tools. This virtual room can be viewed from your computer, where you can see the rest of the team in action. You could contact team members, have a discussion, break out into individual virtual team rooms, view the user storyboard, see your specific work wall, and more.
We need to enable continuous communication amongst team members where team conversation is threaded. This is as simple as real-time communications amongst team members, but with the ability to integrate and connect conversation to certain events (e.g., sprint planning, daily stand-up, etc.) or certain work (user stories, etc.), so it is available for considering context and further detail if needed.
Within this collaboration platform, we also need support for scrum of scrums collaboration and discussion. There may be a project scrum of scrums when there are multiple scrum teams on a project, product owner scrum of scrums, and architecture scrum of scrums. Each may benefit from a collaboration space. With the collaboration space to brainstorm and discuss customer value, then we can better ensure we understand the customer needs.
From an agile perspective, collocated teams may prefer to work with minimal tooling, using spreadsheets, story walls, and whiteboards. However, as soon as teams become distributed, working with online tools becomes beneficial. This is because it enables distributed teams to see worked within a virtual environment, concurrently share information, and view data in real time. Others may consider the benefits to utilizing agile tools because of the automation they provide, which improves productivity and work transparency. The importance is that an ALM framework must enable distributed environments including collaboration.
Agile Planning and Backlog Management: A Means to Prioritize the Work According to Customer Value
We need to provide a means to establish and manage a product backlog that captures epics, user stories, and tasks and provides tracing amongst them when there is a relationship (from tasks that support the story, from stories to their supporting epic or theme, etc.). This should also be a means to establish sprint and release velocity metrics and generate burn-down and velocity charts in an automated manner, which helps us track progress.
The good news is this functionality is readily available in a number of tools with some integration with other tools. Within the context of backlog management, we need to provide the sprint planning functionality (prioritization based stories, tasks, and velocity) and the ability to generate sprint backlogs based on priority from the product backlog. This includes the ability to capture acceptance criteria related to a story and set it up in a visible place. The prioritization ensures we are building product functionality
It is important to capture product personas with integration to agile planning tool. This is useful when you are using the canonical form (e.g., <persona><action><business value>) of capturing use stories. You can create the product personas for your specific product and then when the product owner is writing the user stories, they can be linked to the persona details. This helps us better understand the users of the product to ensure we are building a product that is most effective for the users.
As you consider an ALM framework, consider an agile mindset which helps us focus on the customer. In my ideal agile ALM framework, the key is that it provides an integrated framework that ensures we are continually focusing on the value of what we are building for our customer throughout the lifecycle. While in its separate parts, traditional ALM, value chain, and agile methods, each have value. However, by integrating it effectively with a continual focus on customer value, it creates something innovative and powerful, an agile ALM framework that ensures we are driven to deliver customer value.
This concludes part one of this two-part series. In "Agile ALM for Delivering Customer Value: Back-end Disciplines," I will focus on the middle to back-end disciplines of a lifecycle that can help you establish and maintain an ALM framework focusing on building hugher customer value.