How long will that take you? Let Legos lead the way

I was reading through the technology section on LinkedIn Answers recently when I came across a post by Johnathan Briggs that asked about the kinds of skills that young software engineers should have when finishing school. This sparked an email conversation between the two of us around the importance of accurate task duration estimates. Bad estimates can lead to late schedules and bosses are not typically pleased with such things.

In particular, Johnathan was kind enough to compliment my post entitled, “The Lego Exercise”. As part of my series on Making Yourself Easy to be Scheduled, The Lego Exercise demonstrates just how difficult it can be to guess how long it might take to complete a particular task. It simulates the reality of ambiguous requirements despite rigid top-down pressures to be done by a certain date:

“Go to your local toy store (or at least pretend to) and find the section that has Legos. Select a set with between 20 and 50 pieces in it. Before making your purchase, take a good look at the picture on the container, which shows what the completed set should look like. Be sure to get a bag and leave your new toy in the bag for a couple days.Next, without removing the container from the bag, open it and spread all of the pieces out on a flat surface in front of you. The idea here is that you want to be able to get all the pieces out of the container without looking at the picture on the outside again. Give yourself one minute to look over the pieces. Everything you need to put together the set is at your disposal. After a minute and using only your memory of the finished product as shown on the container as your guide, predict the amount of time you will require to assemble the set. Write down your answer and start putting the set together, making note of your start time. When you think you are done, write down your finish time and compare your finished project to the picture on the box.”

When I do this exercise with a live audience, I limit the amount of time to about 20 minutes or so for logistical reasons. Sometimes, I’ll distract the builder every few minutes to simulate what happens in real life in the middle of a project because something always comes up to attract your focus elsewhere. See the original The Lego Exercise article to see how it ends, but the ultimate point is that the whole process can be unfair, but you can teach yourself to get better at it through repetition.


One Response to “How long will that take you? Let Legos lead the way”

  1. Anonymous Says:

    I agree the key to getting better at task estimation is what you said in the last sentence: “repetition”.

    Problems arise when people try to estimate tasks that are new or difficult. In web development, for example, I can sit down and estimate with a fair amount of accuracy how long it takes to put together a struts-based jsp form backed by an ejb call or two. Why can I do this? Because I’ve done about 60 of them in the webapp we develop at work. I have already worked through all the insipid monkey wrenches that have burned through my time in the past like browser incompatibilities, css annoyances and many other time-wasters that I know as well as I know the plot to a repeat sitcom.

    So, what screws me up? Anything new. Last month I had to modify a bunch of VBA macros in an excel worksheet. I had worked on it before about 2 years ago, but not since and had basically “forgotten” VBA. My initial estimate: 2 days. My actual time: 2 weeks.

    I imagine that I would get similar horrific mis-estimates if there was a twist in the web-app, like, for example switching IDE’s, moving to struts 2, using a new javascript library, etc.

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )


Connecting to %s

%d bloggers like this: