The most important thing about software developers is that they deeply understand the customer, according to Niko Votipka, an Air Force Veteran who works in business development for Galvanize and specializes in customer acquisition within the Department of Defense (DoD).
In the context of military-related software projects, this is certainly true, and perhaps even more so considering the line of work and the high stakes.
“The military typically relies on third-party vendors for software development, but too often, those vendors don’t understand military life and what our service members go through,” said Niko. “We ask contractors to build software for tank drivers, but many have never seen an M1A1, much less spent 8 hours in one in 100-degree heat.”
Having military members or Veterans on development teams is crucial because of their understanding and firsthand experience, which enable enhanced software development.
If you’re a military team leader looking to start a new project, or perhaps a service member interested in learning software engineering, this post will help you understand what to expect from an active duty software development team environment. We’ll walk you through how an effective team works, and how they get the job done time and time again.
Using an Agile approach
Many modern software development teams, including teams within the military, use an Agile methodology to solve problems and navigate projects. The Agile philosophy is an iterative approach to managing projects that focuses on continuous releases and customer feedback. It was developed specifically for software engineering but has vast applications outside of it.
To get started, software development teams define a vision, which identifies what problem their project is trying to solve. For example, when working with one of our military clients, our unified vision was to make aircraft scheduling easier for the DoD. After setting the vision, we defined an initial strategy, which, in our example, was to build a web application automating the aircraft scheduling process.
On an Agile software development team, the vision never changes, though the strategy can (and most often does) change as different and better ways to get things done come into focus.
The software development team structure
Many active duty software development teams use a Scrum framework, which is an Agile approach used to define how and when work is completed.
The term “Scrum” comes from rugby. Due to the complex nature of software development, the creators of the framework found humor in naming the process after the most confusing moment in their favorite sport. (To be clear though, teams executing Scrum are orderly, vision-driven, and fast to produce value.)
In software development, a Scrum team is structured as follows:
- Product Manager
This person runs all meetings, interfaces with outside stakeholders, and personally connects with customers. They provide the structure in which the team executes.
- Product Owner
This person is a senior leader who is interested in the product’s success. In the military, this is usually a high-ranking officer whose unit the team is building the product for. The Product Owner is the voice of the business but doesn’t interact with developers or designers directly. Instead, the Owner works with the Product Manager to create and maintain a product backlog, or a ranked list of features that are prioritized by the value they add. The Product Manager takes that backlog and works hand-in-hand with the development team to build the features that add the most value first.
- Software Developers
On larger software development teams, you can have both front-end and back-end developers. Frontend developers work on the visible parts of an application or website, while backend developers work on the databases and infrastructure of an application or website. These developers are the folks making things happen day in and day out.
Working toward a Minimum Viable Product (MVP)
With the team working from an initial strategy, it’s time to figure out what the Minimum Viable Product (MVP) will look like. The MVP is a bare-bones product that you can provide to your organization or client, which solves the most pressing problems they’re facing. It’s the starting point for further development, always answering the question: What incremental value can we add today?
To create an MVP, software development teams are broken up into groups that perform sprints to produce value. These sprints are typically 2-week increments but can vary based on the team.
Once an MVP is delivered, it goes into a test and evaluation period, where data is gathered from stakeholders and beta users. This was the case for our DoD aircraft scheduling project, and this step is critical; these teams must actually put their prototype software into the hands of real users and get immediate feedback. With this feedback – highlighting what’s working and what could be improved – they then move on to the next agreed-upon MVP.
This cycle of incremental value creation continues until leadership determines the product has reached its goals, said Niko.
“Software is never complete, and there’s never a totally finalized product,” he said. “But once you’re only seeing minor updates to versions of a web application, you know it’s been decided by leadership that the app is in an overall good spot.”
To get to that good spot, it takes a lot of organization, determination, and teamwork. It’s our belief that active duty military service members have unique skills that add value to teams of all kinds and strengthen the military and the technology sector.