I agree it is always hard to start with anything new. That is natural, whenever you start with anything that is out of your comfort zone. It is even harder because of having a limited time to finish. In software development, we have new starts, almost every day. Every ticket, task or assignment is usually a new challenge, and, most of the time, there is a deadline associated with the assignment.
One key success factor ? aside from knowledge and experience ? is your ability to estimate the time needed to finish the work. Time estimation is very important for the following reasons:
It’s a proactive action, it helps you determine whether the job can be done within the imposed time line or not. Remember, after all every body has limited capacities, qualities, experiences and skills. It is not always wise to say ?I can do it? without properly analyzing the situation.
It helps to manage expectations. For example, you manager might expect a task to finish in X hours, while you believe it needs X + 2. Even if you did a very excellent job and finished at X+1, Still, you’re below expectations. But if you have submitted your estimation a head, and you justified why you need that time, you’re manager will appreciate it even if you finished at X+2 :).
It helps spend enough time analyzing and planning the task. This helps you to raise any issues as early as possible, You can ask for more resources or more time to finish the work. Also the implementation will go easier, rework time will be cut down, no show stoppers appears, and off-specification fixes will be very limited.
So how to estimate? And what things I should take into consideration when estimating required time, below are some of the techniques and ideas you might be use to come up with a reasonable estimation, you can use one or a composite of them:
Parametric: Task estimation can be quantitatively determined by multiplying the quantity of work to be performed by the productivity rate. For example productivity rate can be estimated on a website design project by the number of pages multiplied by labor hours per page. e.g. each page requires 2 hours, the site has 20 pages, then you’ll need 40 hour to complete the work.
Analogue: using the actual duration of a previous similar task or project as a basis for estimation. This is usually based on historical information. You need to make sure that both tasks or projects are similar in fact and not only in appearance.
Bottom-up: If you have a composite task, the best way to do it is to break it down into smaller tasks and estimate each task separately, then aggregate the estimation to come up with the final estimation.
Rolling Wave: This is really a planning technique. This is usually valid when the uncertainty level is high. Rolling Wave is done by dividing the task into stages, you estimate the first phase and work on it, by the time you’re done with it, you’ll have more knowledge and details to start with the second phase. This is a perfect way to use in research tasks.
Three point Estimation : three point estimation is based on determining three types of estimates: Most Likely (ML), Optimistic (O) and Pessimistic (P). The estimation ban be constructed by using an average of the three estimated durations. The average will often provide a more accurate estimation that a single point estimation. It is worth mentioning that you can assign different weights for each point. For example, in PERT – if you want to know what does PERT stands for, ! Just google it and you’ll get the answer :). the weight of 4 is given to the most likely estimation like this:Estimated Time = [ P + 4 * ML + O] / 6.
- Range: when you’re asked to give an estimation, you do not have to be sharp, you’re always have the luxury to provide a grace period. e.g 3-4 hours.
Keep in mind that time estiation is a soft skill that you build with experience, It’s not just about remembering some formulas to memorize and you’re done!
1 thought on “PERSPECTIVE: Another Hard Start”
This is a good article.
I noticed though that accurate estimating of tasks is usually an experience thing (eg. the more experienced the Project Manager is, the more accurate his/her estimates).
I am publishing a series on lessons learned in estimation, which consists of several articles highlighting how estimating can be done better with the proper lessons learned (from previous experiences) at hands.