99% of the time buying is the best decision for a startup. That may be a slight exaggeration, but the sentiment is true.
For instance, a startup would be silly to not to pay for an email service like Mandrill, MailGun, or SendGrid when it comes to sending transactional email. Or to slap down $40/mo for live chat on Olark rather than building their own live chat. Probably.
But rather than just defaulting to slapping down money on a commercial solution it makes sense to think about whether or not buying really is the best solution.
When Does it Make Sense to Build?
At Zapier we use two pretty simple rules to decide whether we should build a solution or whether we should buy a solution. Both conditions must be true for us to build.
The problem we are facing needs to be tied closely to our core value proposition and thus a great solution will enhance the product or make us more efficient at selling the product.
Existing solutions are not specific enough to meet our needs.
When Have We Built Instead of Buying?
Zapier makes it really easy for non-technical users to integrate over 100 different web applications. Because Zapier is a broad utility we attract a diverse user base that is solving vastly different solutions.
This presents unique challenges for supporting diverse use cases and for communicating with diverse users.
Problem 1: Building Help Docs
There are lots of nice help doc, knowledge base solutions. All of them are static and aren't easy to bake into our own product. Because we need to support n^2 support instances where n equals the number of services we support, we need an easy way to dynamically change the help docs presented to the user in the core application.
No one will likely build that solution except us. That solution allows our users to more easily support themselves and drastically cuts down the time we spend on support.
Problem 2: Drip Campaigns
There are also a few nice drip campaign solutions out there, but we found most of them (at least at the time) have limited segmentation features, were unreliable, and didn't give us the control we needed for who we send email to.
So we built a simple drip campaign tool in Django that lets us segment off any piece of information we have in our database so that we can send the right emails to the right customers at the right time.
Note from Bryan: We're planning on open sourcing the Django drip campaigns soon!
I'd Rather Buy
Given the opportunity I'd much rather buy. We spend money on more than a dozen services each month like live chat, help desk, forms and more just because they get the job done quickly and easily and we can spend time on other things that better enhance the value of our company.
Given the opportunity buying is likely the best solution for the rapid pace at which startups need to develop. Rather than just defaulting to that though, think for a few minutes about what your situation is and whether building might make sense.