Superman, Chicken Little, and Knowable Unknowables

Quote of the Day

Who does not grow, declines.

— Rabbi Hillel. This statement is true for almost any human activity. If you are not improving, you are declining.


Figure 1: Some very confident engineers thinks of themselves as supermen.

Figure 1: Some very confident engineers thinks of themselves as supermen or superwomen. (Source)

I was having a discussion with other managers about the difficulty of creating accurate schedules for development programs. Other than dealing with an economic decline through layoffs, I cannot think of a more difficult task for a manager than create accurate schedule for bleeding edge projects.

Typically, I work directly with the engineers involved and have them create time estimates for their portions of each development effort. I find that about half the engineers always generate optimistic schedules and the other half generate pessimistic schedules. I give these two types of engineers the following names:

  • Superman

    These folks wake up every morning thinking they have an "S" on their chest. There is nothing they cannot do, if only management will get out of the way. If they do get behind schedule, they think that all they need to do to get back on schedule is to come in and work on a weekend. The theory here is that there are so many distractions during the week that real engineering can only occur when they are alone and on the weekends. However, that miracle weekend never seems to occur.

  • Chicken Little

    These folks are just the opposite of Superman. They find it impossible to plan because the number of things that could go wrong are too numerous to count. Why even try to plan when unexpected things happen every day?

Figure 2: Chicken Little, for which the sky is always falling.

Figure 2: Chicken Little, for which the sky is always falling. (Source)

I deal with Superman and Chicken Little the same way -- I introduce the concept of "knowable unknowables." Knowable unknowables are program events that will introduce delays in a program, but I cannot state what these events are at the start of the program. They include things like unexpected circuit board layout errors or undocumented defects in new chips. I know these events will occur, but they are unknowable at the start of the program. As long as you are willing to deal with averages, it is amazing how predictable these unpredictable events are.

With Superman, you introduce doubt into their plans by warning them about recent events that have slowed progress on other programs and that these events could occur on their program. Slowly, you get them to agree that things may not go as smoothly as they think. Slowly their schedule lengthens to reflect historical norms.

With Chicken Little, you just remind them that it is rare for every possible bad thing to happen on a program. You tell them that they need to plan for a reasonable number of unexpected events. I have gone as far as telling my Chicken Littles that they should assume 1 major problem (defined as slipping the schedule by 1 month) and 3 minor problems (a minor problem is a 2 week schedule slip). Plan for normal execution times for everything else. As with the Superman, Chicken Little soon has a schedule that reflects historical norms.

This approach seems to work. At least I can go home at night comfortable in knowing that my program schedules do not assume any miracles or disasters.

This entry was posted in Management. Bookmark the permalink.

2 Responses to Superman, Chicken Little, and Knowable Unknowables

  1. mark tucker says:

    I came across your blog a few weeks ago and have enjoyed catching up in your archives. I too am a hardware manager. We design and produce wireless products and many of the management/engineering examples you write about are spot-on to my daily life.

    Scheduling is still a major mystery to me. I've done hundreds of them with only limited success. I've been doing this for 30 years. I know how long each task takes but - in the end - one task slides into another and, before you know it, you're a month behind.

    In an effort to get better, I've read everything I could on this. I've seen hundreds of program management books for Software engineering but very little on managing and scheduling for hardware-related projects. The two are certainly related (I used to manage an embedded firmware group along with hardware engineers) but hardware is its own thing.

    Have you run across a good reference on HW project management?

    Thanks,

    • mathscinotes says:

      I am sure that you and I could spend a few hours discussing our management experiences. Scheduling is the bane of my existence. I have not seen any good references on the topic. I have taken numerous courses on the subject, but they really have made little difference in my scheduling accuracy. Like so many aspects of management, how you plan is based on your personal experience and there are few hard and fast rules. I do keep a database of my schedule performance over time so that I can see how my actual versus predicted performance varied. Unfortunately, "knowable unknowables" – unplannable events that impact your project – are the primary things that unexpectedly drive out schedules.

Comments are closed.