A friend of my wife was inquiring about the process of turning an idea and content into an application or website.  Below is an excerpt of the email I sent to her about the process.

Once you get to the point of wanting to develop the software, there are quite a few options depending on your time and budget. The core requirement is get a team that can turn your idea and content into a software application. If you think that you want to build a company around this application and you’ll be adding a lot of features and making changes over the years, then you should consider starting a company and hiring people into the company. This process is time and cost intensive, but is the traditional approach towards building a software company where you’re continually improving the software.If you are more interested in getting the software developed and then not doing anything to it for a while, you should consider hiring one or more contractors to develop the application for you. If you want to make changes down the road, you would either work with the first team that developed it or hire somebody else to do the changes.Regarding hiring contractors, if you have a lot of time and wish to be frugal, then the easiest thing to do is to hire an off-shore development company. These companies tend to be very inexpensive but require a lot more management and don’t deliver the best quality product without a lot of oversight.

If you have more of a budget and want to spend less time, then hiring an onshore development company would be better. Typically the onshore development companies understand the business problems better and will deliver more of what you’re expecting with less management headaches. There are also teams that have a blend of onshore/offshore resources.

When you hire the software developers, you should probably get one team that can do the UI and graphic design work as well as the software development. You want your graphics people to know and work well with the programmers because it lessens communication problems between the creatives and the programmers.

For contractors, there are typically two models for paying for the work, fixed bid and hourly. With fixed bids, you provide sufficient detail for the contractors to give you a bid on the project (which is the total amount you pay the contractor) and you then pick the contractor that you liked best that had a good price. In this situation, there’s always a bit of a dance about what is included in the bid and what isn’t, but it can be a good way to go if you want to control the costs. With hourly rates, you pay a fixed hourly fee for the development resources and control cost by controlling what they work on and what gets included in the project. Usually, with hourly work, you will still get an estimate of what the project should cost, but the estimate will often be too small as more and more features get added to the application thereby increasing the amount of work to be done.

Finding software contractors can be an overwhelming task because there are so many different options. Here are the options I would recommend and the pros and cons of each:

  1. Referral
    • Pros: Getting a referral will usually mean that you’ll you like what you get from the contractor because your referring contact did.
    • Cons: Costs can be high.
  2. Craigslist Posting – Either answering a post or posting yourself
    • Pros: With craigslist, you’ll usually be interacting with someone local whome you can meet with face to face. Bay Area talent tends to be high quality.
    • Cons: Bay Area resource cost more than developers in other areas.
  3. Job Boards (rentacoder.com, elance.com, odesk.com, guru.com)
    • Pros: These job boards are dominated by offshore resources that are really cheap. You can get your application developed for much less than Bay Area resources cost.
    • Cons: The quality of the cheap resources isn’t as good. You’ll have to spend a lot of time doing management and making sure the application works the way you want it to. Also, because these boards are world-wide markets, you’ll have to weed through a lot of different folks to find the one you want to work with. (This can be a huge undertaking, but the pro of the cost difference is remarkable and can make it worthwhile if you have the time.)