Comment Re:Oh Dear God No (well, maybe Yes, sometimes) (Score 2) 265
I'm not saying that any internal wizardry should be avoided -- but really when you develop internal solutions you should know what you are getting into, and know how long you are going to put up with it, especially when the remainder of the world moves on -- and leaves you behind the times. Also be VERY wary of what's termed "the lottery problem" or the "hit by a bus" problem -- as in, when the guru who put together your super awesome sales lead processing database / application stack that's central to your company making money doesn't show up at work anymore, what are you going to do? When the desktop machine that's responsible for keeping track of your development metrics is re-imaged by mistake, what do you do then? When the world's best custom-designed project tracker heads for the bit bucket with all the plans in it, what next? Hopefully these kinds of things can be identified and the little projects that grow into business critical services will be properly supported, but I've seen it go the wrong way quite a few times.
How does outsourcing solve this? What if the outsourcing companies only developer gets hit by that bus, or even the whole company burns down? What happens when they decide that the custom thingy built for you is no longer worth supporting and there's no end of life code hand over (but there is a new wiz bang product that they sell!)
The big dollars required for outsourcing contracts that properly* cover all the problems you mention will most likely solve them for you anyway.
*As in actually account for them as apposed to 'well, they said they did, amazing considering the price'