To: Bill Ounce who wrote (1405 ) 4/10/1998 10:48:00 AM From: Bill Ounce Respond to of 9818
Another Y2K denier admits he was wrong From: "Joe Friday" <green77@pcisys.net> Newsgroups: comp.software.year-2000 Subject: Another Y2K denier admits he was wrong. Date: Thu, 9 Apr 1998 20:39:54 -0600 This was posted on the Kitco.com discussion group Date: Fri Apr 10 1998 00:31 EJ (Y2K: did my homework, changed my mind) ID#45173: Copyright ) 1998 EJ/Kitco Inc. All rights reserved I reluctantly admit I was wrong in my initial assessment of the Y2K threat as less than severe. After 15 years in the high tech biz, half in software development, I speculated that locating and fixing Y2K bugs would not be too hard. In the past few weeks I have spoken with ten associates from my past, all of whom either currently work for or have in the past few years worked for financial services companies as application developers, the preferred title for folks who write computer programs, aka "programmers." Here is what I found. I assumed you can easily find instances in source code of date functions that manipulate data and fix them to account for numbers greater than 1999. ( Source code is the text-based programming language that gets translated into computer code by a special program called a compiler. ) That assumption was naive. First of all, date functions may be used many, many times in one of many programs that make up a complete application, such as an application that calculates derivatives on long terms bonds over 30 years. So just finding them is a big job. There is no good way to automate this, so a programmer must analyze the logic of each and every function to understand how it may work in many contexts. This is of course greatly complicated by the fact that the source code may have been written by someone else long ago and poorly documented. In addition, different compilers ( the programs that convert source code into machine code ) will generate different machine code from the same source code, so that it executes in different ways. Sometimes a function correctly deals with date forms greater than 1999 and sometimes not, depending on how a compiler inteprets the source code. So everything must be tested, whether a bug can be seen in the logic of the code or not. This has to be done to code that was hardly tested in the first place because of time constraints. One friend works as a programmer at a very large and well known financial services company ( hint: name begins with "F" ) and he says he is one of few programmers there who are NOT working around the clock to find and fix Y2K bugs. He says the project leaders on most of the teams doing this work cannot say with any certainty that they will have found and located all of these bugs in time. They are keenly aware that the stakes are high, so it is just about all they are doing. As I said in my last post, watch the 10Q's for signs of trouble. That's the good news. The bad news is that this work is being done most successfully on client/server systems that are relatively new. Then there are older mainframe systems that run using machine code for which there is no longer any source code--it was lost. That means you can't look at the text for functions that may be a problem. To solve this, compiler companies are creating programs that dissassemble machine code ( the reverse process of compiling source code into machine code ) to try to convert it back to source code so that humans can try to find logic errors in the use of date functions. The problem is that the source code that these programs make out of machine code is hard for humans to read. So the time consuming process described above is even more difficult. Also, the reverse compiler may be dissassembling machine code that was generated by a compiler that was made by a company that went out of business years ago. So you cannot be certain that the reverse compiler is correctly intepreting the machine code that it is converting back to source code. Also, you don't compile source code by running the dissassembler backwards. You need yet another compiler, and it may intepret the new source code so that date functions don't work as expected. The bottom line is, fixing software is very likely to take a lot longer than the time available. The companies with the greatest resources and highest stakes, like the one I've referred to here, at least have a shot at it. Not understaffed government agencies and low-margin businesses running old equipment ( e.g., IRS, Airlines, etc). So a lot of stuff ain't gonna work right, and some things are going to work at all. If you fly on Jan. 1, 2000, you are definately a nut. As far as business goes, a lot of folks are going to have to learn how to do transactions manually, on paper, with a pen. Regards, EJ