Nerd Guru

Because technical people need good soft skills to get ahead.

Thursday, June 07, 2007

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.


 Was that interesting or helpful? Consider subscribing:  by reader  or   by Email

posted by Pete Johnson @ 12:11 AM   1 comments


At 6:56 AM, Anonymous Anonymous said...

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.


Post a Comment

   Subscribe to comments in a reader

   Subscribe to comments by Email

<< Home

Technology Blogs - Blog Top Sites