The enterprise platform to build, deliver, and govern AI
Watch the 15 minute on-demand demo to get an overview of the Domino Enterprise AI Platform.
“Buy vs build”, “not-invented-here syndrome” and even “invented-here-syndrome” have been written about extensively. I want to share a few reflections on the topic, based on my observations both as an engineering manager (where I had to decide whether to build or buy solutions) and more recently as a founder selling a platform to other companies.
As a shorthand, I'll use the term “buy” to mean “using a third-party solution" (including something free or open-source).
I’ve seen countless blog posts that describe the pros and cons of building vs buying in terms of features and engineering effort required. What’s the quality of the third-party solution you’re looking at; does it have all the features you’ll need; how much time will it take to learn/integrate another solution vs building your own.
In my opinion, this type of calculus misses the most important question: is the capability you’re trying to provide core to your company’s business and competitive advantage — or not? If you are delivering a capability that is core to your business or what differentiates you, you should have a strong bias to build, so you can control your own destiny. If you are providing a capability that is peripheral to, or supporting of your core business, you should have a bias toward buying, so that you can focus your precious engineering resources on your differentiated capabilities.
This framing represents a subtle but important shift in mindset from how most people approach the buy-vs-build question. Consider an argument like “a third-party product has all the features we need, so we’d be wasting time building it ourselves” — if those features are key to your competitive advantage, you may want to build your own so you can evolve them precisely how you need to. Conversely, if a product has only 80% of what you want, but it’s serving a function that won’t make or break your success as a business, it may be better to take the 80% so you can focus on your must-do functionality.
As an example, a hedge fund might build its own time series database, even though there are plenty of powerful database solutions, including many with great time series support. This makes sense because representation and manipulation of time series are critical to the firm’s competitive advantage. On the other hand, that same firm would be crazy to manage its own web hosting infrastructure. Conversely, a high-volume consumer web app might need to build and manage its own hosting infrastructure, but might use an off-the-shelf database for storing metrics (as time series). The buy-vs-build choice should be made with a deep, thoughtful understanding of what’s most important to your business.
A pitfall with this line of thinking is that it's easy to conflate two separate capabilities, instead of recognizing that one is core to your business and another isn't. For example, you may have predictive models that are critical to your competitive advantage — but a grid infrastructure to compute those models is probably a generic problem that many companies have.
Most engineers are engineers because they like to build things. So if you ask an engineer whether it will be better to build or buy, in most cases, her default posture will be to build. It's not bad that engineers like building things — that's great, in fact — but it does mean you need to keep that in mind when asking an engineer's opinion.
Here’s an actual email I received from a data scientist who had seen Domino and thought it would help his team:
Hey Nick,
Sorry for the delay in response. I have chatted with a few of the developers here and they have decided to tailor build our platform in house. I am not entirely sure why, but this has been a common trend with [company]. Thank you for your time though.
Or another email:
Hi Nick,
Congrats! Seems like an awesome product, my team was definitely impressed. I don't think it's a fit for us as we prefer to homegrow and err on the side of needing control but would love to let you know if that changes.
Unfortunately, this bias often extends to technology management positions, as well. I know one engineer who was building his message queue because, according to him, “if I keep suggesting existing solutions instead of building my own, I’ll lose credibility with my CTO.”
When technologists are divorced from an understanding of the business, the effect of their natural inclinations becomes amplified. If your engineers believe their raison d'être is to build things, rather than something like “to optimally use technology to achieve our key strategic business goals,” then your engineering organization, and your business as a whole, will suffer.
I’ve heard dozens of engineers and technology managers say that they build all their technology in house. But of course, these companies have not built their own operating systems, programming languages, database systems, email clients, text editors, etc etc. And I suspect they would never consider building an in-house solution for any of those capabilities.
I think this bit of cognitive dissonance highlights the challenge of applying my earlier advice (considering your core/differentiated capabilities), in practice. Specifically, I suspect many companies have inflated, aggrandized views of what is actually core to their business and, at the same time, I suspect they underestimate the cost of building their own solutions.
None of my observations above are meant to suggest that buy-vs-build is always a simple decision. A variety of factors — often in conflict with each other — are involved. A good technology manager — with a visceral understanding of the relevant business considerations — will be able to cut to the heart of the issue, identifying which of these questions are most relevant in any particular circumstance.
- If you’re building a solution, remember that 40-80% of the “cost” of building a solution comes from the ongoing support and maintenance. Can you commit to that, or do you want a third-party to be doing that?
- Conversely, if you’re buying a solution, will your requirements for improvements be aligned with the interests of the vendor or provider or the solution? Will you benefit from updates, or will the solution evolve in a direction at odds with your goals?
- Of the functionality you’re getting, how complicated is it? Would it be easy to build and maintain yourself, or actually quite subtle and involved?
- Consider the cost of integrating a third-party solution. Even if it has all the functionality you need, how much work will it be to integrate with your existing environment?
Here are some concrete examples of decisions we’ve made, when building Domino, about what to buy and what to build.
We ended up building something very similar to Github’s Large File Storage, but we did this almost two years ago, before Github’s solution existed. (If we were doing it now, we’d probably use their solution.) We looked at git-annex and a couple similar solutions but none of them seemed to give us the control we wanted, and/or the integration complexity would have been awkward. So we opted to mostly use git, with our own custom development on top, carved out to be as minimal as possible.

Nick Elprin is the CEO and co-founder of Domino Data Lab, provider of the open data science platform that powers model-driven enterprises such as Allstate, Bristol Myers Squibb, Dell and Lockheed Martin. Before starting Domino, Nick built tools for quantitative researchers at Bridgewater, one of the world's largest hedge funds. He has over a decade of experience working with data scientists at advanced enterprises. He holds a BA and MS in computer science from Harvard.
Watch the 15 minute on-demand demo to get an overview of the Domino Enterprise AI Platform.
Watch the 15 minute on-demand demo to get an overview of the Domino Enterprise AI Platform.