Thursday, January 22, 2009

Waterfall Game Development

In the dawn of video game development, a single person working on a game didn’t need much in the way of a “development methodology”. A game could be quickly developed in mere months. As the video game hardware became more complex, the cost to create games rose. Within a decade, instead of taking three or four person months to create a game, a game might take 30 or 40 people-months. Software and art production became the greater part of the cost of a releasing a game to market.

In response to the increasing risk, many companies adopted waterfall methodologies in attempt to reduce risk. Waterfall is forever associated with a famous 1970 paper by Winston Royce. The waterfall methodology employed the idea of developing a large software project through a series of phases. Each phase led to a subsequent phase more expensive than the previous. The initial phases consisted of writing plans, which gave detail to what and how the software would be built. The middle phase required writing the software. The final phase was integrating all the software components and testing the software. The idea was that each phase reduced risk before moving on to the following phases that were more expensive. A project would never return to a previous phase once that phase was complete.

Waterfall describes a strict one-way flow of phases; once design is done, a project moves to the code phase and there will be no more design. In reality, no game developers use this method based on its original definition. Instead, most games use a sequential phase approach to game development. This approach weighs each phase sequentially in time (e.g. we do more concept work at the start and more debugging at the end), but does not impose the one-way flow that Royce’s model does.

Ironically, Royce’s famous paper illustrated how this process would lead to project failure. In fact he never even used the term “waterfall”. However the association stuck; when we use the term “waterfall” we are really referring to a sequential phase methodology. So don't bother adding a comment that "waterfall really isn't waterfall". We know!

No comments: