On June 6th 1944, D-Day, the largest seaborne invasion in history began the liberation of German-occupied northwestern Europe. 156,000 soldiers landed on the beaches of Normandy or were air-dropped behind German lines. The battle could not have been won without extensive planning, but the it did not go according to plan. Many paratroopers landed far from their targets as did landing craft. German defenses were stronger in some areas forecasted and weaker in others.
What made the battle successful was not the plan, but a combination of the knowledge gained in planning, plus the initiative taken by soldiers and units to adjust as reality emerged. This is captured in Eisenhower's quote above.
What we need is better planning, not better plans
I'm often asked "how much should we plan?". The answer is always necessarily vague. We plan differently for things that are certain and for things that are uncertain. Planning for things that are certain ensures that we are focused on a shared goal. Planning for uncertainty results in a prioritized list of experiments that will remove uncertainty so we can make better decisions in the future.
Examples of decisions best made earlier:
- Deciding the genre of game.
- Deciding what engine to use.
- Knowing what constraints a franchise has.
Examples of decisions best made later:
- Deciding how many bullets each weapon carries in a magazine.
- Deciding how many NPCs are in each view.
Deciding earlier or later depends on the cost of making that decision. The phrase "deciding at the last possible moment" applies. You shouldn't decide how many NPCs should be in view until your graphics engine is running well enough to tell you how much it can draw at 30 FPS. Conversely, you don't want to decide which engine to use a month before you release your game.
I'm a fan of Donal Reinertsen's work. One of the tools he applies is called the u-curve. The u-curve illustrates the tradeoff between two opposing factors, such as the cost of planning too little vs. planning too much as a sum of those costs:
The green curve shows the cost of planning away uncertainty with detailed design up-front. As we do more up-front planning--making more and more decisions about the details of our game--the cost of those early decisions adds up. For example, when we've designed and built numerous gameplay missions based on speculated numbers and behaviors of NPCs, the cost of reversing those decisions late in development increases.
The blue curve shows the the costs of planning things we are (or become) certain about. If we don't make decisions about the engine, game genre or even what programming language to use, the cost of making those decisions later will impact us more. We can make lots of decisions early: NFL games have 32 teams and stadiums. FPS games have online multiplayer. Mobile games should at least run on iOS and/or Android.