The Business Evaluation of NoSQL Databases

By Adam Fowler

What is as important as technical skills, but all too often given much lower priority, is the business evaluation. Following are some of the areas of the non‐technical, or business evaluation, you should consider when evaluating NoSQL databases.

Developing skills

NoSQL is such a fast‐growing area that the skills required to use it can’t keep up, and with so many different systems, there aren’t any open standards equivalent to those for SQL in the relational database world.

Therefore, it’s a good idea to find and employ or contract, at the right price, those people who have expertise in the database you select. Also, be sure that you can find online or in‐person training.

In doing so, don’t accept, outright, people’s LinkedIn profiles in which experience with MongoDB is listed — sometimes it’s listed only because it’s a very popular database and the person is looking for a job when in fact they haven’t any proven delivery experience with that database. So, you want to be sure they’re actually skilled in the database you’re using.

Getting value quickly

NoSQL databases make it easy to load data, and they can add immediate value. For example, if early on you solve a few high‐value business cases, you may get financial and management backing for larger projects. With this background, you will be able to deploy new applications quickly — potentially stealing a march on your competitors and having fun with ­awesome new databases in the process!

So, start by identifying high‐value solutions for a few difficult, well‐scoped, business problems and perform some short‐term research projects on them. Use a selection of NoSQL databases during the project’s initial phases, and check whether vendor‐specific extensions can help you achieve your aims. In NoSQL, vendor lock‐in is a given because every product is so different — you may as well embrace the database that best fits your needs.

Finding help

With any software product, there comes a point where you need to ask for help. Finding answers on StackOverflow.com is one thing, but in a real‐life project, you may come upon a knotty problem that’s unique to your business.

In this situation, web searches probably can’t help you. You need an expert on the database you’re using. Before selecting a database, be sure you can get help when you need it. This could be from freelance consultants or NoSQL software vendors themselves.

Check the price tag, though, before selecting a database — some vendors are charging double the day rate of others for a consultant to be on site. By handing software out for free or very cheaply they have to make their money somewhere!

Dedicated support is also a very good idea for mission critical solutions. “Follow the sun” problem resolution models will also help fix problems quickly. Some vendors’ support staff are less technical IT support people, whereas other vendors use actually engineers able to take your problem through to resolution themselves. This is quicker than having to wait for the right time zone for a few third level support engineers to get to work in the morning.

Deciding on open‐source versus commercial software

Many people are attracted to open‐source software because of the price tag and the availability of online communities of expertise. The good news is that you can find a lot of open‐source NoSQL vendors and commercial companies that sell support, services, and enterprise versions of their software.

Here are a few reasons to use open‐source software in the first place:

  • Freely available software: This kind of software has been downloaded and tried by others, so some developers are at least familiar with it; and people spend time contributing only to the development of software they consider valuable or are passionate about.

  • Sites like StackOverflow.com: Sites like StackOverflow.com are full of fixes, and someone has probably approached these sites with ­problems you’re likely to encounter.

  • Try before you buy: With open‐source software, you can become familiar with a free version of software before sinking your annual budget into purchasing an enterprise, fully supported version.

Conversely, there are several good reasons for buying and using commercial NoSQL databases instead:

  • Documentation: Product documentation is usually much more complete and in‐depth than open‐source software.

  • Support: These companies may offer global 24/7 support and will have trainers, consultants, and sales engineers that can travel to your office to show you how their software can help you — good for getting support for internal proof of concept and business cases.

  • Rationale: These companies make money by selling software, not consulting services — their day rates may be lower than those selling add‐ons and support for open source databases, which can reduce the cost of implementation.

  • Products: Products usually have many more built‐in enterprise features than open‐source ones do, which means you need fewer add‐on modules and services.

  • Freebies: Because of the overwhelming number of open‐source options, commercial companies now offer free or discounted training and free, downloadable versions of their products that you can use and evaluate.

Building versus buying

Many open‐source NoSQL vendors make their money by offering commercial support and services rather than by selling software.

Many open‐source NoSQL products are also very new, so not all the features you may need are readily available in the software. As a result, you are likely to spend money on paying for services to add this functionality.

Many organizations have internal technical teams, especially in financial services companies and in some defense and media organizations. Because financial services companies take any advantage they can get to make a profit, so they hire very capable staff.

Your organization may also have a skilled staff. If so, “Congratulations,” because you’re the exception rather than the rule! If you’re in this situation, you may be able to add the extra features yourself, rather than buy expensive services.

However, most organizations aren’t in this position, so it’s worth checking out the “additional” features in commercial software, even if they don’t provide every single feature you want of the box, but allow you to build those features faster.

It’s easy to burn money paying for software to be built to fix deficiencies in open source software. Consider the total cost of ownership of any future NoSQL database.

Evaluating vendor capabilities

Whom to trust? Eventually, you must take the plunge and choose a firm to help you in your endeavors.

Small companies may be local, independent consultancies or smaller NoSQL vendors. They offer a couple of advantages:

  • Small vendors may be more tuned into your industry or geography. They’re particularly useful in small countries or sectors where large commercial companies don’t often venture.

  • Small vendors tend to be flexible — because you’re likely to be a major percentage of their annual income, as well as a useful addition to their portfolio.

Small vendors may be prone to financial troubles and downturns. Also, they may not have enough personnel to service and support your organization’s expanded use of a NoSQL database.

Large (usually commercial) software companies typically have their own strengths:

  • Large companies have a greater reach and more resources — both human and financial — to call on.

  • If you have a problem that needs to be solved fast, these companies may be better placed to help you than smaller companies are.

    Large companies have broader experiences than smaller companies have, which means the bigger companies have probably dealt with unique edge cases. So, if you have a unique requirement, these companies may have people who’ve dealt with similar problems.

Finding support worldwide

You want to find out whether local support is available, as either service consultants or engineering and product support personnel. Be sure you can contact them in your time zone and that they speak your language fluently. Perhaps you can request a meeting with their local support leader before signing a contract.

In government organizations, security is paramount. In some countries, a support person who’s reviewing log files and handling support calls for public sector systems must have proper security clearance, and this is true even for unclassified civilian systems. Usually, these stringent requirements are due to government organizations having suffered data losses or theft in the past. Be sure these people are available if you work in the public sector.

Expanding to the cloud

Many organizations outsource the delivery and support of their IT services to a third party. When provisioning new hardware or applications, this process is typically ongoing. It can also prove costly.

NoSQL databases often are used to solve emerging problems rapidly. Agile development is the norm in delivering the solutions to these problems. This is particularly the case when systems need to go into production within six months or so.

Many organizations are now moving to the cloud for their provisioning and servicing needs in order to make delivery of new IT systems less expensive and more agile. Be sure your NoSQL database can be used in these environments.

Several NoSQL products have specific management features in a cloud environment. Their management APIs can be scripted and integrated with existing systems management tools. Ask your vendor what support it has with the cloud environment you choose.