This editorial was originally published on Oct 23, 2007. It is being re-published as Steve is out on the SQL in the City US 2012 tour.
One of the things that's often come up in my career in IT is do we build something or buy it? I'm speaking of software here, if we're in the server, generator, or UPS discussions, I'm definitely in the "buy" camp. I have actually changed the batteries for a 10KVA UPS, which was not fun. Lots and lots of car-sized batteries (not scary) and thick cables (very scary).
However for software, I tend to be in the "build" camp quite often, at least for internal company software. In many of my jobs we've resisted buying too much software, especially anywhere that customization was needed. Since we often spent significant amounts of time making changes, it didn't seem worth it to buy software, especially for the long term. That's for customized packages. I certainly don't advocate writing your own version of Word, Excel, or Outlook.
At SQLServerCentral.com, we recently re-built the site. For the most part.
We bought two significant pieces of software to integrate into the site: an editor, and the forum software. For the editor, I could see that it didn't make much sense to write one. There are many choices and it's a relatively static black box of software, with well defined inputs and outputs, not a lot of interaction points between the editor and the rest of the site.
For the forums, I'm not so sure this was the best choice. Given the time and $$ restrictions, I felt that it made sense to buy it, but it's not been an easy integration. From the software side, I don't think it was too difficult, but from the user experience point of view, it hasn't been great. There are lots of things that don't work well, from the recent posts issues to the notifications, we've had to constantly decide whether we wanted to alter the code or just force the user experience to fit the software.
It's easy to modify the software, but if we get upgrades and patches from the forum vendor, which are inevitable with such a large piece of software, we don't want to have undertake a huge project just to patch the forums. As it is, there's 4 or 5 places that we'll have to potentially rewrite our changes to perform an upgrade.
I've gone through similar debates at other companies. I worked at a small company years ago and we debated about buying an ERP package right after I started. We'd been working with a homegrown, FoxPro for DOS application and I was in favor of buying something. We debated and I ended up on a three year rewrite in Visual FoxPro and SQL Server. It turned out fantastic and later on I argued more against buying something after seeing all the customizations they wanted in our own software. I heard a couple years ago they were looking to buy an ERP package instead of undertaking another rewrite. While I certainly understand their concerns over being in the software business and keeping developers on staff, I also felt their homegrown package gave them a competitive advantage.
And that's the key. If your software can give you a competitive advantage, because you're building something to support your own business, then I think you should write it. Or at least large portions of it. Off the shelf software often doesn't meet your needs and it certainly doesn't give you a competitive advantage, unless you're willing to spend a lot of resources to customize it.
And if you're customizing, you've got a staff of developers. I might make more sense to use them, let them be creative, and build something that can help you succeed.
Podcast: The Voice of the DBA
Today's podcast has a guest introduction, so check it out. All the shows are at sqlservercentral.podshow.com.
As always, feedback for the show is appreciated. Let me (or the boss) know if you like the show and send in comments, suggestions, or ideas to make things better.
The music for today's podcast by Everyday Jones, a great acoustic duo I stumbled on. You can hear more of her music at www.everydayjones.com.