Freelancing – Statistics on Time Estimates for Web Application

estimationfreelancing

I have been asked to help estimate the time it would take to develop a web application. I will not be involved in the actual programming, but I am participating as an "experienced" programmer. The actual work will probably be handed over to a consulting company, but the client (a university department) wants to have an estimate to have an idea of how much time and money will be needed.

We will try to break down the features to implement and then try to create some kind of grand total estimate (even though Joel Spolsky says this will not work), but I thought that these kinds of web applications have been done hundreds of times and that there must be lots of experience to draw from on one or another of the stackexchange sites.

Is it possible to answer this question:

How many hours/weeks does it generally take for an experienced programmer, using their language and framework of choice (be it Java, Ruby on Rails, or some other fairly big technology), to create a web application, given that:

  • It is fairly standard, meaning that there is a database, an administration interface and a presentation layer for the general public.
  • It is written from scratch, but there are old systems to draw experiences from.
  • The administrators (think they) know fairly well what they want.

I know this is very vague, but I am looking for your experiences:

(made up examples follow)

"We have bought these kinds of systems several times, and they generally take twenty staff-months to complete."

"Using Python and Django, I'd say most web apps are up and running in 6 staff-months, top."

Edit:

Some clarification:

  • I my question most information about this project is missing. The client has written a detailed specification draft on the system and there is also a requirement analysis based on user feedback on the old system.
  • I want to state, again, that I am looking for your experiences (see my example answers), not a quote for this system.

Thanks for all the insightful answers, though!

Best Answer

This is almost impossible to get an accurate cost on. Outsourcing makes this even more difficult.

Just because it's fairly standard doesn't make the task of quoting any easier. For example: you mentioned there is an Administration Interface. This can be as simple as a login and password for each user or complex with users who have multiple roles and a superuser that can oversee all admin tasks. If this becomes a role based admin then the coding time has just increased exponentially.

If you are outsourcing to a foreign country I'd pad the total time and cost by 20% to account for interpretation of questions and answers between customer and coder.

As a ballpark for database driven admins we would estimate 4 hours for each base table. This allowed for table creation, insert routines, update routines, delete routines and the associated admin web pages. This also included a simple listing display page and a detail display page. If search filter queries were required then we'd add 2 more hours for that table.

We did have a lot of code we could borrow from. We also wrote some utility stored procs that helped us speed up the coding by spitting out source code. It wasn't perfect code but it saved us many hours of raw coding. We also would undercut the price if this was a widget we could turn around and resell to other clients. It doesn't sound like you can resell this to anyone else so the price they pay should be a premium.

Is there a similar Commercial Off The Shelf (COTS) system already built that you can buy? Have you even entertained the Build or Buy question?

Custom software is expensive. As long as you make the customer aware of this fact up front and they still want a custom solution, they will pay the premium price. Every time you say, "Oh yeah, we can do that" and don't say it will cost more, the customer will expect it for free.

Related Topic