|Think about Loose Coupling|
This reminds me of a temp position I had with a local state university, that was (at the time) recently acquired by a larger state university. The local school had people who could spell unix (and get it right most of the time), and a few who even knew what that funny word actually meant. But they needed to pass the audit from the mamma university to show they were being good little boys and girls and playing nice with their security systems and such.
I was brought on-board because I knew the version of unix they were using (both of them), to do some things like automate their nightly backups (like I said, they were mostly functionally illiterate in unix), and to tighten up the security systems, and at the same time get them using some sort of "source control system" -- something they really had a clue about.
I spent 6 months getting them up and running on a hybrid of my CVS system. They are actually a UniData shop (a version of PICK on unix) -- yea, I said PICK... sorry, y'all. And the programmers refused to add any steps to their work process, so I had to install the CVS system and wrappers in such a way that they didn't do anything different. It was actually an interesting intellectual exercise...
Anyway, I got them all fixed up and running pretty, etc. The audit happened, and they passed. The VERY NEXT WEEK they called me in, ordered me to uninstall everything, and then walked me out the door.
I learned a valuable lesson:
These guys knew pretty much what it was and what value it could be to them -- as well as the ability for "them" to track what they were doing (and not doing -- remember, this is a university setting). I was "public enemy number one" to these people! They couldn't wait to get rid of me!