Agile Software Development using SCRUM is one of best force multipliers a team can utilize to speed-up cycles. It can take a disorganized team and allow them to execute with precision and does so with very small changes to the battle rhythm. I would go as far as to say it increases my ability to manage by applying the same process to documentation, negotiating, and management. With all of that said (and with very little disagreement I’d wager) Agile is going nowhere in defense contracting. The fact is that the 3-letter agencies contracts are written in a way that only allows for waterfall systems engineering approaches. We as an industry have not done well to engage and educate our customers in the benefits.
Every RFI/RFP/BAA in recent memory focuses on Waterfall Systems Engineering for software development. There is a BDUF (Big Design Up Front) with Critical Design Reviews once the engineers scurry back from their whiteboards with a solution for that BDUF. The problem with the approach is that “you don’t know what you don’t know” and BDUF forces you to live with those changes. In critical states of programs as the ability to change requires multiple contract modifications and renegotiate that pit customer against developer. BDUF also usually means funding up front and coming back to the well for more is not recommended or commonly allowed.
Right about implementation is when you realize your requirements and/or design both sucked
Why do we continue to do this? It is my belief that humans are inherently lazy and I say that as a system administrator who scripts EVERYTHING. Contracts are difficult to write and agree to and past copies have already dealt with the minute details. Where most engineers fall victim to NIH (Not Invented Here), most lawyers and contracts officers have fallen victim to DIA (Don’t Invent Again). In addition if you get past the DIA and find a team open enough to go Agile there is no guarantee the umbrella agency PHB will let it go through. One of my projects actually started with Agile and got all the way to T-minus 2 months IOC when the top level agency asked for the SDLC documentation. Everyone scurried to create all the necessary documentation for a process we didn’t follow due to a “check the box” need. What was a on-time and customer driven project became an overrun and stressful battle.
Agile works great for products based teams that develop shrink-wrapped software or are simply a GSA line item. Project teams are relegated to follow something you know will most likely fail. Educate folks, it is the only hope we have as software developers and managers…