The following is an excerpt from Chapter 14 (Scrum Planning Principles) of my book Essential Scrum.
I live in Colorado where the skiing is world-class. Occasionally I do some recreational skiing, but I’m no expert. A friend of mine, John, is an extreme skier. Honestly, there are times I wish I were one as well, but I’m not that skilled or that crazy; John is. Once John was sharing pictures of his adventures on a particularly insane mountain. Out of curiosity I asked him a simple question: “When you are positioned at the top of the mountain preparing to start your run, do you plan your entire route down?”
After he finished chuckling, he remarked, “No, if I did that I would just get myself killed.” He went on to say, “I pick a spot some distance down the mountain. My first goal is to ski to that spot. Maybe I plan the first two or three turns. Realistically, planning any further would be impossible and dangerous.”
“Why?” I asked.
“The terrain isn’t what it appears to be from the top because the lighting and other factors play tricks on you. Also, there are probably some trees down there somewhere, but from up top I can’t see them—if I decide while standing at the top to turn right at some point, and actually follow through on it, I might fly right into those trees. Plus there’s no predicting the 15-year-old on a snowboard who will fly over my head yelling, ‘Watch out, dude!’ You never know when you’ll have to change course, or why.”
After he finished his explanation, I remembered thinking, “Wow, that sounds like every interesting product development effort I’ve worked on.” You never can predict with great certainty when you’ll have to change course, or why. On the products where I was asked to create a detailed up-front plan, I did create one. But I can’t recall a single time this approach worked out. After we finished, I can’t recall ever looking back at the original plan and saying, “Got it perfect!” In a sense, trying to do too much up-front planning is like trying to plan every turn while standing on top of the mountain. Planning at this level of detail is wasteful; believing the plan is correct to the point of ignoring real-time data is downright dangerous.
Most of us have been involved in developing products where the level of detail associated with up-front predictive planning was just absurd. Does that mean we should do no up-front planning? No, that would be negligent and foolhardy. John certainly does some up-front planning—he studies major features of the terrain to give himself confidence before he starts his run. Equally foolhardy, however, is to plan to the point where it is difficult or costly to react to reality. Like John, we must find the proper balance between up-front prediction and just-in-time adaptation.
Do you plan your agile projects like John?