Saturday, September 24, 2011

Critical Path Method (CPM) in Video Game Development

Aside from covering news and providing commentary on events in the video game industry, I'm going to use this blog to provide quick business tips for startup or experienced software developers. Think of these tips more as quick guides to get you thinking in new directions about the way you develop games and run your company, rather than as comprehensive tutorials. I will provide additional links to further reading on each topic.

Today's post is about utilizing the Critical Path Method (CPM) in video-game development. The Critical Path Method provides a way to visualize the multiple concurrent workflows necessary to keep large-scale projects on schedule, with a focus on determining the specific sequence, or set of sequences, that must be completed on time for the entire project to finish on schedule. This crucial series of activities is called the critical path.

As with all timeless strategic tools, the rules of CPM are simple, but the strategic insights and possibilities are numerous. I'll give you a quick overview of CPM here, and you can follow the links at the end of the article for a more in-depth review.

CPM charts use nodes to represent different activities in a multi-step process. Nodes are drawn in a diagram from left to right, beginning with the first activities and progressing to activities that require inputs from previous nodes. CPM charts can include more than one sequence of activities, with each sequence drawn above or below the others. Nodes are connected with solid lines to show the flow of materials (in the case of game development, completed components such as 3D models, CG sequences or blocks of working code) and dotted lines to show flows of information. Planners write the estimated fastest and longest completion times on each node, as well as the required manpower and any required inputs. Using the quickest and longest possible completion times, planners begin with the first activity in each sequence and determine an earliest and latest completion time for each activity, based on a set start date and time. Nodes with a buffer between the earliest and latest possible completion times are said to have slack time, and those without a buffer have no slack time. Drawing a line between each activity with no slack time reveals the critical path -- the series of activities that must meet their deadlines for the project to come in on time.

Whew... that was a mouthful. Now let's move on to how this applies to you. There are two things I can say for certain about delayed video-game launches: 1) they happen all the time, and 2) customers hate them! CPM exists to avoid this very problem, making it an extremely valuable tool for video-game developers. Knowing which activities in your workflow are crucial to the timely completion of the overall project can allow you to shift resources, devote personal attention or call in outside help for your most time-sensitive activities. You can use CPM data to alter the start times of critical activities, forcing slack time into the equation to allow a margin for delay, or to set more realistic product-launch dates with less chance of disappointing customers.

Rushing through a development project is never a good idea; proper planning is the best defense against the urge to cut corners at the last minute. After reading this post, there's no longer any excuse to be surprised when a specific activity pulls an entire project off track!


Further Reading:

How to Determine a Project Timeline

CPM and PERT Weaknesses and Strengths

About Process Selection and Facilities Layout in Operations Management

Business Tools for Scheduling

Thursday, September 1, 2011

Video Game Industry Blog

Welcome to the Video Game Industry Blog! This blog will contain news and analysis of the business side of the video game industry, focusing on new trends in marketing, project management, talent management and other issues central to success in the growing, recession-proof video game industry.

Check back soon for updates!