The idea that software acquires a "technical debt" that is paid in real dollars is getting new attention and research.
Gartner puts the IT debt bill at $500 billion worldwide and says it will double in five years to $1 trillion.
A company that makes software quality tools, Cast, just released a study gleaned from customer software evaluations that puts the technical debt at $2.82 per line of code. It says that for the average-size application of 374,000 lines of code, this amounts to just over $1 million in technical debt.
Frank Scavo, president of Computer Economics and a management consultant at Strativa, zeroed in on Gartner's estimate, calling it "bogus" in a blog post, and outlined ways to rationalize an application portfolio.
But the idea that applications acquire a technical debt may have support in the development community.
Among the people who incorporate the idea of technical debt in their development is Gene Baker, chief architect for the widely used WyStar 401(k) record-keeping platform.
Every time a new piece of software is added to the code base, Baker said, an addition is made to its technical debt. Code is the principal, and software maintenance is the interest payment, "so the more code we have out there, the bigger our debt, hence the more maintenance, hence the more interest payments."
Gartner defines IT debt as what it would cost to bring an organization to a fully supported environment.
"You can run on unsupported software for a while -- lots of people do this," said Andy Kyte, a Gartner analyst. But if more and more of your portfolio is out of date, as well the components, application servers, databases, compilers, operating systems, "then your portfolio is gradually degrading over time," he said.
This degradation in IT environments accelerated with the recession, and Kyte said IT managers need to determine how much of an environment is in an "unsupported state or creating a systemic risk" and then let the business know about the problem.
Cast software tools are used to examine the technical quality of an application, developed in-house or externally. Jay Sappidi, director of Cast Research Labs, said part of the idea is to catch problems, such as with security or performance, earlier in the development cycle, when they cost less to address.
Sappidi said its research was based on a study of customer code. Users can push maintenance issues aside, but "you cannot get rid of technical debt."
Baker said one method for controlling technical debt is through code reuse.
"The more we can reuse code, then less code there is, and then when we have to do testing, the less we have to test, and ultimately the less we have to maintain," said Baker, who also uses Cast tools.
The term "technical debt" may have been coined by Ward Cunningham, a developer, who in 1992 wrote, "Shipping first time code is like going into debt. A little debt speeds development so long as it is paid back promptly with a rewrite."
Carolyn Seaman, an associate professor of information systems at the University of Maryland, Baltimore County, and the principal investigator in the NSF-funded project, said researchers are working on ways to represent technical debt, quantify it, measure it and help make it part of the decision-making process.
"We have an increasing inventory of old systems that are too big to replace," Seaman said.
Patrick Thibodeau covers SaaS and enterprise applications, outsourcing, government IT policies, data centers and IT workforce issues for Computerworld. Follow Patrick on Twitter at @DCgov or subscribe to Patrick's RSS feed . His e-mail address is firstname.lastname@example.org.