The Tech Philosophy Dilemma: All-in-One vs. Best-of-Breed
Over the past several months I’ve been pretty entangled in a tech philosophy question that I’m positive you will either 1) be involved in…
Over the past several months I’ve been pretty entangled in a tech philosophy question that I’m positive you will either 1) be involved in sometime in your career or 2) have already been involved in sometime in the past.
The simple version of this question is really just three words “all-in-one versus best-of-breed”
Now, I have plenty of opinions on this topic, but I don’t really think just those three words are enough to lay out the landscape. So, before I jump into my feelings on this somewhat complicated topic, let me spend a short amount of time to explain the scenario.
Over time in the tech space, the concept of getting an “all in one” solution versus making or buying small parts of a full solution and integrating them together (best in breed) has been pretty hotly debated. And over the same time, the popular opinion has swung like a pendulum.
On the all-in-one side of the argument, solution seekers will be swayed to believing that you will save a ton of headaches by simply buying one solution that “does it all”. Sure, the all-in-one solution might not match your use cases 100% perfectly, but the concessions that you make in functionality are compensated by ease of use and lower overall cost compared to the total price of buying several smaller solutions and having to pay engineers to integrate them to make your perfect solution.
In contrast to that, the “best of breed” approach; argues that simple, specific, and cheaper solutions integrated together can provide a better experience and save money overall. Sure, its more work to take several smaller solutions and integrate them through APIs or other types of connectors, but in the end, you get exactly what you need. Nothing more, nothing less. You also save money because each of these smaller solutions has way lower licensing costs than larger all-in-one solutions.
Now I am sure as I rattled off those basic explanations, you may have immediately chosen what you think is best. And depending on what year we are in when you are watching this, you have probably been pre-conditioned by the current tech landscape to pick the one that is more popular right now. You see, as time goes on the popular opinion changes. And let me explain why that is.
The short answer is mergers and acquisitions. Whether you realize it or not, there is a forever-churning cycle with tech companies and startups. It goes something like this.
Small startups build solutions that are lightweight and highly specialized. To get their companies off the ground they start selling this product at a relatively low price to get people in the door and to try to compete with less specialized solutions that just don’t quite do what they offer. People buy these solutions when they are looking for that very specific solution and then integrate it with other tech to compose their complete solution.
Next, as these companies mature, they begin to take market share away from large all-in-one applications. They start to expand the offering of their very specific solution to reach into other related tech. Their current customers will usually adopt these new features since they have already bought into the company and the integrations are easy because it's just one more new feature added to the offering.
Now on its own, this could be seen as the small player becoming the big player, but the big shift back to the all-in-ones actually comes in the next phase.
The bigger names out there who have been seeing the market share slide because of a competitor need to make a move, and since they are larger and generally have more capital, they will make the strategic move to acquire the once smaller company. They take the features of the smaller offering and bake them into their large, all-in-one solution. At first, there is no real change since it takes time to merge two completely different tech stacks, but over time the smaller best-of-breed company just becomes a new set of features on the all-in-ones massive list.
But more importantly, the companies that previously decided to buy a solution from the “best of breed” company are now actually customers of the all-in-one offering… and all or some of the employees that used to work for the best of breed company are now employees of the large company.
And… the cycle starts over again. The consumers get frustrated with their solution only solving 80% of their problem, the former employees of the best-of-breed company see holes in the market, and they decide to start a company that makes a new “best of breed” solution.
You see where I’m going with this? This cycle never stops and over time you will see shifts in the market as well as popular opinion on which is the best approach.
Let me give you a real-life example of this. And since I’m your average lazy developer I’m not going to do a lot of research and just give you the most obvious example there is. Let’s talk about Salesforce.
Salesforce IS THE all-in-one in the room. Both from an architectural standpoint and a business standpoint. Salesforce started as a CRM company. They made a web application that allowed you to keep track of your customers, log your phone calls, take notes, track deals, and close sales. From that perspective, when it comes to CRM, Salesforce is the “best of breed”… and they were and still are best of breed in that category.
But it doesn’t stop there. Take a look at this list of companies that have been acquired by Salesforce.
Slack: Acquired in 2020 for $28 billion
Tableau: Acquired in 2019 for $15.7 billion
MuleSoft: Acquired in 2018 for $6.5 billion
Demandware: Acquired in 2016 for $2.8 billion
ExactTarget: Acquired in 2013 for $2.5 billion
ClickSoftware: Acquired in 2019 for $1.35 billion
Vlocity: Acquired in 2020 for $1.33 billion
Heroku: Acquired in 2010 for $212 million
Acumen Solutions: Acquired in 2019 for $570 million
Phennecs: Acquired in 2019 for $16.5 million
Now that I’ve spent way too long making the point, maybe it’s time to get to the actual topic of the post. Which one is right? Which one is best? What do you choose? Ok… so please hold back your urge to flip your desk when I say this, but the answer is “it depends on”. The answer is both, depending on the impact of the solution you are picking or building. Let me explain, so hopefully you get some value out of this.
Earlier I said that all-in-one solutions may not nail your feature requirements 100%. I think that is the part you want to focus on when trying to make a decision. Take a close look at what you won’t get if you choose the larger, but simpler to implement solution. Is the missing 20% super critical for your project or business? Will you honestly lose critical functionality that impacts the success of your product if that 20% is missing? If the answer is yes, they will either need to supplement the all-in-one solution with a smaller integration to get the missing parts, or you decide to completely forgo the monster and instead search for small cheaper components that will do all the critical things you need.
On the other side of the spectrum, if you are looking at smaller best-of-breed solutions, how much time will you spend in integration hell? Will engineering solutions for making all the parts act as one become a never-ending time suck? If the answer is yes, maybe you need to look a little harder for something that bakes together some of the stuff you need, so you don’t have so much ongoing engineering effort and maintenance on your hands.
And as a final note, there is one other super critical factor to consider with the all-in-one solution. Remember that just because the mega product claims to support all the features you need, it doesn’t mean they are well-supported or even, well-integrated into their current offering. Look to see how the specific features you need came to be a feature. If they were once a small company that was acquired, how long ago was it acquired? How much time and effort has gone into making that acquisition a truly integrated feature of the overall product?
And here’s another final, final note: remember big companies have big sales teams. They will sell you the dream. They aren’t technically lying because anything’s possible. But really pay attention to the sales pitch and try to get some more technical people on the horn to ask some probing questions before you buy.
I hope this helps you as much as it helped me get it off my chest. Thanks for stopping by and until next time. Happy coding!