(this post can also be found at http://www.hansoft.com/expertblog/plan-for-freedom/)
For most of my life I haven’t had a credit card, the simple reason is that I don’t believe in spending money that I don’t have yet. The owner of a credit card can choose to spend the amount she gets in salary and pay the bill with her monthly paycheck. Each month she starts with an empty account and starts building a new credit bill. With this strategy she has limited possibilities to take on any extra expenses if new opportunities come along, for example a spontaneous trip with her friends. A better approach in my mind is to have a buffer (savings), which allows you to be spontaneous and every now and then take on larger expenses than your budget allows.
Planning your personal time has the same traits as the above. Let’s say that you meticulously fill your calendar for one month ahead, spontaneous activities are now made impossible. They have to be planned for the next month, or you will have to re-organize your schedule to fit the new activity. In my mind this is a very boring life, where most of the fun will be taken out of it.
When talking about games, a common saying is that you can’t plan fun, it comes along. Sure, you can make some educated guesses, but in the end you will have to evaluate on what is on the screen and adjust. I strongly agree with that statement.
There are several things that you can do to apply the same thinking to project plans.
1. Undersize the backlog
Looking at the scope of your game in your backlog at any given moment in you project, the size of it should be smaller than the remaining capacity. The bigger the difference (to a certain extent), the more room for extra-fun you have. But don’t fall in the trap of not adding the discoveries to the backlog. If you fail to do that you will eventually lose track of how much room for “fun” you have left.
2. Use spikes in the backlog
When there is an area with a lot of uncertainty, create spikes in your backlog that describe what should be examined. This in combination with an undersized backlog allows you to keep track of what still needs to be done, while leaving room for fun.
3. Don’t automate planning
If you are planning your project using GANTT scheduling, it’s not a good idea to automatically plan the resource time using functionality such as leveling. This creates a packed schedule that leaves no room for fun. The manual approach is much stronger as it forces you to think on how this will work in reality.
4. Prefer goal-driven containers over buffers
If you are using agile methodologies, this refers to having large epics in the backlog and also maintaining a schedule of sprints that have a larger goal attached to them. In GANTT scheduling this would be long items that are goal-driven, rather than tasks for a set of people. Buffers can create the sense of security that there is a lot of room for fun, but in the end it will be eaten up by things that slip.
5. Trust the team
This is by far the most important thing. The team is closest to the problem and most likely to identify those small nuggets that eventually will become fun. Leaving them room to actually explore and create, instead of packing their time, will lead to better product.
In the description of this post I stated that I tried to avoid planning my vacation as much as possible. Looking back at it I think I succeeded fairly well, but some people were a bit disgruntled with my effort. It affected their lives negatively, since they couldn’t plan the parts that involved me. This brings me to the aspects that make this kind of thinking hard to apply in a lot of game projects.
Many games are produced with fixed schedules and large contracts defining the expectations on the game. The relationship between studios and publisher is riddled with demands on predictability and excellence. In this environment a packed and extremely ambitious project plan is needed to keep the publishing side happy. Paradoxically this leads to less predictable and poorer products. The team is forced to follow predefined plans and ignore possibilities that could either be better or faster. Solving this problem is the holy grail of game development in order for us to continue building the large magnificent games we are creating today, without sacrificing our health on the way.