« Improving the Presentation of your Ideas | Main | Third Party Component Web Site Turn offs ... »

When do you buy a third party component product rather than build?

I was just reading a recent post on the VistaDB blog titled Looking ahead to 2008, and back at 2007. (What's funny is that I have no idea who is writing the blog post because they don't seem to post their name though they're trying to be 'transparent' about their business and plans!).

In any case, this was part that made me think:

Where we are lacking is in sales, marketing and business partners. The website and store have to be overhauled, and the training of new users to ADO.NET and VistaDB needs serious work. This is not just documentation; it is also samples, case studies and tutorials. We do have a few strong partners, but we need to do much more to get the word out about VistaDB. Not just about the engine, but about the philosophy of managed code, and why we are doing all this in the first place (the business case).

As a hobbyist developer at home, my "buy a widget" budget is extremely limited. It's really hard to convince the CFO (wife), that I need some widget or tool for an application I'm writing for home use (I've been successful a total of one time in 10 years in buying a widget). So, I'll spend hours scouring the Internet for other options, or writing it from scratch (or deciding I don't need as badly as I originally thought).

At work, we can buy components of course that fit various needs. I'm sure this is true of many development shops, from internal IT tools, to departmental applications, to commercial applications that are being sold.

But, where do you draw the line (both personally and for work)? How much effort are you willing to put into a 'widget' before you decide that it's worth buying instead? In this example, the product they're selling is VistaDB 3.3:

... is the world's first  100% fully managed and typesafe embedded SQL database designed specifically for Microsoft .NET Framework, Compact Framework, 64-bit .NET and Mono. Build fully managed and typesafe ASP.NET and WinForms applications using C#, VB.NET and other CLR-compliant languages.

At $169 currently, it's not a very compelling product if I'm being frugal about money spent (raw dollars, ignoring time here). Looking around at free options that are immediately available from Microsoft as competitors, I could use an Access database or SQL Server Express database, or even a SQL Server Compact database. All are decent options -- and available for no charge from Microsoft. They each have limitations on the number of connected users and the size of the database, but for many applications (especially home users), these limitations aren't an issue. The compact edition is especially nice as it doesn't require any special installation.

If my needs were relatively simple, I'd go with one of the free options -- no questions asked. If my needs scaled, I'd likely go with SQL Server as it has the best growth and management opportunities (well known, etc.).

So, where does that leave a product like VistaDB? If you believed that having a 100% fully managed embedded SQL database is important, then it may be a good option and worthy of potentially purchasing (after a thorough test). But, if you're not as interested or don't believe that it's that big of a deal, then there are many database options that you could employ in an application.

Sometimes it makes sense to build yourself. However, writing a decent database should rarely be on the "build it yourself" lists (I don't consider an XML file to be a database). Clearly, either buying a database or taking advantage of a free option is really the only choice when considering a database.

Although I've been talking about mostly databases in this post, I'm more interested in hearing the answer to what types of things you'd be more likely to buy rather than build? Is there some price point where you decide that the 3rd party product costs too much, so you'll look elsewhere?

 

What should a company like VistaDB do for hobbyist developers? Should they offer free versions for home use? Or, provide free versions to developers who link back to their site (and provide a review / feedback)? Or ...

There's no way for example, I'd buy VistaDB for home use, which means I'm not likely to talk about successes, provide feedback, etc., on my blog, which would amount to "free" advertising. It's a tough call for any vendor.

Comments

My purchases are usually UI elements (at work, my home budget is less than yours) such as charts and specialized input widgets. I'd not consider something like VistaDB given the free options or working magic behind the scenes (Sometimes all you need is a few XML files to fake your db).

The main reasons are listed in your other post following this one. Licenses per developer, per server, per user, etc. Licensees making CI and automated builds hell. I'd rather trade the time spent "setting up" the thing on finding an open source project doing the same thing, and contributing to the project so it fits my needs.

Well, a compeling reason might be simple deployment which immediately rules out Access and SSE. Which leaves SSC as the only alternative. And if you require portability, too, then SSC drops out, too. :-). The bonus reason might be source code and option to actually modify database engine or improve it. It also protects you in case the company goes away.

Miha,

Is there any challenge to using an Access database these days?

Would you pay $999 for the source code? I'd think having the source is nice if available, to at least be able to work around problems, but beyond that, any changes could lead to a version management nightmare I'd think (especially risky with a database).

Aaron,

Access means troubles for deployment (we are talking single user/single app deployment, right).
If I am willing to pay for source code? It depends of course, but I would certainly feel more secure having at least the option to buy sources.
And you are right about the problems that derive from changing those sources - in fact, I would change them only if I had an urgent problem or if the company disappeared.

I am the one who wrote the post (Jason Short). I usually don't have to tell people on the blog because it is part of the VistaDB.Net site. We have a lot of activity in our forums and I think most of the people on there know who I am... So I don't mention it is each blog.

The real compelling reason for going with a 3rd party control (not just ours) is when it will save you time, money, or both. SQL CE cannot be used for ASP.NET development, and SQL Express is super overkill if you are writing something for you and your wife to run on your desktops. And as I can tell you from talking to lots of users the free SQL CE leaves a lot to be desired. Not to mention you might want to run on Mono (Dot Net for Linux), etc, etc.

I have been considering making a VistaDB Express type offering that would be free with some limited usage license for personal projects, open source, etc. Feel free to contact me through the VistaDB site to discuss. I am actually pretty open about our business processes and how we arrive at our conclusions for things.

The reason for the source license is to avoid having to do Escrow. Most large projects require an Escrow for third party controls (especially health care / banking). The Escrow in many cases costs then of thousands of dollars. We give people an alternative without getting lawyers involved.

Post a comment

(If you haven't left a comment here before, you may need to be approved by the site owner before your comment will appear. Until then, it won't appear on the entry. Thanks for waiting.)

Help support my web site by searching and buying through Amazon.com (in assocation with Amazon.com).