
October 2001
THE
DEVELOPER'S LIFE
PART II: PUTTING THE HOUSE IN ORDER
By François Dominic Laramée
As the Fall release season begins, we
are reminded of one of the truisms of our business: you
can't postpone Christmas. Since most of us ultimately
depend on those all-important holiday sales for our
livelihoods, shipping product on time is even more
important for game developers than for just about anyone
else, in any industry.
Yet, the annual cascade of bad news
has already begun. From the benign one- or two-week
delays in shipment of Xbox and GameCube hardware to the
far more troubling outright cancellation of SimsVille,
game development projects routinely falter, stumble, or
fail altogether.
It is impossible to overstate the
financial, organizational and motivational damage
inflicted by these disasters. Developers lose their
jobs, or see the fruit of their long nights of crunch
overtime shelved and forgotten. Publishers lose fortunes
as advertising money is spent in vain. Companies go out
of business.
The common alternative, shipping games
on time but riddled with bugs, is hardly more exciting.
The Dilemma
As Steve McConnell writes in his
must-read book,
Software Project Survival Guide
(ISBN: 1-57231-621-7), our plight is hardly uncommon:
"Between one third and two thirds of
[all software] projects will exceed their schedule and
budget targets [...] Of the most expensive software
projects, about half will eventually be canceled for
being out of control."
McConnell's name is well-known among
software engineers. He is the author of several
best-practices books, including Rapid Development,
Code Complete and After The Gold Rush.
Software Project Survival Guide is one of the
shortest and easiest to digest of the lot; managers,
designers, artists and other non-technical readers can
breeze through it in a week-end and come out of the
experience transformed.
In a nutshell, McConnell states that
lack of formal methodology, unrealistic expectations and
inadequate corporate practices are the (entirely
preventable) causes of most software project failures
and delays. And while McConnell writes for the software
industry at large, all three of these weaknesses are
glaring in our corner of the world.
Fortunately, this is a disease that we
can cure.
The Plan
Step One: Be Realistic
As the old saying goes, life is what
happens while we're busy elsewhere. Thus, the prudent
developer thinks defensively, planning where planning is
possible, and securing safety margins where it is not.
However, we in the game development
business tend to define schedules in an overly
optimistic fashion. We look at the calendar, see when
the game must ship in order to be on the shelves by
Thanksgiving, and set whatever milestones will allow us
to meet the deadline - on paper. If that means assuming
that the office network will always work without a
glitch, or that we can suddenly hire 6 senior artists in
the middle of summer, or that the entire staff will be
able to work non-stop overtime for 5 months, so be it.
Then, if we estimate that a certain milestone is only
90% complete on the day it is supposed to be signed off,
we roll up our sleeves (those of us who wear sleeves,
anyway) and work harder to make up the difference before
the next deadline comes along.
This strategy works fine - if
everything goes well. (When does that ever
happen?) Otherwise, small delays and inefficiencies may
pile up until we realize, six weeks before we're
scheduled to turn gold, that we can't finish the game in
less than four months.
To prevent the insidious creeping-in
of unseen delays, McConnell suggests defining "binary
milestones", i.e., sets of tasks that must be considered
either completely finished or not done at all. His
reasoning is sound, because estimating levels of
completion is a difficult and imprecise process. For
example, saying that the AI is 75% done is nearly
meaningless, because the last 25% of the work will
probably take more than 25% of the effort. Besides, just
like a submarine that is 90% seaworthy is 100%
worthless, a game that wipes out only 1% of hard drives
isn't exactly 99% ready for release.
Similarly, schedules must take into
account the fact that people need vacation, sick days
and training, and that they can't work at peak
efficiency under pressure on a long-term basis. If a
project can make money only if it can be completed by a
team of 8 working 60 hours a week for 9 months, then it
probably shouldn't be attempted, because the odds of the
entire team making it through the project without a
serious breakdown are infinitesimal.
Finally, since we must protect
ourselves from circumstances outside our control, the
game should be in a shippable form all the time.
Development of new features should be scheduled so that
a solid, consistent build can be produced every week or
two. This way, if the project runs late but the shipping
date can't be moved, we can sacrifice the last few bits
of content and sell a product that, while not quite as
elaborate as we would have wanted, is still finished and
complete.
Step Two: Document and Review
It boggles the mind that some teams
still attempt to make do without a detailed, thoroughly
reviewed design document. Here are a few eye-popping
quotes from McConnell's book:
"Researchers have found that an error
inserted into the project stream early - for example, an
error in requirements specification or architecture -
tends to cost 50 to 200 times as much to correct
late in the project as it does to correct close to the
point where it was originally put into the stream."
(Emphasis added.)
"Each hour spent on activities such as
technical reviews will save 3 to 10 hours of downstream
costs."
Distribute your design documents as
widely as commercial reason allows, and ask for thorough
critiques. We designers are human beings, and it is hard
for us to see the flaws in our concepts. A
fully-functional prototype allowing the design team (as
well as potential customers) to test the gameplay must
also be delivered very early in the project; waiting
until final QA to check whether the players have fun is
just too risky.
If we catch design flaws while the
project is still at the paper or prototype stage, we
will save ourselves untold amounts of grief compared to
the worst case - finding out, a year or more into
development, that the game we have crafted isn't fun.
Don't think that you are immune to this doomsday
scenario: according to the press coverage, this is
exactly what happened to the SimsVille team, and the
folks at Maxis are not exactly amateurs.
Finally, the design document, the
software architecture and the schedule must all be
carefully maintained throughout the project. Any
non-trivial change to the specifications should be
submitted to a formal approval process, to insure
against duplication of work and incompatibilities.
Step Three: Improving the Company
Game developers are notoriously
resistant to management. After all, we chose to develop
games because the "real world" stifles creativity,
enforces pointless rules, and prevents most people
(especially the young) from making any sort of
significant contribution. Plus, a majority of our lead
programmers and artists have neither training in, nor
interest for, management: They are merely put in charge
of a team because of their expertise, and expected to
lead by example. Sometimes, this works fine; if it
doesn't in your company, maybe you should consider an
alternative. As McConnell says:
"60% of a developer's productivity
comes from the match up between the job and the person."
The person in charge of the
programming team doesn't necessarily have to be the best
programmer of the bunch. She must be competent, of
course, but must also be able to deal with schedules,
negotiate with the art and design teams, coach the
rookies, etc. If your technical wizard prefers to work
alone, let him do so, and assign the team coordination
tasks to someone else. Everyone will be happier and more
productive this way - provided, of course, that the
company's salary structure doesn't over-compensate
managerial duties in comparison to other jobs. If that
is the case, there is a good chance that people will go
after management positions even if they are ill-suited
for them, just because it is the only way to increase
their incomes. Obviously, this situation must be
prevented. Many large, successful companies in the high
tech industry now have "technical advisers" or "core
competency specialists", who make as much money as
division managers and vice-presidents despite having no
line management responsibilities whatsoever, because
their contributions to the company as a whole are just
as valuable. This may be the ideal compromise.
An appropriate, carefully planned set
of corporate practices can also increase both happiness
and productivity. For example, McConnell notes:
"Studies have found that
productivity levels of developers who work in private,
quiet, one- or two-person offices can be as much as 2.5
times as great [as that of cubicle-dwellers]."
Achieving peak productivity on a
constant basis may require an investment in physical
space, training, specialized talent, etc., that
companies are often afraid to make because of the
short-term costs. But the long-term benefits may be
worth the trouble.
Conclusion
Sure, no process can guarantee perfect
results. The carefully laid plans of mice and men can
still go wrong, no matter what we do. Still, careful
preparation, reviews and proper management practices may
save a lot of grief at best, and give us a chance to
learn from our mistakes at worst.
Take a look at a couple of post
mortems in Game Developer magazine, and you will
see that the "What Went Wrong" section will mention the
same problems over and over again. It doesn't have to be
this way. It can't keep on being this way.
Not if we want to prevent another
SimsVille.
Editor's Note:
Software Project Survival Guide is available on
Amazon.com by clicking
here
BIO
François Dominic Laramée has plagued the game industry
for almost a decade, finagling his way into a variety of
short-lived jobs as studio head, producer, designer and
programmer, until he ran out of luck and was forced to
become a (mostly starving) freelancer three years ago.
He is in no way responsible for the success of the more
than 20 console, PC, online and board games for which he
claims unwarranted credit, and should never have been
allowed to edit Charles River Media's upcoming book
"Game Design Methods" or to publish his insane ramblings
in over 35 articles and book chapters. Visit his
mediocre web site,
http://pages.infinit.net/idjy, at your own risk
Missed the first Developer's
Life installment? Click
here.
|