100 Errors Per Million Lines of Corrected Code

greenspun.com : LUSENET : TimeBomb 2000 (Y2000) : One Thread

With 100 errors per million lines of remediated code..let the debugging begin! See: http://www.businesswire.com/cgi-bin/f_headline.cgi?day1/193360079&ticker=

-- fatanddumb (fatdumb@nd.happy), December 03, 1999

Answers

Yeah ... sounds about right. I just fixed a Y2K bug in the critical DLL that keeps our company's flagship product operating. This one was a one-line glitch that completely hosed up payroll operations for all of our clients. We caught it before things got critical, but it is simple illustration that we're going to have a BUNCH of fires to put out come 1/1.

-- CodeBubba (codebubba@yahoo.com), December 03, 1999.

CodeBubba,

You mean 1/1/0 :-'

-- spider (spider0@usa.net), December 03, 1999.


Spider,

Actually, you're pretty close! What happened was that a time-sheet calculation routine, deep down, contrives a date string in the form of "mm/dd/yy". For a pay-period ending Dec 99, the string passed to a subsequent routine (that calculated a Julian value for the string date) was "12/1/99" ... OK? Well, the routine did not take into consideration what happened when the year value rolled over - so it constructed for January 1st a string: "1/1/100". The calculation routine understood that "1/1/00" would be 1/1/2000 but it was presented with the year 100 instead. The result of this was the correct julian date from what was presented but what was presented was wrong, obviously. This resulted in employee timesheets not displaying anything even though data was already there ... the user would never have been able to generate reports, edit punch data etc. All this because the code should have divided the year modulo-100 to make sure it stayed "00" instead of "100"!!

It's little dipstick errors like this that are going to turn up by the thousands (millions) when the clocks start rolling over (or making calculations involving rollovers). Many such errors are going to be in systems that no one even remembers exist let alone have had the time and manpower (let alone source code) to fix. As a developer of about 20 years, I can tell you that there is absolutely NO WAY 50 years of programming errors on this level will have been fixed in the last few years. Exactly what effect this will have on our economy as a whole I can't even begin to fathom, but I can tell you this; if 1 line out of some 20 or 30 THOUSAND (just in the DLL code I was working on) was enough to have completely hosed our client base (delaying paychecks, etc.) how many such little "gotchas" out there is it going to take to cause a major problem, eh?

Cheers,

-- CodeBubba (codebubba@yahoo.com), December 03, 1999.


CodeBubba,

Exactly. A logistical impossibility in terms of complete remediation. Three gotcha's: what they never worked on, what they worked on and what the forgot to work on. All at once, all over the world, in every non-trivial system on the planet.

:-(

-- ..- (dit@dot.dash), December 03, 1999.


_________________________

-- flatliner (dead@as.doornail), December 03, 1999.


Dit,

Yeah ... this one was one of those that they "forgot" to work on. When asked by our clients if we're completely Y2K "compliant" our "official" answer is "Why of course!". Unfortunately, for all the good intentions our people have (and we have great people working here) there simply is no way to guarantee that everything has been fixed. There is an incredible amount of code (millions of lines) in our product, particularly when you consider the dozen or so custom- controls (third party) we use to say nothing of OUR code.

Trace that backwards a ways. When we state we are "Y2K Compliant", we are saying that all of OUR code is Y2K compliant, all the code in our supplier's operating systems and custom controls are Y2K compliant which means that all our supplier's suppliers code must be Y2K compliant, etc. etc. I wonder, ultimately, how many parties are involved in the creation of ONE non-trivial product when you de- reference backwards all of the supply lines for every piece and part that is involved in the product. Man, it boggles the mind just thinking about it!

Anyone who say's we're going to just skirt by this one with no major problems simply doesn't understand the magnitude of the problem. Heck, for all my experience *I* probably don't understand the magnitude of it all. The amount of "stuff" that it takes to run these machines is incredible ... and all it takes is a one-line error in a critical section to create havoc.

At the very *least* this is going to be one heck of an exciting new year!

Later dit!

-- CodeBubba (codebubba@yahoo.com), December 03, 1999.


Moderation questions? read the FAQ