One of the biggest challenges I've had managing the projects I've taken on over my career have been properly estimating the cost and schedule of a project. In the majority of situations, cost and schedule seem to end up being a shot in the dark of me guessing how long something will take, then increasing the time just to be safe.
Here is a glance at how I estimate things (keep in mind I do web development and favor a basic 3 tier design):
- Do user interviews and get a good solid grasp of the project's goals.
- Make a list of objects that will be needed to meet the goals (it won't be 100% correct, but make your best effort to get it into the ballpark)
- From the objects, you have a pretty good start on your database tables, make a list of these and any stored procs that are going to be needed. (Or no stored procs if you're going in-line sql for database independence)
- Lay out the most comprehensive list of UI pages/forms that you can.
- Determine from past experience, how long it generally takes you to code an object of varying complexity- low, medium, and high. How you define low, medium, and highdepends entirely on your own experiences as a developer. As a rule of thumb, I define low as something I can build in less than 2 hours, medium is 2-6 hours, and high is more than 6 hours and really is a judgement call.
- Now assign all your objects, UI, and database stuff you defined above to low, medium, or high.
- Do the math.
- Now increase this time estimate by a % you are comfortable with. For me, the comfort level depends on the overall size and complexity of the project, the ability of the users to communicate their needs (add more time if they're wishy-washy or design your contract accordingly to prevent getting screwed by change requests), and your general level of enjoyment for the type of project (obviously something I think I'll enjoy doing I'll be more productive). The % mark-up for me generally starts at 50% and ranges to 125%.
I'm curious to know how you other bloggers do your estimations and scheduling. How do you measure something that doesn't exist?
Posted
08-04-2004 7:56 AM
by
Eric Wise