We’ve developed a really good software practice, agile principle, or whatever you want to call it:
Everybody knows everything.
That is, everybody on the dev team should know all the basic technologies to do anything anywhere in the stack, and understand the overall architecture of the system.
Exception – graphic artists aren’t expected to be programmers, and programmers aren’t expected to be graphic artists, and neither are expected to be help writers.
“Wait”, you’re probably saying, “Doesn’t that consume a lot of time?”
Not really. We’ve spent between 5 and 10 percent of the dev budget doing education. For a while we did a 2 hour class every friday. At this point we’re not doing them because we’ve run out of topics.
We’ve also got a closely related rule:
At any time a new developer can get started developing without outside help other than making accounts on servers and giving them the repository location.
That is, the development environment’s processes are documented .
Everything you might want to do with our code has instructions in the readme.