When I was a CIO, I would rotate programmers through various projects. So programmer/team A, B, & C would work on their respective projects for three or four months. Then I'd rotate A -› B and they'd have a week or so of together time for explanation, etc. Then B -› C and the same thing. And C -› A.
This worked very well and kept a best practices approach to our coding at all times. Everyone was more confident in writing single purpose functions/routines that were used by everyone on every project on every platform. The quality of all code was very high, and the incident of after rollout issues was usually one or two very minor things that could be fixed in a few minutes.
Of course, these coders worked in their own space, apart from the rest of the company HQ personnel. They each had a huge amount of double or triple cube space with 6' high walls to isolate them from each other. They arranged the room layout to their liking and that flowed depending on the projects they were working on. Sometimes they came together, sometime they walled each other off completely.
Also, I had open accounts at all the book stores (we still had them in the '90s) for all the programming staff. If they wanted something, they just went and got it. No questions asked. Same with tech conferences and hardware. (They always had the latest toys.)
I mainly saw my job as a facilitator to making their job easier by providing the environment, tools, and training to get the best result for the money. The department more than paid for itself every year I was at that company.