If it’s a core business function — do it yourself, no matter what.
There's a wonderful essay written by Joel Spolsky called In Defense of not Invented Here Syndrome. I'll quote some of it here.
Indeed during the recent dotcom mania a bunch of quack business writers suggested that the company of the future would be totally virtual — just a trendy couple sipping Chardonnay in their living room outsourcing everything. What these hyperventilating “visionaries” overlooked is that the market pays for value added. Two yuppies in a living room buying an e-commerce engine from company A and selling merchandise made by company B and warehoused and shipped by company C, with customer service from company D, isn’t honestly adding much value. In fact, if you’ve ever had to outsource a critical business function, you realize that outsourcing is hell.
And it sounds like your website is entirely based on introducing cutting-edge, new features that no one else has. If you want to do that well, then you do it in-house.
- Imagine Nintendo outsourcing their game's code and development.
- Would Apple ever outsource their revolutionary design?
- Or Renaissance Technologies outsourcing the secret mathematics behind the Medallion Fund?
- Could Salesforce be the powerhouse it is if they outsourced their marketing and sales people? Would Facebook be as iconic if they outsourced their design?
- Imagine Tesla outsourcing their battery production. Oh wait, they did as a short term measure, and it's not going well, and they're trying to bring it in-house.
- And never, under any circumstances, outsource customer service. To your customers, they are you.
And these principles and examples make sense intuitively. If a contractor could sell Apple's vision and direction, or Google's scalable technologies, or Salesforce's PR, well, that contractor would make more money just by being their own company.
But DDP that sounds hard and expensive.
Creating a successful business is hard and TANSTAAFL. That's why I don't do it.
I'll edit this answer to add one point.
Outsourcing can be fine as a short term measure, but any broad aspects of your customer's experience that are reliant on outsourced labor should be considered weaknesses that need to be addressed with appropriate levels of priority. Here are some examples when it's probably ok to trust a 3rd party.
- Are your developers behind schedule and they need to focus on features? Feel free to contract some testers for a few weeks.
- Need some shirt designs for your online store in the next 2 weeks and the previous guy quit? Contract a designer and hold hands with them so that you're satisfied with the new inventory.
- Your office receptionist and administration had better be direct-hires, but feel free to contract out the office cleaning services.