I sat down today with one of the (slightly) less experienced team leads for a long conversation (or maybe it was a monolog) about planning ahead. For some reason or other I can’t seem to convince him that planning for the future, and I mean more than 2 weeks ahead, is important and it is practically the only way to garantee anything will ever get done.
The project he is in charge with is in trouble. For the last few months very little got done and a new version that is going to be released soon will contain only minor features and bug fixes. In the open market it would be doomed for failure. In our more isolated invironment it’s a fixable situation but nontheless a complicated one. Being his mentor I asked him to prepare a recovery plan, the steps he is going to take to get out of the current jam and propel his team to excellence in the future. We went over that plan today. He had planned the next month, up to the release of the next version. Which features he’ll cut loose, which ones he’s going to press on, how the labor is going to be devided. All nice and lovely, but absolutely useless. There was no strategic planning in that Gantt chart whatsoever, no goals for the future, no broader vision.
Everyone who has done any planning in his life knowns things rarely go as predicted. It’s even more so in the software industry where chages in technology and in user demands render any plans you make useless very quickly. But that renders planning useless only if you try to choose your next actions based on that long term plan. That usually won’t work very well because deviations from the original plan start to show in the first couple of weeks and if you still try to adhere to the predicted future rather than the obvious reality you’ll be out of business very quickly. But that is not the main reason to do planning at all.
Any managerial decision has impact on at least two time frames : the immediate (tactical) future and the more distant (strategic) furture. Many managers make most of their decisions based on the here-and-now facts. We have a problem – we need to deal with it. Damage control as in stay-up-all-night-for-two-weeks-and-fix-that-bug. But more often than not those decisions can hamper an overall goal of the team or project and it is the manager’s task to take those issues into consideration as well. The best way to do that is to apply the predicted impact of a current decision on the strategic plan and evaluate the damage the decision might do in the future. But you can’t do that if you don’t have any overall plan in the first place, can you?
Every feature you decide to put into the next version, makes it later. Every feature you take out of it, makes it less attractive to the customer. Every night you work without sleeping looking for a bug results in a higher possibility to generate more bugs and more such nights later. It’s a tradeoff, and one you should be very aware of. Every decision you make here and now has an impact on the future and the only way to have any control over it is to be able to calculate (at least to some extent) the risks you are taking.
And now that I’ve properly realized that I don’t know enough about planning to be talking about with such an authorative air, I’m off to read a bit about critical chains.