In today’s rapidly changing battlespace, the US military can’t afford to keep developing software the current way – they need a fire and forget software solution that will ensure all the software tools and systems that are being produced for the military are as precise and effective as the weapon systems they are built to support.
Nearly everything in the US military’s arsenal is either heat-seeking, radar-guided, GPS-guided, or some combination of the three. It’s hard to imagine a modern military force using anything other than the most advanced weaponry out there, but the reality is that the software powering these weapons has more in common with trench warfare than the modern battlefield.
The US Military relies heavily on antiquated software development practices like waterfall. This is the software equivalent of a WW1 artillery offensive which looked something like this:
Step 1) Fill a room with high-ranking officials to spend a bunch of time picking important points on a map.
Step 2) Roll out the big guns (the bigger the better) regardless of how accurate they are.
Step 3) Keep firing until one of the shells eventually hits the target, they forget what they were actually aiming for in the first place and are happy *something* blew up, or they get tired of spending money on ammunition.
The way the military develops software is eerily similar to this method of warfare.
Step 1) Fill a room with high-ranking officials to spend a bunch of time picking out important features.
Step 2) Roll out the big defense contractors (the bigger the better) regardless of the results they can deliver.
Step 3) Keep pumping money into the program until either all the features have been checked off, they forget what the program initially set out to accomplish and accept a product that does *something*, or they get tired of spending money on a tool that will never see the light of day.
There is an easy way to turn that old cannon into a modern-day, precision-guided smart weapon: embrace the agile software development methodology as standard practice across the services.
The agile software development team is the seeker or guidance package on a missile. We sense changes in the target’s position and direction and change course accordingly so that we can reliably reach our target.
We are continually changing course so that we are always on track to hit our mark. And the organization that commissioned or “fired” that software team need only make sure we are continuing to move in the right direction, turning that team into a truly “fire and forget” solution.