Programs were generally developed using a functional decomposition strategy.
Functionality was compartmentalized -- hierarchy of subfunctions.
Logic structure could conflict with organization, and placement, of corresponding information.
Consequently, bridges were built between different logic components.
The logic often became intricately complex.
Often program data was accessed globally, or via indirect pointers.
When a data value was altered incorrectly, the unit of logic that performed the revision was difficult to isolate.