Wednesday, March 30, 2005

To plan or not to plan

There has been a lot of posts about planning: BuildingaCity, Conformance to plan, About planning, in last few days. I feel uncomfortably not touching this topic myself.

While thinking about writing this blog, I came to the understanding, what the planning is. Planning is a process of designing a path to the final result. This path consists of tasks to be completed, resources that can be used, priorities and risks to be considered. But the most important is the understanding, that plan is not a “private static final Plan PLAN”, but rather “public Plan getPlan(Date planDate) {}” and should be used as “currentPlan = getPlan(new Date())”, if you understand what I mean :)

People want to know, what will happen next; otherwise, they get very uncomfortable and while being stressed by uncertainty, start to behave badly. Plans are used to create agreement and some certainty in the teams members, that is why it s very important to have a plan created according to our best knowledge and agreed by all team members. If plan has been created this way (we sometimes don’t have even those conditions fulfilled), why it can’t be static? Our knowledge increases constantly, thus plan, created yesterday, today does not contain our best knowledge anymore. So, plans should be changed constantly to fulfill the requirement: created according to the best knowledge. But it is not wise to change plan very frequently (every hour or day), this will lead to uncertainty. Plans should be changed regularly after some constant period, in XP those periods called Iterations, in Scrum – Sprints. Note that in XP during iteration you should follow agreed plan very strictly.

Conclusion

By making plans, human beings are trying to cooperate with uncertainty of the world. Although it is efficient to stick with the plan for some period of time, it is advisable to change plan regularly according the best knowledge, otherwise one can run against the wall if he does not look ahead and change his direction according to what he sees.

No comments: