Brian's profileSerious ConfusionPhotosBlogListsMore Tools Help

Blog


    November 29

    Work and estimating: philosophy and practice

    One of the more difficult activities which new developers are faced with, is determining what they should do, how long will it take and when will it be done.  Being able to handle this will make any developer more efficient, desired and respected on any project they choose to work on.  Why can I say this?  If you know what you are going to do, you by extension know what you are doing, which is a big win.  If you know how long something will take you both prove you have a good grasp of what you are doing and can plan time at home where your significant other can give you the "Honey do" list.  Last, know when something will be done, implies both the time and requirements elements, so that not only do you know when, but what dictates success.
     
    What this all means is that no one will be wondering about you, your work can be measured and expected, and you get done when you say you will.  So how does this work?
     
    Here is the 2 elements I use when evaluating work I (or others) need to do.  First is determining what you need to do and estimating:
    1. Determine how many days (not hours) a task will take.
    2. If the task time is greater than 5 days, it is too big, break it down into sub tasks and estimate each.
    3. If the task time is less than 1 day, it is too small.  If you can roll it into another task do so, otherwise estimate at 1 day.
    4. Add up the days.
    5. Certainty can be calculated at 5% per task per day, so if a task takes 2 days, it's 2 x 5% = 10%, 10% x 2 days = 0.2 days.
    6. Add up the Certainty days, this is your buffer.
    That's your over all time estimate.
     
    The second element is how to use this to report status.  One of my work friends promotes the 3 questions:
     
    • what am I doing?
    • when will I be done?
    • how do I know I'm done?
    Using the task estimating model, you should be able to answer the first 2 questions easily, the last should be part of the definition of the task, your exit criteria.
     
    Reporting status becomes easy, just report your tasks, the estimate, your real start and end dates, and voila.  It's interesting that current development collaboration tools, such as TFS (Team Foundation System) readily support this model, and in fact make the status report easy, so that Project Management does not have to pester you if you teach them to use the tool.
     
    Good luck with that!
     

    Comments

    Please wait...
    Sorry, the comment you entered is too long. Please shorten it.
    You didn't enter anything. Please try again.
    Sorry, we can't add your comment right now. Please try again later.
    To add a comment, you need permission from your parent. Ask for permission
    Your parent has turned off comments.
    Sorry, we can't delete your comment right now. Please try again later.
    You've exceeded the maximum number of comments that can be left in one day. Please try again in 24 hours.
    Your account has had the ability to leave comments disabled because our systems indicate that you may be spamming other users. If you believe that your account has been disabled in error please contact Windows Live support.
    Complete the security check below to finish leaving your comment.
    The characters you type in the security check must match the characters in the picture or audio.

    To add a comment, sign in with your Windows Live ID (if you use Hotmail, Messenger, or Xbox LIVE, you have a Windows Live ID). Sign in


    Don't have a Windows Live ID? Sign up

    Trackbacks

    The trackback URL for this entry is:
    http://valleeplace.spaces.live.com/blog/cns!5E2C9BBF4F8D9C4!330.trak
    Weblogs that reference this entry
    • None