“They’ll steal it.”
It was 10 am and the sun was already beating down. The Master Corporal waved his hand toward a small grey box perched on a spike in the desert sand.
“If you left that out overnight, it’d be gone by morning.” he continued.
The young, but experienced soldier with four rotations in Afghanistan under his belt, was making a simple observation about a small device that he had been charged with deploying and testing. The device was indeed small and portable, and its owner not within earshot. The observation was straightforward and direct. An unvarnished opinion. If it was left out in the desert overnight, it would likely disappear.
What were we doing out in the desert?
As a civilian software developer in the defence industry, the mechanics are not that much different from other industries. I work in a nondescript building, sift through email, write out reports, attend meetings, talk about requirements, write code and squash bugs. We have a client liaison and a project manager that you meet on a regular basis to review your progress. This should be familiar to most software developers.
The difference is that in my line of work, the deployment, testing and validation of software is taken to a new level of involvement and complexity. You can test your software in a lab full of computers or on a test bench, but it will never really be tested until your customer, the end user of your software, puts their hands on it. This is one of the reasons for the existence of military exercises that take place around the globe.
On a military exercise, one or more countries send civilian contractors, scientists and military staff to gather together and test what they have been developing and figure out what works and what doesn’t. Sometimes the exercises are distributed across the globe and entirely simulated with software and computers. In others they roll out the real hardware and you spend a few weeks in a desert proving ground, an air station or other facility. The people that show up from the military side are your operators and they provide the live feedback.
When your software finally reaches the hands of your users, you get the real scoop on what they think of it, what they really want and how they handle things like bugs and errors. You get exposed to how they operate in the field and what they go through. This can make a world of difference, especially for developers from other industries without exposure to military practices. Sometimes it does a complete reset on your thinking and completely changes the way you think about your product.
For example, you learn that the first challenge for your software in the field is not the user interface or the buttons and menu options, it is getting them to turn on the laptop. If it stops working or crashes, they just power it down and go back to what they are used to. I have seen this happen many times, and often the circumstances are beyond your control, which itself can be frustrating.
On other occasions you may find that nifty new feature you spent six months writing is really not that useful in the field. You may find out your brilliant work that was mandated from on high is thwarted by a failed radio link or missing satellite comms. These are the kinds of things you have to train yourself to think of when you are back at your desk coding away on the next feature.
The experience and knowledge gained from an exercise makes a significant impact on the quality and robustness of your software. It affects the priorities within your development team and your own feedback on the exercise is often sent up the chain of command in a rare case where the higher-ups will read your report directly.
So when I’m back at my desk busy coding away on a seemingly unending list of feature requests and bug reports, I try very hard to think back to that desert. I remember the dust storms, the punishing heat and the long hours, but most of all, I remember meeting my customer.
Editor’s Note: This post is a personal experience from a software engineer. Larus Technologies has a long history of developing and supporting ISR-related software, including supporting our work at trials and exercises around the world.