guest commentary: Inherent Simplicity

Only the 28-year “encapsulation” method for Y2K software repairs has been granted a patent -- and it happens to be the simplest, most clever method. Other approaches (like expanding date fields from six to eight digits) require substantially more effort and expense.

This 28-year method is protected under U.S. Patent No. 5,600,836 and other U.S. and international pending patents. Only Unbeaten Path International has a license to use this technology for AS/400 computers.

The patent rests on a simple fact: Any two calendars 28 years apart are identical. For example, 1980 has the same calendar as 2008, and 1981 has the same calendar as 2009.

The patented 28-year repair method has four simple steps:

  1. Physical files are analyzed to find date fields and to determine whether the date format is "YYMMDD" or "DDMMYY," or whatever.
  2. A conversion program is written for each physical file to remove a value of 28 from each "YY" in the database (the idea is to make the database think it is 28 years ago ... back to a year when there is no doubt that existing software logic will function). Attention is then focused on source code. The goal is to create two time zones: one for users in the current year (2008), and the second for the software 28 years ago (1980).
  3. The source code is analyzed to find where dates are presented to users. Just before a date is displayed or printed, 28 must be added back to the YY value of the date. This is accomplished by inserting a code fragment immediately before each output command. A code fragment is also inserted after the output command to once again remove 28 from the YY value of the date variable.
  4. Locations where a date enters the system are identified. Immediately after a date input is received, a code fragment is inserted to remove 28 from the YY value. Date variables are never released into the logic of the program until 28 has been deducted.

What is the net result of these four steps?

With the exception of terminal and print I/O statements, software will only process date values that are 28 years ago. Since all software logic will certainly work in 1980, the Y2K repair can be accomplished with these four simple steps. This process has been implemented for all types of code running on AS/400 platforms.

Relative to the 28-year approach, other Y2K repair methodologies require much more extensive, invasive changes to source code and/or database files. Other approaches require detailed analysis and adjustment of programming logic, a process that can introduce subtle changes to system functionality.

The source code for a robust ERP system typically uses 40-45,000 date variables. The date field expansion approach must find 100% of these date variables. The 28-year approach need only find date variables used in terminal and print I/O statements -- a single digit percentage of the 40-45,000 dates. Programs that have no I/O statements are not even touched.

The simplicity of the 28-year approach also makes the detailed testing process easier and less time consuming:

  • The best date-field expansion tools promise +/- 90% accuracy. That means that post-repair testing must find +/- 4,000 errors. The 28-year approach is far more reliable; accuracy is typically 99.85% or better.
  • Errors in the 28-year approach are much easier to find; anyone can see a date which is wrong by 28 years! Date field expansion errors can be much harder to find because they’re more subtle, touch logic which is not related to dates, and can be embedded in complicated sections of program logic.

The advantages cited for the 28-year approach make it substantially less expensive and substantially faster than date field expansion. A reasonably sized ERP system can be repaired in as little as eight to twelve days.

Major enterprises have used the 28-year Y2K repair approach because of it’s inherent simplicity and high quality.

Milt Habeck is the founder and CEO of Unbeaten Path International, which has provided Y2K remediation services for large and small AS/400 users under the Resuscitator2000 brand name.