Buy, don't build

With search engines, it's best to purchase one off the shelf

Q: How would you go about designing a search engine?

A: Whenever I get such emails, I have to wonder why anyone would want to reinvent the wheel. In such situations, the search engine or chat server always seem to be a secondary goal of the project, but rarely the core of the system. Indeed, it's rare to find a project whose primary goal is to create a search engine or chat product from scratch.

If you are writing a search engine or chat client as a product in its own right, go right ahead. You will probably fail in the market (because there are already too many mature products in a saturated market), but go ahead. I wish you luck. Of course, if your design proves to be groundbreaking, you might do well. I suspect, however, that if your designs are groundbreaking, you wouldn't be asking me basic design questions.

The second type of effort, creating the functionality as an add-on to your actual system, represents a misallocation of resources.

Let me explain why.

When you set out to create a product, you want to solve a problem in the domain of your expertise (one would hope so anyway). Search theory and chat networking probably fall outside of your areas of expertise. In my opinion you should simply license a preexisting solution and incorporate it into your product.

Prebuilt products may seem expensive, but think of it this way: by the time you finish paying your developers, you will most likely have paid the same amount as the cost of software licensing. To add insult to injury, you will have to pay to maintain the product, and you would have lost development time that could have gone into the core product. If I may make one more conclusion, the search engine or chat client that you create will not be as good as those available for purchase. How could the first iteration of a homegrown solution be better than a product with years of development behind it?

The truth remains that unless your design is groundbreaking, the functionality will be no better than what you can buy. In fact, in a feature-to-feature comparison, the homegrown solution will come up short.

As a consultant, I help my clients find the best solution to their problems. Building everything by yourself rarely represents the way to go. Although buying a product may not be as sexy as building a solution, it often makes the clearest business sense. (And no, I do not own stock in any chat room or search engine companies.)

Tony Sintes is a principal consultant at BroadVision. Tony, a Sun-certified Java 1.1 programmer and Java 2 developer, has worked with Java since 1997.

Learn more about this topic