Software Sustainment: Pay Now or Pay Later
Life Cycle Cost Track
With today’s budget constraints the Department of Defense (DoD) is likely to build less new systems. In light of this, the systems that we have today will need to be stretched further. This means more time and effort will be going into maintenance. And since many systems fielded today rely on software to deliver much of their mission critical capability; this means more time and money will be devoted to software sustainment.
The term software sustainment refers to anything that needs to be done to keep a software program delivering its required functionality. This includes many activities: fixing bugs that are identified, adding new features, upgrading software to work in a changing environment, addressing technical debt to keep the application structurally sound, retesting the application as changes are made, etc. In some environments, sustainment activities also include things like training and operational support.
There are quite a few factors that may influence the costs of software sustainment. Certainly logistical issues are part of the equation. What parts of the system need to be maintained, how long the system needs to be maintained and the criticality of maintenance for the entire systems or subsystems? Who is expected to do the sustainment activities – will it be done by the original development team, a new team or even an entirely different organization? Will the sustainment team have access to the same development tools, test cases, regression tests and testing environments? How much of the software system is comprised of Commercial Off the Shelf (COTS) solutions, what are the interfaces and how well are those interfaces documented.
In addition to these logistical factors there are technical factors. Size and complexity of the software is important. More software increases the potential for bugs and technical debt. Add complex functionality to the mix and it is likely to take more time and effort to fix bugs, add features, refactor code and make necessary upgrades to the technology. Other important factors include the technology used to develop the software system, team experience, tool sophistication, etc.
One of the biggest drivers of software sustainment costs is the quality of the original software. High quality software has less bugs, needs less refactoring, and is easier to understand for upgrades and enhancements. And there are many things that can be done during development to improve the chances of delivering quality software. These may include choosing the right programming language, good development processes, using CASE tools, enforcing good documentation practices, performing regression testing and automated testing and employing static analysis tools to analyze the code. Most of the things that are done to improve the quality of the software tend to add time and cost to the acquisition process.
This paper presents research studying the factors that drive sustainment costs. Research results will be presented with recommendations on where organizations should focus going forward to optimize the sustainability of their software projects.
Ms Minkiewicz is the Chief Scientist at PRICE Systems, LLC. In this role, she leads the cost research activity for the entire suite of cost estimating products that PRICE provides. Ms. Minkiewicz has more than 26 years of experience with PRICE building cost models. Her recent accomplishments include the development of cost estimating models for complex systems and systems of systems as well as research focused on the costs and benefits associated with migration to Service Oriented Architectures (SOA)
Ms Minkiewicz has an MS in Computer Science from Drexel University and a BS in Electrical Engineering from Lehigh University. She has published many articles on software measurement and estimation. She frequently presents at industry conferences on many topics associated with hardware, software and systems estimation. She is a member of the International Society of Parametric Analysts (ISPA) and IEEE and has served on committees setting standards and best practices for estimation, measurement, and benchmarking with SEI, PMI and CAM-I.