Does anyone have a good list of best practices when migrating to a new version 
of a compiler?  While our shop is 35+ years old, we have rarely actually 
migrated compilers (or even compiler versions), so we don't have a lot of 
experience in this area.

When migrating from DOS/VS COBOL to VS COBOL II there were almost always source 
code changes, so all programs were tested before they were migrated, and no 
program was simply "automatically migrated", as it were.  I'm sure we had COBOL 
II for at least ten years before all of our DOS/VS COBOL programs were 
eliminated.  (From what I hear that's actually better than many shops, which 
STILL have pre-COBOL II programs out there!)

Going from VS COBOL II to IBM COBOL for VSE/ESA was a more "normal" migration.  
If I remember correctly (and I should because I was pretty much "in charge" of 
the migration) we at first only migrated to the new compiler if other changes 
were being made to a program and a special "flag" was set to indicate that this 
program should be compiled with the new compiler instead of the older one.  
Only after many, many programs were migrated in this fashion (and it probably 
took us several years to get to this point, though I honestly do not recall) 
did we finally eliminate the COBOL II compiler altogether.  But I believe at no 
point did we do any kind of "mass recompile".  We simply used COBOL for VSE/ESA 
for all programs going forward (old-COBOL had all been converted to COBOL II or 
COBOL for VSE/ESA already).
Then we migrated to z/OS and IBM Enterprise COBOL 4.2.  Of course in this 
situation EVERYTHING was recompiled and regression tested.
So now we're pondering how to get the Enterprise COBOL 5.2.  The easiest thing, 
of course, would be to simply change our compile procs to use COBOL 5.2.  But 
being as how COBOL 5.2 has been out for only a month that's probably not a good 
idea.  Probably the best thing to do would be to have developers "choose" to 
use COBOL 5.2 by this 'setting a flag' for an individual program indicating 
that their test compiles should use 5.2, and in turn so should their production 
compiles.  Should we also, at least at first, have them do a regression test of 
the current 4.2 results comparing against the results of the program compiled 
with 5.2?  And for how long should we keep that up?  At some point (6 months? a 
year?) we'd want to stop using 4.2 altogether.  But we also (I don't think!) 
don't want to regression test every single program.

All advice appreciated.  Thanks!
Frank SwarbrickApplication Development ArchitectFirstBank -- Lakewood, CO USA


----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to