I want to calculate or estimate time needed to code a particular project. This may include time spent doing analysis, actually coding etc. I find it difficult to make a good estimate. Can someone help me in making a good estimation or direct me to tools etc.
closed as too broad by jmort253 Feb 15 '14 at 22:28
Please edit the question to limit it to a specific problem with enough detail to identify an adequate answer. Avoid asking multiple distinct questions at once. See the How to Ask page for help clarifying this question. If this question can be reworded to fit the rules in the help center, please edit the question.
It sounds like you want to produce estimates for programming tasks. There are countless methods out there (none perfect but each offers something).
You should read about estimating from some books. Specifically, read about the Work Breakdown Structure. You do not need any software to do this, you can do it on your own (though the larger the project the more you will want to use some software solution). The short version is to divide up your project into components and keep sub-dividing until you get to components which have sizes that are easy to estimate.
You could also explore the Delphi Wideband method since you have at least one other person you work with (although Delphi should have more since data should be anonymous and with two people yours will not be).
There are lots of books on Project Management and many, like Field and Keller's text (just OK), which include significant parts dedicated to software development but are for overall project management, not just software project management.
Read and practice. It gets easier with time.
Gantter is one of the best ways to start with! Make a precise WBS (Work Brekdown Structure) with Hierarchy of tasks and Sub-tasks. Assign rough internal deadlines along-with actual deadlines. You'll be able to make better estimates as you go along!
Whatever books you read to help estimate, you need to really understanding probability and the effects of random variables. Way too often, and with very senior people, we have a tendency to think we control every variable at play on a project and, with real good planning, there is no reason why our cost and time targets are not met with zero variance. In other words, if you over- or under-ran, your planning was somehow at fault.
You need to understand that an estimate is probabilistic and is a range of probable results. Your planning value or target that you would price and baseline for performance is a single number that falls somewhere in that range. And the likelihood of you hitting that single number with zero variance is near zero. If you are targeting appropriately, your career should be filled with equal underruns and overruns and very very few zero variances if any.
Then you can lie like the rest of us on your resume about how you always underrun or meet targets.
If you want to see how this probabilistic thing works, log your commute time to and from work, door to door. Don't exclude any time, include everything, even stops to get gas, grocery, or even happy hour. Then build a histograph with your results.
Break the task down into smaller components. If you still can't estimate the components, continue breaking it down until the components are something you can estimate.
Try to estimate by using the knowledge you already have.
Consider a small task/project that you already done and compare it with the new one and try to estimate according to it.
Do it again for a difficult finished one.
Then decide where in between really the task will fall between those two estimates.
You can take the higher one if you are feeling pessimistic.