In any software project, a plan is out-of-date the moment it is written.
Imagine: we plan out what features we want to implement for SuperAwesomeProduct for the next 6 months. But then: requirements change, new technical challenges emerge, Bob is sick, the new iPhone 7HD is launched, we decide to remove an entire module, our user testing shows us that our initial assumptions were wrong.
Creating time estimates is also fraught with difficulty. Designers and developers dislike doing them, they are often wildly inaccurate, and clients assume that a rough estimate means a firm promise.
So, if we know that plans and estimates are likely completely wrong, does this mean that spending time planning the future progress of a project, or estimating how much time or money it will cost, is worthless?
Not at all. US President Eisenhower once quoted an old Army saying, “Plans are worthless, but planning is everything.”
The process of sitting down to write a plan, and regularly updating the plan, helps promote discussions that will help a project succeed.
When arguing about whether a particular section of SuperAwesomeProduct will take 2 or 6 weeks, perhaps it will emerge that there’s a misunderstanding about what this feature actually does.
When figuring out if Bob or Fred should work on the module, perhaps it will become obvious that we need to hire another developer.
And so on. After three hours of discussion, we have a plan for SuperAwesome Product for the next 6 months. And we file it in a drawer and never look at it again.