A few weeks ago a friend who is getting his MBA at Columbia asked me for some help putting together some details about a web site he’s outlining as part of a business plan. What follows is an excerpt of what I wrote.
Typically how I’d go about this is to find a company that would handle everything from top to bottom, and they may propose to you what their solution would be… so you may not necessarily have to decide this yourself. Once you outline exactly what you are looking for, they come back to with their proposal.
Maybe they will suggest Ning, or using a programming framework (like Ruby on Rails or Symfony, which are like a set of code/tools written in a programming language like ruby or PHP respectively).
The key is to come at them with as many details as possible: A list of every functional requirement, design requirement, and any other specifications that you can think of will be a huge help in both finding the right people and in getting back reasonably accurate estimates from them. And, if you have an idea of the kinds of technology or existing services you want to use, include that in your RFP.
I would also recommend you start as small as possible, and plan out your site in iterations. Rather than plan out a huge budget, I’d say break it down into phases, and come to your meeting with your developers with your project divided out. This makes it a lot easier for them to understand your direction and also for them to make reasonable estimates. I still find it hard to make accurate estimates for $5K projects and I’ve been doing this for 10 years, and the larger the projects the more opportunity there is for things to stray. A relevant quote that comes to mind is “planning is guessing,” so the less long-term planning you do the better since whatever you think you need know will probably change as you are building it.
Breaking it down into phases, where you have a working (but very limited) site online quick, and then roll out new features, is a million times better than trying to roll everything in to one launch.
Another point I should make is that with web app development, you should consider the three main constraints: time, money, and features. You get to pick two. So, as an example, you can pick your deadline and budget, but you’ll have to be flexible on what features make the cut, or you can set your features timeline, but have to flex your budget. You’ll have to decide if your approach will be to set an initial budget and see how much you can get for it, or if you want to map out your feature set and fish it out to developers to see how much it will cost you.
Getting down to specifics, you will need a killer design team to set up your image and make the site look really cool, and of course you will also need developers who know what they are doing. Probably the best team would be composed of an existing small development company that already has a team of designers and coders who work together all the time. Basically it comes with who has a good track record and who has a design portfolio you like.
As far as programming languages go, I would say PHP or Ruby. Facebook = PHP/MySQL. Twitter = Ruby. Depending on who you approach, some may suggest Java (J2EE).
It also might not be a bad idea to create a “prototype” with a limited budget before you try to go all in. See what you can piece together using existing tools and a nice custom design, do a few trial runs, get more funding, and then go big for round 2. If this is your plan of attack, I would try to find someone who has worked with the tools before.
This was written specifically for my friend’s type of large-scale application, but I think anyone who has an idea about a web site but doesn’t know where to begin should follow some of the same advice. Start small. Divide it into phases. Find a team that has used the tools.