April 11, 2007
I’ve been running across more articles about using agile methods in the Federal / DoD software development context lately.
For example this article discusses Lockheed Martin’s use of agile methods in the F-35 Lightning II program while this one, from a DoD software development trade magazine, discusses it in more general terms.
Both of these articles do a nice job of describing the high level value as well as some of the challenges of using agile in a DoD context; however I think they leave some important points out of the discussion.
The LM article focused on the following key benefits of agile methods:
– Managing changing requirements
– Increasing productivity
– Improving quality
– Improving time to market.
Unfortunately the article treats agile as mostly just an alternative software development life cycle (while the other article treats it as a form of systems engineering process); whereas in my view it’s real value comes from agile as a customer engagement methodology. It isn’t just a way to reduce risk inside of your own four walls, it is an approach to bringing your customers into a meaningful, collaborative, trusting process to quickly satisfy their highest priority pains; and then, stop if the rest of the requirements really aren’t that high of a priority after all.
Agile development takes a great deal of its inspiration from Japanese manufacturing methods where the focus is on quality through visibility. Don’t bang the fenders into place at the end of the line, stop the line and fix the machine that is letting them be out of place in the first place.
Agile does the same thing by focusing on demonstrating working, continuously tested, very-nearly-deployable software every increment (usually every 30 days). The importance here is that customers are directly involved in this process and are engaged, not through abstract deliverables, but by looking at and interacting with the software in a way they naturally understand. If it works and is on schedule they will see it in the most tangible way possible, if it is behind schedule and not meeting the requirements, they will see that too and can engage in on-the-spot discussions that address the reasons.
The result is trust; and from that trust comes a real collaborative working relationship with customers.