Parkinson’s Law states that “work expands so as to fill the time available for its completion.” A more succinct phrasing also commonly used is “work expands to fill the time available.”
Hofstadter’s Law states that: It always takes longer than you expect, even when you take into account Hofstadter’s law.
The principles don’t require our belief for them to work. I won’t spend time defending what does not need defending. I want to write about how one can incorporate acceptance of these two laws into planning. I think a good portion of Agile is directed at this. I also think that Waterfall struggles against these Laws and ends up broken on the Lighthouse rocks.
Principles are like lighthouses. They are natural laws that cannot be broken. As Cecil B. deMille observed of the principles contained in his monumental movie, The Ten Commandments, “It is impossible for us to break the law. We can only break ourselves against the law.” — Stephen R. Covey
Here is the basic formula for living in congruence:
Growth Driven + Time Boxing + Small Iterations + Value Driven = Success
When something is grown, vs made, it is almost always in a useable state. When something is made it is almost never useable until it is finished.
Instead of trying to use cumulative task estimation as a lever for management decouple the deadline from the estimation.
Keep the time boxes small.
Do the most important thing first.
In a short period produce as much value as possible, preferably the most needed value. Do it in a way so that what is produced can easily be added to.
Let’s take a look at the anatomy of this solution. The lynchpin is time boxing, everything else is there to support time boxing. How do you keep a task from taking longer than you expect? Stop having an expectation. When time runs out you have no choice but to go with what you have. Time is going to run out, there is nothing you can do about it. So it is best to have as much value as possible. How do you keep a task from getting to big? Don’t provide time for large tasks. This will prevent things like Student Syndrome and Coefficient of Inefficiency as well. How can you deliver when you are not sure what will be complete? Produce in a way that you are always ready to deliver.
I don’t feel the need to explain how Agile planning works. There are plenty of sources that talk about how Scrum, XP, Lean, Crystal, etc do it. What they share is the formula and an acceptance of the Law.