Today’s post shares a paper that Carngie Mellon’s Software Engineering Institute just released titled, “Agile Methods: Selected DoD Management and Acquisition Concerns.” The timing is great for us. I’d encourage you to read the three-page Executive Summary, then dive into the sections you find most interesting.
I’ll highlight a few excerpts here to make sure everyone on the team reads them. My hope is that the ideas will either stretch you as you think about how we’ll implement Agile for CG-LIMS, or they may serve as background that you can use to better communicate our approach.
One good insight is right in the Executive Summary:
Most Agile methods are comprised of practices that compensate for each other. For example, minimal documentation is compensated for by practices like information radiators; no code reviews is compensated for by pair programming; and minimal documented requirements is compensated for by test-driven development. Chosen piecemeal, Agile practices can leave large gaps and introduce risks. Selecting an established method brings in a set of compensating practices, and reduces risk.
There’s a section on Page 20 that describes the difference between how requirements are treated on Agile programs and traditional programs. It is outstanding:
An expected, but still striking difference we saw in Agile programs versus more traditional software programs was the attitude toward requirements. In the more traditional programs that some of our interviewees had worked on, a tremendous amount of effort, energy, and attention was paid to refining requirements statements to a low level of detail and obtaining multiple levels of approval of them before doing any prototyping or visible design activities. The confidence of the development team in how accurate the requirements were in terms of the user’s needs was low. However, they could not substantively move forward with the design until the complete systems requirements had been approved. A reviewer who had a similar experience said, “To date, I have not seen where the rigor applied to our requirements has brought any value to our product.” The attitude toward requirements in the programs we interviewed using Agile was much more focused on a definition of only enough capability to bring acknowledged value to an end user, with much less focus on ultimate completeness of the requirements set. In the program using Agile, the team was confident that with the user involvement that they knew they could count on, they would discover additional requirements as the project evolved and that all the requirements they worked on would provide definable value to the customer.
The shared value of prioritizing end-user involvement to build confidence in requirements early allows both the acquirer and developer to permit appropriate ambiguity early in the project. This is contrary to what is more typical in a traditional acquirer/development team, which strives for completeness of a requirements specification prior to significant design work. Although this is a false completeness (almost everyone we spoke with acknowledged that the complexity of today’s systems makes it impossible to completely know a system’s requirements prior to design), the shared values of the acquirer/developer team are focused on the completion aspect of the requirements rather than allowing evolutionary learning about them.
The Agile attitude toward requirements must inform any further thought or work applied to the requirements in the CONOP and ORD.
I’ll also echo the guidance from one Colonel to his PM’s on page 20. It is fantasitic guidance for us to put to use as we move forward to the planning for configuring the COTS software to meet the CM and MM requirements.
Planning Release 1 … [should contain the] smallest fieldable amount with tangible ROI that the customer will agree to, and
* should demonstrate that the system will work end-to-end … or a logical chunk of it that can be built upon.
* Pick the easiest requirements that have the best quality data.
* Fight for this. The customer wants it all in the first release … every time.
* Give success earlier, validate assumptions, buy time to further analyze the harder things.
* If budget cuts take everything except the release 1 money, you are still a success. Another key concept is that the whole point of using Agile is to reduce risk by defining the highest value functions to be demonstrated as early as possible. This means that technical reviews like PDR and CDR will be used to validate early versions of working software and to review whatever documentation had been agreed to in the acquisition strategy.
I want us to have the same view of requirements described by this group:
One group of interviewees emphasized that, unlike other programs they had worked on, they were allowed to accept that the requirements will change as a routine-rather than exception-condition. Agile encourages interaction among the entire stakeholder team to determine what is required to satisfy the current user needs. Thus, they do enough analysis so that user stories (their way of expressing requirements) assigned to the current iteration can be accomplished, but allow for continuing accumulation of data for stories that will be implemented at a later date. This approach also allows them to not waste effort on items that may change or might be interpreted incorrectly.
I would also love to see approach to requirements reflect the value placed on user involvement described on page 58:
It is important to note that even after stories have been broken down and estimated, they generally are not specified to the degree that would be found in a traditional requirements document. This does not necessarily imply increased risk, because successful Agile teams rely on ongoing dialog with users, user proxies, and subject matter experts throughout the course of the release to gain insights needed to satisfy the users, usually better insight than could be gained from typical requirements-specification documents. If the user interaction that makes this dialog possible is missing, the benefits associated with user stories as an anchor for the requirements will be lost.
One of the sticky wickets is how to handle the big capstone technical reviews like SDR/PDR/CDR in an Agile environment. They ask a fantastic question that is the final thought I want to leave you with:
In order to determine the type of criteria needed for any review, the intent of the review or purpose must be known. This raises a question: What is the purpose of any technical milestone review?
As we update planning artifacts neeed for the Design Phase, I challenge each of you to ask the same question for each planning document. “What is the purpose of this plan? Who needs it? What are they going to do with it?”
The last excerpt I’ll share describes the value of information radiators:
Communication amplifies individual learning into team learning through information radiators. Often, these take the form of big, visible charts that are posted in common areas of the workplace. They should display progress, obstacles, and actions, and be easy to update. Thus, they “radiate” information and support communication and rapid response to changing project conditions. In geographically distributed teams, other mechanisms besides physical wall charts are used for the same purpose, and some vendors of support tools for Agile methods incorporate tools specifically meant for this purpose. One of our reviewers commented on their use of the wall-chart style of information radiator: “[This was] one of the key practices used on [our program] increment 1, which brought about significant change in a short period of time.”
One of the things that struck me as I was reading the section on change management is that I think we need to simply accept that Executive Leadership is not going to change their view of Agile until without seeing success. Our job? To show success. As quickly as we can. I think their desire for stacks of documentation, PowerPoint, meetings and pre-meetings can be quenched much more easily once we show the first bits of working software that satisfies users and delivers business value.
If any of that piqued your interest, take a few minutes, grab a cup of coffee, and download the report!
Recent Comments