In "Agile ALM for Delivering Customer Value: Getting Started,” I introduced an integrated agile ALM framework that includes traditional ALM, value chain, and agile methods. These elements, when combined, establish an innovative and powerful agile ALM framework focusing on delivering customer value. They also introduce some of the front-end disciplines of a lifecycle that can help you establish and maintain this effective ALM framework. In part 2, we'll explore the back-end disciplines of a lifecycle that establishes an effective ALM framework centering on customer value.
Defect Tracking: Being Aware of What Bugs You, and Ensuring Value has Quality
Oftentimes we incorporate defect work as part of the sprint. Because of this, we need the ability to take bundles of defects and include them in the sprint if needed. This is more relevant to products that are beyond Release 1.0 since not only will teams be building new functionality, they will need to triage defects during the release.
We also need the ability to differentiate between the defects associated with the current sprint, past sprints, and past releases. An effective agile ALM solution will allow us to integrate stories from a backlog with defects, using a defect tracking tool for a singular sprint backlog. An even better solution would be for us to use a backlog management tool that is also a defect tracking tool.
IDE: Establishing a Work Area from Which to Build the Product Value More Effectively
An ALM framework should include an easy-to-use integrated development environment (IDE) for the users. This IDE should be integrated with several version control tools, unit tests, compilers, continuous integration, and build management tools. In other words, don’t be constrained to one tool; work in an environment that can plug in various tools within an IDE framework. You should establish and build the architecture framework from within the IDE or integrated with the IDE. Let’s explore the key integrations from the IDE user interface.
Version Control: Identifying and Keeping Control of the Customer Value Work and Associated Deliverables
A version control system must be able to manage any type of element—e.g., code, documents, test scripts, executable, and more. These elements are the assets that must be managed. Whether the version control system is one tool or a collection of storage repositories, it should be accessible from one common user interface. This eliminates the need for multiple screens and commands to access the elements.
Since the assets are so important to delivering customer value, the version control system must be continuously backed up with tested disaster recovery processes with quick turn-around time for recovery. The interface may be part of the IDE, and it must be integrated with the continuous integration and build management system, so that what is built comes directly from a location of known integrity
Continuous Integration and Build Management: Building Customer Value Early and Often
One of the advantages of continuous integration is that we continuously see the tangible evidence of customer value (e.g., the functionality or product). This implies that we regularly merge and build the product. The continuous integration and build system should be integrated with the version control system, which provides effective branching and merging functionality. This integration results in the ability to initiate merge and build upon check in to parent branch, provides minute reporting of what was merged and built¾whether successful or unsuccessful, and includes the ability to inform the agile planning tool and test environment of the successfully built stories.
Customer Validation: Allowing Customers to Validate that We Are Building the Customer Value They Expect
The customer validation process ensures that we are building something the customer values. Being able to initiate virtual customer validation sessions, like an end-of-sprint review, to demonstrate current sprint functionality in the version control or testing environment benefits the agile ALM solution. This process should be integrated with the collaboration system and agile planning to provide feedback related to specific stories and sprint, and the feedback should be readily available for the next sprint planning session.