Support Of Commercial Software vs Open Source Software

7 commentsWritten on March 29th, 2009 by
Categories: Opinions

I just read a post by Bobby Johnson titled: Requesting Contracted .NET OSS Bug Fixes from the Community. Bobby works for a company where he can't easily sell the idea of using Open Source Software (OSS) in his projects to management, mainly due to the support issue. A lot of managers have this misconception that because a piece of software comes from a commercial vendor, they will receive proper support from this commercial vendor. With OSS, there usually isn't any kind of guaranteed support. Let's take a closer look into the commercial vs OSS support stories, shall we?

Let's discuss support for OSS first. In the OSS world, there are no guarantees. If it works for you, great. If it doesn't... well, this is where the problems begin. Generally, you contact the developers either through their mailinglist or their issue tracker. If you're out of luck, you get no response. If you're using an actively maintained OSS library (and you shouldn't use inactive OSS projects unless you are willing to maintain it yourself in case of problems), then you will most likely receive at least some kind of response. The issue or bug might be acknowledged, or it might be dismissed.

Let's consider the worst case scenario first. The bug or issue you reported has been dismissed. When you're dealing with healthy OSS projects, your bug or issue will almost never be dismissed without a justified reason. If they do dismiss it, make sure you actually understand why. Usually, it's because you're using it wrong in some way. And yes, it actually is very possible that you are using something created by others in an manner which is incorrect. Your mistakes will either be pointed out to you, or you will find people (on the mailinglists or on people's blogs) who have run into the same 'issue' and have already found a workaround.

If your bug or issue is acknowledged it usually gets fixed pretty quickly. Now, in some cases, real bugs/issues don't get fixed immediately, usually because no good solution which won't introduce other problems has been found yet. In this case, you're pretty much out of luck unless someone has found a workaround. If it does get fixed, the project might release a bugfix release (not all projects do), or they will tell you that the issue has been taken care of in the trunk and that you can either use that, or wait for the next major release. If you can't wait, you can usually still backport the fix from the trunk to the latest release.

As you can see, there are quite a few options in the OSS model. A lot of it depends on the healthiness of the piece of OSS that you're using. In the absolute worst case scenario, you can still fix it yourself. Will it take you time (and thus, cost you money)? It almost assuredly will. But at least you have the option to fix it yourself, even if it rarely comes to that.

Let's focus on support in the commercial software world now. First of all, i will state that the quality of support from commercial vendors can vary from poor to awesome just as well as it can vary between OSS projects. If you disagree, i would suspect that you (or your employer) either have very deep pockets, haven't really 'been around', or you don't really work in the real world. Let's classify the commercial vendors in 2 possible categories. The first category is for dedicated software vendors. With that, i mean vendors that focus on one or a couple of things and try to do those things really well. Like, JetBrains for instance. The second category is the kind of company that tries to do everything, usually with varying results. Like Microsoft or IBM.

When products from Category 1 vendors become popular and successful over a sustained period of time, they usually have great (or at least good) support. These products usually have a big userbase, so any problems that the software may have (and we all know that every piece of software has problems) are likely to have been discovered by other users already. Often, a workaround will be available already. If not, the vendor is usually pretty quick on the ball with bugfix releases. There are obviously always exceptions to this, but i guess the same rule applies as to when selecting OSS products: consider the healthiness of the project/organization because it truly impacts everything.

And then there are the Category 2 vendors. These are the vendors that are adored by most managers. Nobody gets fired for going with IBM or Microsoft, right? These companies are huge and the odds of them disappearing over the long haul are slim to none. You paid for their products, so they will always support them. Right? I mean, they couldn't possibly get away with shoddy service to their customers in this day and age!

Let's get back into the real world. When you're dealing with Category 2 vendors, the odds of getting high-quality support aren't as high as you'd think they'd be. First of all, these vendors have a huge product portfolio of software that you can use. Some of those products will be great, and some will be horrible. I don't think anyone can honestly state that no Category 2 vendor has ever released a product that wasn't problematic. If you're using one of their high quality products, then you won't likely run into many issues. If you're using one of their slightly less awesome products, you will likely run into issues, sometimes even a boatload of them.

So what do you do? The vendor will have some sort of means for you to communicate about the bugs or issues you have encountered. In most cases, this will be some sort of website. You can register bugs/issues and hopefully, they will be assigned to someone who will look into it. If that happens, you will hopefully get a response which states that it's either a real issue or that the problem is on your end. Notice how this is still very similar to how it goes on the OSS world. If the problem is on your end, you can hopefully find other people who have ran into the same issue and maybe even find a workaround. If not, you are limited to figuring out a workaround for yourself. You don't really have to option to truly fix the problem as you do have with OSS (even though that's not always realistic either, but at least there is the possibility).

If the Category 2 vendor actually does recognize the bug/issue, there are a couple of things that can happen. They might give you a bugfix. The bugfix might be issued to you (as their customer) privately which means you're probably paying them a boatload of money in annual license fees and support contracts. Don't count on this kind of treatment unless you work for really big companies and even then, keep in mind that they won't fix every real issue or bug that you might run into. If it's a huge issue, it might be released in the short term publicly. This happens very rarely. If the issue/bug gets fixed but you don't get a short term solution, the vendor will simply tell you "this will be fixed in vNext which will come out in 20{1-or-2-years-from-now}".

Support is always a tricky issue, and there is no valid reason to believe that support of commercial software is inherently better than that of OSS, unless you have deep pockets. Most of us however, don't. This post has been rather long, but it's one of those subjects that easily gets me aggravated because i've suffered from crappy support from commercial vendors (particularly Category 2 vendors) just a few times too many. I've also had to deal with managers who's blind faith in commercial vendors was truly astonishing a couple of times too many. Have i been burned by OSS support before? Definitely, but at least those people don't make false promises and you do always have the option of fixing something yourself, no matter how complicated it might be.

Choosing which pieces of software to use should IMO be based on their intrinsic value, not on the company or organization that is behind it. If you can afford premium support, then great, go for it if you want. If you can't, don't assume that the typically provided support will be better than that of OSS projects. And no matter how great the support may be, you're often better off choosing reliable pieces of software where you are less likely to encounter the need to seek support in the first place. If the software is reliable, then the possible support that you may require is often pretty good as well.

Choosing a piece of software based purely on the possibility of getting good support is quite simply rather short-sighted. You might just end up with a piece of software that causes you many problems, and the support you had hoped for isn't really giving you all that much extra benefit either. Or you may end up with crappy software with great support, but wouldn't it have been better if you could've avoided the crappy software in the first place? Just pick the right tool for the right job.

  • http://budts.be/weblog/ teranex

    I think there is even another method of getting support, in case of a bug in an open source application that you use: offer to pay a developer to fix it, as suggested by Jeff Atwood: http://www.codinghorror.com/blog/archives/001247.html.
    I really like this idea, when you find a bug in an open source application that you really really want to have fixed and can’t do it yourself, just offer to pay one of the developers to do it for you. If you use open source software and you pay a developer just a few times, it will probably still be a lot cheaper than paying for a similar commercial app (or even for a support contract) and the bugs will probably be fixed even faster…

  • http://davybrion.com Davy Brion

    yeah that’s pretty much an extension of the possibility of fixing an issue yourself

  • Stefan Jaworski

    Does open source software gaurantee that I will need support? I wouldn’t want the developers
    of that software to produce a quality product, that does what it promised to do, without fail,
    leaving the them to starve of hunger.

    The IT world is not devoid of sound business principals and it is understandable that management,
    that primarily understand business principles, would be pretty sure that there is no free lunch
    in business, unlike the economists of the world, who forgot about supply and demand.

  • http://davybrion.com Davy Brion

    @Stefan

    i agree that there is no such thing as a ‘free lunch’, i just find it funny how some people actually think paying a lot for junk food is somehow better

  • Stefan Jaworski

    mmm, the other side of the coin argument. agreed.

  • Pingback: What Microsoft Should Do For .NET Open Source | The Inquisitive Coder - Davy Brion’s Blog

  • Pingback: Pass the Source » Freely Supported