One of the core challenges with building a web-based company is developing the software. Naturally, there are many debates between developing the software with an internal engineering team vs outsourcing the development to a firm, onshore or offshore. Let’s look at a few issues to consider:
- Is the product central to the company’s success or is good enough OK?
- Do the founders or CTO have experience managing an internal or outsourced development team? An outsourced team is generally considered more difficult to manage and management intensive.
- What type of financial resources are available in the near term and longer term? One-time projects might be more cost effective when outsourced if scope is sufficiently defined and the platform is a known technology (e.g. writing a simple iPhone app).
- How fast and iterative are the product changes? I’ve generally found internal teams faster at iterating when compared to an outsourced firm that is juggling multiple projects.
- How accessible is local software development talent? The size of the city and quality of nearby engineering schools can be a factor in finding good internal software engineers.
In my experience, I’ve had the most luck with internal software development teams as our product is our core competency. I have heard stories of software companies having success with completely outsourced software development, even offshore work, but the number of failures I’ve heard about significantly outweighs the wins. My advice is to seriously consider an internal team, even if on the surface it appears more expensive.