It is challenging to keep bug fixes coordinated across both branched production code and mainline development code. QC is the code review function which basically didn't happen. Individual teams were tasked with developing Requirements documents for major subsystems and then working out the general design and detail programming of the pieces. Subgroups of team members worked out interfacing definitions between systems and over protocols. Most of this software fell into database and tools.
Many good tools are available in the market place.
It is complicated but productive for International Collaborations to purchase tools and software products for the entire Collaboration. Execution speed was an issue. Seemed that there was a tradeoff between the baseline speed and its associated functionality, and the better performance of speed optimized code with less or more narrowly focusedfunctionality. Databases had to be built in pieces so that one failure or datalock would not trash the entire effort. Redesign was required to work around the centralized database as a critical single point of failure.