What’s So Hard About Planning?
In the software business where most people don't seem to agree on anything it seems that everybody agrees that planning is hard. (The only thing that seems to be even harder is tracking to the plan and regularly replanning, but that's another story.)
Why is it that we have such a hard time with planning? Our thinking about the goals and benefits of planning seem to stay in our way. Here are four mistaken beliefs that many folks have and what can be done about them:
1. "It is not worth planning, life's changing too fast." Life is changing fast, but that doesn't mean that it is not worth planning. It just means that we need to evolve the plans as things change. A plan at best represents your thinking in a moment in time. As you learn more, you need to improve on your plan.
2. "The only reason to plan is to figure out what the end date is, but they always give me the end-date anyway." "They" might be the management, client, architect, team lead or that "other" team; you pick. Knowing the end date is good, but you still don't know what's included. Of course, you respond to this that: "they" also tell me what I have to build. However, "they" are unable to specify how much of those things to build. That is still up to you. It is up to you to figure it out how to make it happen. If you cannot find a way, at least you can tell "them" early that you will not be able to make this happen. And, you will be be able to back up your statement with a detailed plan that shows that you had thought through the problem.
3. "I cannot create a perfect plan." Nor can anybody else. You need a plan at the level of granularity that can help you perform your work. You are creating this plan for yourself (or your team), hopefully not for others. Create something quick, then updated it "early and often." The plan needs to represent your best knowledge at the moment you created it. Accept the fact that you will learn as the project progresses. Learn to live with incomplete data. These are key to your success as a software engineer.
4. "I don't know how to plan. I am not given the opportunity to go to a class to learn it." Nobody was born with perfect planning skills. You may have the natural talent to think through problems with incomplete data (which helps), but everybody can learn the mechanics of planning and everybody can become pretty good at it. It is your responsibility to seek out learning opportunities. Let's face it: nobody has your interests at heart more than you do. So, it is your job to find ways to improve your skills. Once you learned the basics, then keep practicing.
To sum it up: A plan is a roadmap to project completion. Just like any other map: "when the map and the terrain don't agree, trust the terrain" and update the map. Planning is an acquired skill. With practice you can get good at it and you will derive benefits to make it worth learning it.