Our team has a huge 7 digit venture capitalist funding and we want to make a web service that we get money on every time people use it. The software does not depend on us coming out with more competitive releases, its more about just needing an efficient service that will be able to do what we need it to and perhaps enhance the user experience as we grow. If I have a team of 4 people, 3 great business savy people (knows the ins and outs of the market), and 1 good programmer, what would be a better choice in starting up a website/web service?
-Go to a large highly trusted consulting development company and have the system built professionally?
-Or start our own team, hire programmers and try to get it built that way? Keep in mind we would have money for doing both routes.
My webservice: Just think of an online poker software or website, pretty similar to that
A VC investing millions of dollars in a startup is investing in a combination of team, market opportunity, and technology which gives a competitive advantage. I assume that your scalable website is a part of your competitive advantage and what customers will pay for, as opposed to being primarily a marketing tool for some product which is not related to your web site.
If you outsource development and operations of your scalable web site, you are stunting your ability to learn about your market and technology more deeply. Building the web site or web app will gel your team and deepen the internal knowledge of the market. That is what a VC is paying for.
On the other hand, if your web site is not a core function of the business, then outsourcing it might not be a bad idea. You'll have to look at numbers and risks before deciding.
What's your end game?
What is the production code?
Use both when possible, outsource beta version, in-house to differentiate and extend.
Another question to ask is what type of staff do you want in the end? An in-house development group to extend the system or just a maintenance crew.
Specific to an on-line poker site:
The poker site is made unique by video/chat integration so you can see who you're playing.
Unique games, locale specific games, branded games.
Generally, in the startup failures where I've known employees and the product appears viable - If upper management is not technical it should be outsourced. Successful startups with in-house teams usually have top-level management that can mentor and participate in development.
7 digits can be piddled away in a year with nothing to show but parties, fancy furniture and airfare. You should be in the mindset "If you're not profitable, you have no money". This doesn't mean be cheap with your employees or marketing, just be frugal until something of value is produced, either profit, product or user base.
I work with a lot of businesses in this situation. Outsourcing has a lot of advantages when your needs are highly variable. Since it takes time to put together a development team and get up to speed, and you get less consistent results when you need to grow quickly or lay off developers, an in-house team is best at handling a consistent workload. If you're not building something highly complex it may be that you need a certain level of development bandwidth for the initial launch and then less after that so you may not want to hire someone for the first part only to have them get bored after. On the other hand, as others have said you need someone who will be around for the long term and we haven't seen many other contract developers who are focused on long-term relationships.
Another advantage of outsourcing is that you can get a full and effective development process in one decision instead of having to hire multiple people and then guide them.
There are two variables to watch out for either way; technical ability and the ability to build the right things. I'm not sure what your specific needs are here; it doesn't sound like the technology requires anything more challenging than scalability and it probably doesn't have a lot of innovative features. If you're creating technology that really pushes the limit then you usually want to hire a few highly technical people, but for everyone else that's not what works best.
The real challenges may be to ensure the right software is developed for the market. The right consultancy may be able to provide you with a full process that ensures you're developing the right things and not wasting time since they can put together project managers, business analysts, developers, etc. This is a common mistake since many vendors have good experience but can't build what your market needs. If you build a team you need to ensure you get both capable developers and someone who can translate the 3 business-oriented founders' knowledge into technology requirements and guide them in determining what should be done at this point.
You then need to build a process that will ensure this gets done consistently over time. Having a developer as a founder doesn't guarantee that they will be able to lead a team, interface with the non-technical side, or guide an appropriate process so you may need to find others to do that. You could hire a CTO to do this, but then you have another search process and decision before you can start building the team.
The advantages of employees are that they aren't working on anything else, so over time they may get a better understanding of the non-technical needs. A good consultancy should be doing this as well; they will focus on it less since they have other clients but on the other hand they may be able to transfer more experience from other clients to what you're doing if there's any relation.
In the long run good developers can have a lower cost and slightly tighter integration with the rest of the business than a good consultancy, but it also takes longer to get there (and you may spend more along the way). Can you do both, so you get a faster start while building up long-term capacity (and you know where to turn to if you have a large project in the future that your own developers are too busy for)? This would also let you have insiders who know exactly what the vendor is doing so you can see if you're getting quality work. Do you need to launch quickly, or is it more important to minimize total development costs? Does it make sense to do the initial development on contract and then have in-house people to maintain it? The general principle is rent when you need something occasionally, but when you need it frequently. If you apply this to the core development and the maintenance you might get different results for each.
I wouldn't say that one way gives you a lower risk; either way you could land on someone who looks good but drags out the process for years and runs out your funding. When you outsource, the less you spend the less likely you are to get someone who can do it right the first time. Either way if you have good tech VCs they may have the contacts to help you with this.