Build vs. Buy
When faced with a new project the first choice a technology leader has to make is whether to build it yourself or find some existing solution that you can buy.
I'm an engineer by trade, and I'm fully cognizant that my natural inclination is to look at a service and think "I could build that better."
That bias is never a good enough reason to build something in-house. So how do you decide to build or buy?
Build What Is Core to Your Business
Don't outsource the core of your business. You want to have complete control over the software that will make or break your business.
The tricky part is deciding what is "core" to your business.
Is shopping cart software "core" to an e-commerce business? At first glance the answer may seem to be "obviously", but I don't think its that simple.
If online experience is a key part of what makes your company special then you should own that experience. A company like Amazon should never use off the shelf e-commerce software for their shopping experience.
On the other hand, the core of your business may be unique inventory or amazing service. In that case, something like Shopify that lets you focus on what you’re selling instead of the software you’re using to sell it is probably a better fit.
Buy the Rest
Unless you work for ZenPayroll you probably shouldn't be writing payroll software. Nor should you be writing accounting software.
When you need one of those complementary systems go find a tool that will do it for you, pay for it, and get back to working on your core business.
Pay for a license or a service if doing so:
- Allows you to launch faster
- Gives you features that would be difficult or time consuming to build yourself
- Handles some sort of time-consuming or tedious ongoing integration, updating, or monitoring.
"Core" Changes over Time
Finally, be prepared to revisit what's core. It changes as your business changes.
When we first built LivingSocial we used an email service provider to send our email. They handled list management, CAN-SPAM compliance, and deliverability monitoring. Using an ESP let us launch faster, and all of those things would have been difficult to build.1
Outsourcing email list management and delivery was the right call at the outset.
After a few months it became apparent that Deals had legs and that email was a major driver of purchases. When our ESP began struggling, we briefly looked at other ESPs but quickly decided email was too important to trust to someone else.
That was also the right call. Our business had changed in that year, and our build vs. buy decision also needed to change.
A Middle Ground
Build vs. Buy is not an all or nothing decision. There is a third path that can give you most of the freedoms of building while still letting you get the head start of buying: Open Source.
Continuing with the e-commerce example you could eschew hosted services while not starting from scratch by using something like Magento or Spree Commerce.
This is the approach we've chosen at Pet360. We use Magento for our commerce sites. Magento gives us full control of our experience; we have all the code so can change anything. Magento also gave us a strong starting point of existing features. This way our team can focus on building things unique to our business instead of worrying about how to model promo codes.
Build (or customize) what is core to your business. Buy the rest.
- We eventually did have to build all of those things because the ESP didn't necessarily do a good job of them, and it was (and still is) a huge undertaking ↩
More Articles on Software & Product Development
- Agile With a Lowercase “a”
- ”Agile“ is an adjective. It is not a noun. It isn’t something you do, it is something you are.
- How Do You End Up With A Great Product A Year From Now?
- Nail the next two weeks. 26 times in a row.
- Build it Twice
- Resist the urge to abstract until you've learned what is general to a class of problems and what is specific to each problem.