Case Study 1: GlobalBank Account Master Redesign

Background

GlobalBank's ACCT-MASTER file has been in production since 1987. The original 250-byte record was designed by a team that has long since retired. Over the decades, "temporary" fields have been repurposed, FILLER areas have been carved up, and the documentation has drifted from reality. When the bank's digital team requests a new mobile phone number field, Maria Chen realizes the record is out of space — and out of coherence.

"We have three fields nobody can explain," Maria tells the team. "ACCT-MISC-1 through ACCT-MISC-3. They were added in 1994 for a Y2K project that was later canceled. But two batch programs reference them, so we can't just remove them."

The Challenge

Maria must redesign the ACCT-MASTER record layout to:

  1. Add the mobile phone field (10 digits)
  2. Add an email address field (50 characters)
  3. Clean up the mysterious MISC fields
  4. Optimize USAGE for better batch performance
  5. Maintain backward compatibility with 47 production programs

The Original Layout (Simplified)

       01  ACCT-MASTER-RECORD-OLD.
           05  ACCT-NUMBER         PIC 9(10).
           05  ACCT-TYPE           PIC XX.
           05  ACCT-STATUS         PIC X.
           05  ACCT-NAME           PIC X(40).
           05  ACCT-ADDRESS        PIC X(80).
           05  ACCT-PHONE          PIC 9(10).
           05  ACCT-BALANCE        PIC S9(9)V99.
           05  ACCT-RATE           PIC 9V9999.
           05  ACCT-OPEN-DATE      PIC 9(8).
           05  ACCT-LAST-TXN       PIC 9(8).
           05  ACCT-TXN-COUNT      PIC 9(5).
           05  ACCT-MISC-1         PIC X(20).
           05  ACCT-MISC-2         PIC X(20).
           05  ACCT-MISC-3         PIC X(20).
           05  FILLER              PIC X(15).
      *>   Total: 250 bytes

Analysis

Maria identifies several problems:

  1. No USAGE optimization: ACCT-BALANCE uses DISPLAY (11 bytes) instead of COMP-3 (6 bytes)
  2. No 88-level condition names: ACCT-TYPE and ACCT-STATUS have no self-documenting condition names
  3. Monolithic address: ACCT-ADDRESS is a single 80-byte field with no structure
  4. Wasted space: The MISC fields (60 bytes) are used by only two programs, and one of them uses MISC-1 to store a secondary phone number
  5. No sign on balance: The S is present, but DISPLAY usage means sign handling is less efficient than COMP-3
  6. No audit trail: No record of who last modified the account

Maria's Solution

She proposes a phased approach:

Phase 1 (immediate): Expand the record to 400 bytes using the same VSAM cluster with a new maximum record length. Add new fields in the expansion area. Old programs continue to read/write the first 250 bytes unaffected.

Phase 2 (3-month window): Migrate all 47 programs to a new copybook with optimized USAGE. Run a batch conversion to rewrite the entire ACCT-MASTER file.

The new layout uses COMP-3 for monetary fields, structured address, condition names throughout, and a proper audit trail. Derek Washington maps every reference to the old layout across all 47 programs using a cross-reference tool, identifying which programs need modification.

Key Design Decisions

  1. Prefix consistency: Every field starts with ACCT- for unambiguous copybook inclusion
  2. Structured address: Broken into street, city, state, ZIP components
  3. COMP-3 for money: Saves 5 bytes on ACCT-BALANCE alone, plus enables hardware-accelerated decimal arithmetic
  4. 88-levels everywhere: ACCT-TYPE, ACCT-STATUS, and every coded field gets condition names
  5. REDEFINES for dates: All date fields get a YYYYMMDD numeric view and a structured year/month/day view
  6. Expansion FILLER: 20 bytes reserved for future growth

Discussion Questions

  1. Why did Maria choose a phased migration rather than a single "big bang" conversion?
  2. What risks does the Phase 1 approach (expanding the record) introduce? How would you mitigate them?
  3. How would you handle the two programs that reference the MISC fields during the migration?
  4. Calculate the storage savings from converting ACCT-BALANCE, ACCT-RATE, and ACCT-TXN-COUNT from DISPLAY to COMP-3/COMP usage.
  5. What testing strategy would you recommend for validating that all 47 programs work correctly with the new layout?