Every company needs specialty tools to make their company run – little things to help make things easier. For example, a cabinet shop might need custom-built jigs. An auto mechanic may build a few of his own tools for jobs he performs frequently. High-tech companies certainly build plenty of in-house programs to manage information technology – databases, data entry, customer records, etc.
The question I’m posing is this: when is it right to build those custom tools in-house, or when should you go out and buy a suitable tool instead? For instance, should an auto mechanic build his own 500 piece wrench set, or go down to Sears and buy them? Should a tech company build a time tracking product from scratch, or license something like Standard Time®?
Since I’ve personally worked in consulting for a number of years (in another life), I’ve seen it all. I’ve seen companies build products that were available off-the-shelf for 1/100th of the cost. And, I’ve seen people shoehorn freeware code and products into commercial use. Both were mistakes.
I tend to say that companies should only build products that are much more expensive to buy. In other words, don’t try to write your own compiler – Microsoft does that just fine. Another reason to build is when you have exotic business needs. One last reason might be if you have time on your hands. If you’re not making money serving customers, maybe you’ll have time to write and maintain a few necessary tools. But that’s a dangerous position to be in.
In IT, we ignore such advice because we know we can build everything. But I suppose the mechanic with a little metal-working and welding experience does the same thing. 🙂
What tools have you built, and regretted it? Post a comment and let me know!
–ray
I agree most of the time the answer shoul be: buy. By the way my very frist post on the blog was about buying software components.
There is another think which I missed then and you don’t mention it either. For me one of key indicators whether we should develop something by ourselves is an answer to a question: is it our core business?
Most of time it is not. And building on your own something you don’t plan to become a part of core business always brings a lot of hidden costs when it comes to maintenance, bug fixing etc. Suddenly it appears that even quite expensive software would have been a better choice.