Additionally, the customer validation process should have the ability to trace current sprint functionality to the code that built it—e.g., integration with version control system—and record an end-of sprint or demo session for view or reuse during additional customer validation sessions.
Test (in an Automation Framework): Establishing a Work Area from Which to Test the Product Value
While a prioritized scope delivers customer value, we need to ensure that value is of high quality—this is where the test function is important. We need the ability to run and repeat functional tests, system tests, regression tests, performance tests, and load tests in as much of an automated framework as possible. In agile, automation helps reduce the manual testing that slows the team down. As you add automation, you should be able to highlight velocity and quality data in order to recognize improvements. Finally, it is important to tie the appropriate automated testing into the IDE, continuous integration, and build.
Integration: Establishing Traceability of Value from the Vision to Customer Delivery
Did I mention integration? A key attribute of an effective ALM product for agile is the ability of the various functional areas or disciplines to be tightly integrated. Customer value is thought of every step of the way and is traced from the vision, to the story, to the working functionality. It involves identifying it, building it, verifying it, validating it, and securing the value. Of course, this is easier said than done, but after all, this is in an ideal agile ALM framework.
ALM Infrastructure “In-the-Clouds”
As mentioned, in the agile world, there is strong focus on customer value. It is ideal when the team spends as little time as possible establishing and maintaining an ALM infrastructure. Instead the team should attempt to use all of their resources spending the maximum time building customer value. Having an effective and reasonably integrated ALM infrastructure is a step in the right direction.
With the advent of cloud technology, you now have a choice of deploying tools locally (i.e., physically installing it) on premise or utilizing the web-based cloud infrastructure (i.e., software as a service or application service provider model). The former approach (on premise) ensures that you have total control over the technology and data, while the latter (in-the-clouds) ensures that you ramp up quickly and have the ability to scale as needed.
There are distinct advantages of using cloud infrastructure for those who are agile proponents. One advantage is that a cloud infrastructure provider enables a team to use only what they need, which is directly in line with agile. This “use-what-you-need” approach minimizes infrastructure debt and allows the product team to adjust and scale to its need in a “just-in-time” manner. Otherwise, you may have an ALM system that has low utilization.
Another advantage to renting the cloud infrastructure is that it helps you minimize capital expenses and lowers up-front costs, since you do not have to buy hardware, software, and other components. Essentially, the infrastructure—including servers, software, etc.—becomes more of an operating cost instead of a capital expenditure.
A final advantage is that the agile team does not have to establish and manage the infrastructure. You do not need to hire and manage IT staff for maintenance and upgrade work. However, it is important to have people on your staff who know how portable the hosted data is, and how easy (or challenging) it is to get it off the cloud should the service provider go out of business.