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.
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:
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?
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.