Synchronization

Each program may use many files.

Each file may support many programs.

Any change may make other components incompatible.

May need to implement "bridge" programs between components.