Buy vs Build
(Pulling out my soapbox…)
One of the classic questions in IT is “buy versus build”. When you need new software, do you buy it from someone else, or do you program it yourself?
People often trivialize this choice. “Why”, they say, “would you build your own word processor or spreadsheet when you can buy perfectly good ones from Microsoft?” It helps when you ask this question to use a a piece of shrink-wrapped software like Office or a complex product like Oracle as your example. It seems that anyone who would build their own software when there is a comparable product you can buy is out of their mind.
But it’s not that simple. (If it were, we wouldn’t have MySQL.)
On the other hand, people also often look at existing products and determine that they don’t meet their criteria. The product is too expensive, doesn’t quite do the right thing, or uses the wrong technology. Development isn’t that hard, and if you develop it yourself, you have total control so you can make sure it works exactly right. Plus - no license costs!
And again, it’s not that simple.
Here are some bits of our reality in NIBR:
- Software purchased for use in our environment rarely, if ever, works correctly right out of the box. Purchased software often takes teams of people working for months to configure it. If you buy software from a vendor, it rarely does everything that you need, and if often has bugs that you can’t get fixed.
- Integration has a cost. One of the great complexities and costs for central IT is the maintenance and operation of the “enterprise”, which means the collection of all the software that has to work together. Buying something that doesn’t work right with everything else can cause huge headaches (i.e. costs) for years. Years.
- Software that you build often comes back to bite you in three or four years, requiring upkeep.
- During that time, vendors will have improved their products, or brought out a new product that is better than what you wrote.. requiring an upgrade project.
- License costs are enormous, and only go up.
- Sometimes, an internal development will help drive down license costs because it gives you an alternative when negotiating.
The question isn’t really “buy vs build”. It’s:
- buy, vs
- buy and tweak, vs
- buy and configure extensively, vs
- buy and customize, vs
- buy and commission someone else to customize, vs
- build by hiring someone to implement your design, vs
- build
My points:
- The buy vs. build decision is not nearly as easy as it is usually made to sound.
- Characterizing a decision as a “simple buy-vs-build” does a disservice to the organization making that decision.
(Why, you may ask, am I bringing this up? Has NITAS recently been characterized in one way or another? Well, possibly and probably, although no specific examples come to mind. The reason I mention this is that I continually hear people using the term “buy versus build” as if it really were that simple - sometimes relative to NITAS, sometimes relative to Development IT, and sometimes seemingly proposing that one should always buy. Yet none of the decisions on the table or being implemented now were that simple. To understand how to improve in the future, we have to understand the reasons we are where we are, which means facing the complexity.)