CodeBetter.Com
CodeBetter.Com
RSS 2.0 via Feedburner
           Do you Twitter? Follow us @CodeBetter

Darrell Norton's Blog [MVP]

Fill in description here...

US Army Program blends Agile and Traditional Processes with Success

In the April 2006 issue of CrossTalk, The Journal of Defense Software Engineering (USA), there is an interesting article called Army Simulation Program Balances Agile and Traditional Methods With Success. The authors note that traditional methods are driven by the need for predictability and control, whereas the agile methods focus on flexibility and innovation. And their experience tells them that:

"The new art of software development is finding the appropriate balance point among the available practices."

It is a balancing act for software development teams to be as flexible as possible while still meeting stakeholder concerns regarding documentation, project plans, and up-front analysis.

"Interestingly enough, the customer base for [the software program] was more comfortable with traditional pedantic software-development methods, even though they contributed to an environment with ill-defined and often-changing requirements." (authors' emphasis)

The answer to the customer's objections was, of course, education:

"The program spent a great deal of time educating the user representatives on XP and other agile methods."

The program used the following agile methods:

  • Continuous Integration - a home-grown continuous integration server called BuildBoy automatically runs 3000+ tests every time code is checked in
  • Collocation - everyone on the project was collocated in a single building from 10-12 companies at any given time
  • Iterative development - iterations 8-10 weeks in length (compared to normal government times of 1 year+, this was FAST)
  • On-site customers - representatives from all customer stakeholder groups were present all the time

The program has not quite implemented Test-Driven Development, although unit tests are part of the deliverables. Also the program does extensive documentation that is compiled into a user's manual and online help at the same time, plus extensive code notes and diagrams. At least they make it all available on a web site, and parts of the process are automated.


Published Mar 28 2006, 06:24 AM by darrell
Filed under:

Comments

Dave Nicolette said:

I found the info about the Army program very interesting because I work at a fairly large company where there is also a need to balance predictive and adaptive approaches depending on the realities of each project.

The description of the specific agile practices the Army is using brought me up short, though. True, all those practices are agile practices, but is their approach on the whole really agile, or is it more in line with lean development?

Two red flags:

(1) There is no mention of "people over process." Without that mindset, the use of specific agile practices is liable to be mechanical, and still subject to tight process control.

(2) The iteration length of 8 to 10 weeks is too long for an agile methodology. It sounds more compatible with a waterfall-style iterative methodology such as RUP.

Even so, the use of some agile practices in the context of a lean development approach sounds like a very good move for the Army.
# March 29, 2006 3:27 PM

bbscan said:

This is very interesting and I think it reflects the issues a lot of us run into while trying to implement agile methodologies.  The army has used rapid decision cycles for a long time so it is good to see them incorporate it else where in the system.
# April 3, 2006 3:42 PM
Check out Devlicio.us!