A software factory, as defined by most, is a set of assets that help development teams take an assembly line-like approach to the production of new software that meets a uniform set of requirements. While that’s a correct description, it��s only partly so.
At GDIT, we view a software factory as a combination of many things – a platform, tools, people, and a culture of continuous innovation/continuous deployment (CI/CD) that, together, enable us to develop solutions that delight our customers.
That distinction is important. Because just as a typical factory can’t operate without people, neither can a software factory. Instead, we view the factory as an enabling technology for producing solutions quickly and creating a culture of exploration. It’s a collaborative, innovation-oriented environment where developers can think differently about solving problems.
Here’s why: In our software factory approach, GDIT leverages automation to create repeatable ways to build software with high quality, high security, and low risk.
“We give teams a common platform and templates build from while also encouraging teams to be innovative, to experiment, to fail fast, to continuously improve and deliver products that are truly aligned to our customers’ needs. ”
In this way, the software factory is so much more than a set of tools; it’s a way to create opportunities for staff to upskill and, in turn, for us to invest in our staff. We do this via a robust training program, internal tech challenges, and development methodologies that invite curiosity and ingenuity. Our software factory integrates industry-leading virtual collaboration solutions that enable remote teams to efficiently design and develop creative solutions in a shared digital workspace.
The software factory approach has served us well. We use it today on more than 20 programs. On one program using this approach, we have not a single critical bug for more than five years. On another program, we were able to use a software factory approach to drive productivity by 47 percent. At a third, we were able to downsize headcount on a program without sacrificing productivity.
Additionally, many software development opportunities from agencies now include mandates around the use of Agile-type development methodologies and frequent CI/CD. This means we have had to think about how we plan our work and deliver incremental value delivery to our customers, faster. The software factory approach has been instrumental to our ability to do that.
Going a step further, the software factory approach helps us execute successful modernization efforts as well. As agencies look to modernize their systems and tools, the people and processes around those tools and systems have to be modernized as well. The software factory mindset and approach enable us to take a holistic approach to these modernization projects that ultimately results in better outcomes.
The same is true for sustainment projects. In fact, with IT projects of many types, part of the journey involves creating a roadmap for teams to grow and change the way they operate. A software factory approach makes that possible and aids in an important mindset and culture shift that is essential to these projects’ success.
By focusing on our people, and by investing in the things that will make them even more effective and even more successful in their roles, the GDIT software factory approach is paying dividends for us and for our customers.