What 108M Lines of Code do not Tell Us

Source: Nemo
Coming on the heels of Gartner’s research note projecting $1 trillion in IT Debt by 2015, CAST’s study provided a more granular view of the debt, estimating an average of over $1 million in technical debt per application in a sample of 288 applications. Between these two studies, the situation examined at the micro-level seems to be quite consistent with the state of affairs estimated and projected at the macro-level.
My hunch is that the gravity of the situation from a software quality and maintenance perspective is actually masked by efforts of IT staffs to compensate for programming problems through operational excellence. For example, carefully staged deployment and quick rollback often enable coping with defects that could/should have been handled through higher test coverage, lesser complexity or a more acceptable level of code duplication.
Part of the reason that the masking effects of IT staffs are not always fully appreciated is that they are embedded in the business design of IT Outsourcing companies. The company to which you outsourced your IT is ‘making a bet’ it can run your IT better than you can. It often succeeds in so doing. The unresolved defects in your old code plus those that evolved over time through software decay have not necessarily been fixed. Rather, the manifestations of these defects are handled operationally in a more efficient manner.
Think again if your visceral reaction to the technical debt situation described in the Gartner research note and the CAST study is of the “This can’t possibly be true” variety. It is what it is – just take a quick look at Nemo to see representative technical debt data with your own eyes. And, as indicated in this post, it might even be worse than what it looks. As Gartner puts it:
The results of such [IT Debt] an assessment will be, at best, unsettling and, at worst, truly shocking.
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)






Comments
Stephane Vaucher replied on Sat, 2010/10/02 - 2:55pm
Honnestly, I'm not sure if I understand what you are trying to say. Any company maintaining a legacy system (i.e., any medium to large company) will be faced by significant amounts of technical debt. Sometimes, it is because the good practices that are now considered standard, did not exist at the time the systems were written. In any case, we have to accept that any large system contains lots of problems and is costly to change. That being said, if, as you hypothesize, IT teams/outsourcing team deal with these using techniques like staged development/roll-back, it is excellent news as these techniques add to the flexibility of the IT teams and permit them to actually modify the codebase to add value. Of course, the alternative, correcting problems, is impossible as it will blow away an IT team's budget.
Mitch Pronschinske replied on Mon, 2010/10/04 - 6:56am
in response to:
Stephane Vaucher
Stephane Vaucher replied on Tue, 2010/10/05 - 12:35am
in response to:
Mitch Pronschinske