The "Build or Buy" debate

The discussion on building your own solutions or buying premade products, for different purposes, has existed for ever.

In my line of work, it has surfaced in decisions about choosing things like a Content Management System (CMS), Customer Data Platform (CDP), internal search engine, and possibly connected to that: content recommendations.

And as I’m writing this, a lot of companies are trying to decide if they should build their own Artificial Intelligence (AI) capabilities from scratch or maybe invest in something partly or entirely built by others.

These are my thoughts on what you need to consider when deciding to build or buy.

The different directions

Build your own

If you build it yourself, you can get it exactly like you want it to be.

But what happens after the initial build?
Someone would need to maintain and further develop what you built, and that needs reserved people resources to happen, which has a cost connected to it, for instance running work hours needed, but also the cost of spending time on this capability instead of other tasks and projects.

If internal resources aren’t reserved for this, then you might be better off buying something built and maintained by someone else, since things like security updates, error fixes, and adding new features, should be something you take seriously.

An example from my experience

Back when I worked as a full-time web developer, many moons ago, I was involved in multiple projects where we built our own custom CMS solutions. And honestly, it was exciting and fun projects to work on.

But we needed to build everything ourselves, including what users visiting the website would see, but also the interface used by editors to add various kinds of content to the site.

Since we built everything ourselves, no new features would suddenly be able to use, because the vendor added it to the CMS, we needed to do all of it ourselves.

Would I do it again? Probably not, since we today have a vast amount of premade CMS products to choose from, both paid and free, probably making it possible to find something fitting your needs, or very close to doing so.

Buy something premade

When I started doing web development, before things like JavaScript and Stylesheets existed, there weren’t that many readily available products to choose from on the market, speaking of all types of web related products, more or less. So, it was a more easily valid approach to build more things from scratch yourself.

Today, it is hard to think of any product areas that don’t already have multiple vendors providing their services, both in the paid and free market. Most of these vendors will, not surprisingly, tell you that their product(s) will fit your precise needs the best. You therefore need to navigate wisely and compare different vendor products thoroughly.

No matter what kind of project journey you want to embark on, be it CMS, AI, or something completely different, you can be sure that a lot of vendors are ready to show you all the bells and whistles of their shiny products.

But don’t just chase the shiniest things out there, instead, invest proper time for comparing similar products from different vendors, to weigh different approaches and solutions solving the needs you have.

Also, run an initial Proof-of-Concept (PoC) project with the vendor you end up choosing, before signing anything committing you to paying for the product over a longer period of time, for instance years. Committing to pay for a longer period will often be cheaper in the long run, but not if the product ends up being wrong or too limited, to solve your needs. You will probably end up seeing that the product actually does what the vendor promised you it would, but if not, then you will have an easier way out, towards trying another product from the same or a different vendor.

Although you might save internal resources by choosing to use a vendor supplied product instead of building it yourself, you should still reserve internal resources to always have relevant knowledge about the product in-house. Internal resources should at least be able to understand the overall workings of the product, so that you always have someone, like a super user, with enough knowledge to communicate with the vendor about product support, further development, and other relevant subjects.

An example from my experience

Let’s go back to my long past career in web development. I have happily worked with multiple different CMS products over the years, mostly paid ones, but also some free ones.

A vendor developed and maintained CMS provides a lot of great features, so that you should be able to concentrate internal resources on creating the websites themselves, and to then easily add content to the websites you choose to create.

But quite often, you run into limitations or issues, which then forces you to spend internal resources developing custom functionality for said vendor supplied product.

A paid CMS would include some sort of running license cost, whereas a free CMS of course wouldn’t. Both free and paid CMS products would introduce some sort of cost for internal or external hosting. And both would possibly also include a maintenance cost, for instance for upgrading the product to newer versions from the vendor.

Do I personally prefer to use “pre-made” CMS products compared to developing ones myself? Yes, I certainly do. But I am also very much aware of the fact that this approach might come with some limitations, which importance needs to be added to the equation.

A combination of build and buy

In many cases, you can get good results by doing some parts internally and having a vendor provide you with complementing capabilities, of course very much depending on what you need to build or achieve.

Since there’s a big difference in what’s possible per project and needed products, I won’t go into more detail in this section.

But please consider what, if anything, you would be able to gain benefits from by doing yourself, while still using vendor provided services. An example could be the possibility of having your own custom layer on top of the vendor supplied services, for instance your own custom tweaks or presentation layer.

What would be the best fit for you?

As you might have guessed by now, there is no simple answer to that question. Everything very much depends on many varied factors, accumulated into time and money, which needs to be invested in a balanced combination of internal resources and external services.

You should carefully take your time to consider the pros and cons of the different directions, and not rush into something that will make your project fail from the beginning.

My recommendation would be to start small and build further from there as needed. Some call it the “Minimal Viable Product” (MVP) approach, others call it the “Walking Skeleton” approach, but as shared by both, the main idea is that you gain more by starting with a small usable product, and then build further on that as and when you see fit.

These are my thoughts, possibly ramblings, as a comment on the ever-present “Build or Buy” debate. I hope it will help you remember to properly weigh the pros and cons of all available options when starting your next project.

All the best,
Peter