If you’re in the software business itself, including all types of web-based software, technology is absolutely key to your product. [. . . ] Great software requires more than just implementation, it requires passion and craftsmanship. These can only come from a star programmer who’s fired up about your project.
I couldn't have said it better. We briefly toyed with the idea of outsourcing for our first version but quickly decided against it. In our case, the team was very technical but had serious time constraints. Some of those have eased, some have not - but in the end, we felt that the core platform and API are just too important to leave to others. These are not only key to our product, they are the product.
Guy Kawasaki thinks that "for version 1.0 of a product, the maximum allowable distance between the engineers and marketers is thirty feet." Joel Spolsky generally seems to hold the same view. He once said "if it's a core business function -- do it yourself, no matter what" - even if that means "reinventing the wheel".
That said, I do think outsourcing has a place. We are considering outsourcing some of the peripheral pieces to the platform - administrative tools, various "collector" plug-ins, and so on - to third parties, whether offshore or local. As Lee said, "if the technology is just an enabler for some other business opportunity, it’s a good candidate for outsourcing."