Practices designed to expedite system delivery, such as prototyping or agile development, can paradoxically lead to unexpected rework costs that ultimately slow down later deliverable’s and degrade value over time, especially as the scale of the system grows. The term technical debt describes an aspect of this tradeoff between short-term and long-term value in the software development cycle. For example, mistaking an emphasis on rapid delivery of business features for agility may result in decreased focus on quality and architecture and thus accumulate as technical debt. Left unmanaged, technical debt causes significant technical and financial problems, leading to increased maintenance, operation, and evolution costs. Ongoing management of technical debt is critical to the development of high-quality systems that meet their customers’ needs in a timely manner. Agile practices of refactoring, test-driven development, and software craftsmanship are often mistakenly deemed sufficient to manage technical debt. For large-scale, mission-critical systems, there is more to consider: risks of accumulating debt are greater, practices start to break down, and technical debt becomes harder to find and fix because it is not as visible. In this presentation, we describe examples of an architecture-focused approach that can lead to making more informed system design decisions that balance short-term needs with long-term quality.
Focus Areas
Host a Webinar with CSIAC
Are you interested in delivering a webinar presentation on your DoD research and engineering efforts?
Want to find out more about this topic?
Request a FREE Technical Inquiry!