Uncertainty in
Schedules
One of the problems with long
term schedules is that they try to plan away uncertainty. Uncertainty
can take many forms, but generally falls into three categories:
- Uncertainty in
what you are building.
The exact specifications of what makes a fun, hit game are impossible
to document and schedule. "Finding the fun" includes many
iterations and experimentation.
- Uncertainty in
technology.
Game developers face a rapidly changing technology base with products
that require major innovation. Many games have been delayed or cancelled
because the predictions of what the new technology could achieve or
how long it would take to be implemented were usually optimistic or
uncertain.
- Uncertainty with
the developers.
Given the same design document and schedule, two different teams
will have entirely different results and levels of success. People aren't
cogs in a machine. Teams gel differently and talent is highly variable.
Agile methodologies were created
for use in cycles of product development that have a high level of uncertainty.
Uncertainty increases the further out you try to predict the future,
or the larger the task you are trying to estimate (see Figure 1).
The
benefit of agile is in iterating on short-term, detailed estimates of
short tasks. Agile limits the detail of planning to the matching of
certainty and priority. When we have a lot of uncertainty in high priority
features, we break them down into smaller parts that fit into an iteration.
This way we can continually refine the estimates for the whole to be
increasingly accurate.
Figure
1
As mentioned earlier, game
projects are often divided into pre-production and production. If you
want certainty in production schedules you need to address the three
areas of uncertainty during pre-production. This has to be the goal
of pre-production and the measure of when pre-production is complete.
Ideally pre-production will demonstrate a certain percentage of all
asset types combined in a shippable demo version of the game that demonstrates
the final fun factor, performance and resources required to build the
remainder of the game.
Iterative Pre-Production
Followed by Detailed Production Schedules
Some Scrum adopters in the
game industry have adopted an iterative approach to pre-production followed
by a detailed production schedule. This is effective, but it does not
mean that all the benefits and practices of agile should be dropped
when the team enters production. The principles of agile can still help
in production.
How Can
Agile Help a Production Schedule?
There are benefits of agile
that can be employed to help the team and the customers refine the production
schedule:
- Iterative production
estimates even in pre-production.
Sprints deliver working software with potentially shippable assets.
The team can use the empirical information of the true cost of producing
these assets to refine their estimates of making all of the remaining
assets of the same type. For example, if the schedule anticipates nine
months of production, the team should start verifying that schedule
18+ months in advance of shipping. You don't want to discover that you
really need 12 months of production when all you have left is 9.
- A production
schedule is just a prediction. It needs refinement.
Once a schedule for production is in place it should be treated like
a prediction given the facts at the time it was created. This prediction
should be continually examined and refined. The team should find ways
to reduce the cost of production while improving the quality of the
assets. More time freed up from production can be dedicated to polishing
and tuning during post-production.
|
Scrum may be ideal for web development company which releases versions of their web applications frequently. I can not imagine how should anyone produce a game which production lasts for 2 years and there are 50 people involved in the game making.
So far, I like the method. At first it felt like we were losing time to daily Scrum meetings and a sprint planning meeting every few weeks. But during the daily meetings, it very quickly becomes clear when a task is too large, a task is taking more time than expected, an individual has too much work (or isn't performing well for whatever reason), how much time outside projects take from our main project, etc. The daily meetings are also a good time to share knowledge and find out when there's a bottleneck in each task (interdependent tasks, waiting for a particular script function, waiting for art resources, etc). Just being able to look at a single board and see the state of the whole project, the tasks currently in progress, who is working on each task, your own place in the grand scheme, and several "next sprint" tasks if you finish early has been helpful.
problems. Its easier to use How-To guide to project management then creatively assessing the
situation, and intuitively building up your own methodology that best fits the team, studio and
project."
Scrum is not a how-to guide. It's a framework for "building your own methodology that best fits your team, studio and project".
Don't pass judgment on something you haven't tried.
We been using it here for a few years on AAA games. The overall game design, technical designs, and
rough schedule of tasks are completed up front...."
I am happy to hear that. To be honest i am tired of heavy-weight development technologies which can sometimes become so bureaucratic and impersonal. And on the other hand game development should be fun. I really wish that agile ones will find their place in the industry soon.
...
I would also like to know how the work is coordinated in different teams since you run sprints in teams only.
Anonymous from the first post :)
Now I know big studios whose using Agile method on starting AAA project and I'd really like to test it out on a large scale. It the only way to get your client involved in the choice of feature to be develop according to reality-certainty as opposed to uncertainty of long term planning.
I just wander how can Agile solve the problem of cascading projects and efficient resource assignments. I can picture a new project to be started with this methodology but what about the second one that's starting the very week after the first one when you have a team of over 50 people that you need to assign to something constructive?
Cheers,