Lean-Agile Release Planning
- Issues that Affect Planning
- Transparent and Continuous Planning
- Example: Release Planning Session
- A Few Notes
- Summary
- Try This
- Recommended Reading
- "If anything is certain, it is that change is certain. The world we are planning for today will not exist in this form tomorrow."
- —Philip Crosby
- "In preparing for battle I have always found that plans are useless, but planning is indispensable."
- —Dwight D. Eisenhower
Issues that Affect Planning
One of the most frequent questions we get is, "How can you predict what is going to happen if you are working with an Agile process?" We believe that this question comes from a misunderstanding of some key issues that underlie process.1
Evaluating Processes
We think of processes as having the following:
- A degree of process definition; that is, to what extent the process has been defined
- A degree of predictability, or the randomness of its output
- A degree of feedback, or the amount of feedback that the process uses
Degree of Process Definition
Let's first clean up the terminology: We can view the output of a process as deterministic or nondeterministic (stochastic). In a deterministic process, the outputs are 100 percent determined by the inputs; in a stochastic one, the output is a random variable—it has different values that occur with different probabilities.
Fully determined systems do not exist, except in academia and thought experiments. Virtually all real-world manufacturing and development systems have stochastic outputs. That is, they are partially determined.
It is useful to distinguish between a process that is fully determined versus one in which its output is fully determined. Although many people tend to assume that a defined process produces a deterministic output, this is not always true—a precisely defined process can still produce a random output. For example, the process for obtaining and summing the results of fair coin flips may be precisely defined; its output is a random variable.
Well-defined systems can produce outputs that range on a continuum from deterministic to purely stochastic. Just as we can structure a financial portfolio to change the variance in its future value—by ranging from all cash to all equity—we can make design choices that affect the amount of variance in a system's output.
Degree of Predictability
Thinking of system output as a random variable may be more useful than labeling it as either unpredictable or predictable. We could think of it as completely unpredictable, macroscopically predictable, or microscopically predictable. It is unclear if anything falls into the first category—even a random number generator will produce uniformly distributed random numbers. It is the zones of what we would call "macroscopic" and "microscopic" predictability that is most interesting.
We can make this distinction using the coin-tossing analogy. When we toss a fair coin 1,000 times, we cannot predict whether the outcome of the next coin toss will be a head or tail—we would call these individual outcomes "microscopically unpredictable." There may be other microscopic outcomes that are fully determined since we have a fully defined process. For example, we could define this process such that there is a zero percent chance that the coin will land on its edge and remain upright. (If the coin lands on its edge, then re-toss the coin.)
Even when the outcome of an individual trial is "microscopically unpredictable," it is still a random variable. As such, it may have "macroscopic" or bulk properties that are highly predictable. For example, we can forecast the mean number of heads and its variance with great precision. Thus, just because the output of a process is stochastic, and described by a random variable, does not mean that it is "unpredictable." This is important because the derived random variables describing the "bulk properties" of a system are typically the most practical way to control a stochastic process. That is, even though a process may be unpredictable on its own, it can still be controlled with feedback.
Degree of Feedback
The degree of feedback needed is another variable we should add to our duo of degree of predictability and degree of process-definition. In the software-development world, feedback is probably essential; in other areas it may not be. But for us, feedback is likely the most cost-effective way to achieve our goal—but deciding how and when to use it is really an economic issue.
It is important not to confuse process definition with the level of determinism or the amount of feedback required to keep things on track. The key to this section is to understand that although we may not be able to predict microscopically the result of each story, we should be able to predict macroscopically the timing and the cost of the business capabilities encompassed in our features.