Any plan is in essence a sequence of actions to be performed in order to achieve a particular goal. Plan acts as some kind of a contract that specifies the agreed way of reaching this goal.
Keeping the plan can be both harmful and useful under different conditions.
In waterfall-based processes people try to specify to death everything before the actual development starts. Plan creation takes huge amounts of time and efforts. Replanning would require similar amount of work. It also might introduce the half-completed features since in waterfall there are no completed features until the very end of the project. No surprise, that waterfall-based processes avoid plan updates as much as possible.
While keeping the plan is very useful in mass manufacturing, in software development too many things can change during the product development. Customer requirements, environment, technologies and even customers themselves do change during the project. Therefore preserving the original plan can very well lead to the useless product that perfectly conforms to the original specification.
Agile software development processes tend to use the easily updatable, short and flexible plans. Ease of the plan updates brings the following benefits:
- It is easier to respond to the requirements change
- It is easier to respond to the customer or own company business related changes
- Early feedback can efficiently influence the plan and lead to the product the customers really need
- The development team builds the best possible product according to the current understanding. Whenever more information is available, it is easier to adjust the plans accordingly
How important is to keep the plan in your company? How long are your plans and how easy is it to adjust them?