61 lines
2.9 KiB
Markdown
61 lines
2.9 KiB
Markdown
---
|
|
title: "On Confidence and Real-Time Strategy Games"
|
|
date: 2011-06-30T00:00:00+00:00
|
|
draft: false
|
|
canonical_url: https://www.viget.com/articles/on-confidence-and-real-time-strategy-games/
|
|
---
|
|
|
|
I want to talk about confidence and how it applies to being a successful
|
|
developer. But before I do that, I want to talk about
|
|
*[Z](https://en.wikipedia.org/wiki/Z_(video_game))*, a real-time
|
|
strategy game from the mid-'90s.
|
|
|
|
<img src="256px-Z_The_Bitmap_Brothers.PNG" class="inline">
|
|
|
|
In other popular RTSes of the time, like *Warcraft* and *Command and
|
|
Conquer*, you collected `/(gold|Tiberium|Vespene gas)/` and used it to
|
|
build units with which to smite your enemies. Z was different: no
|
|
resources, only territories that were held by either you or your
|
|
opponent. The more territories you held, the more factories you had
|
|
*and* the faster each of your factories was able to manufacture units.
|
|
|
|
If you spent a lot of time playing a Blizzard RTS (and of course you
|
|
did), your instinct is to spend the first portion of a match fortifying
|
|
your base and amassing an army, after which you head out in search of
|
|
your enemy. Try this strategy in Z, though, and by the time you put
|
|
together a respectable force, your opponent has three times as many
|
|
units and the game is all but decided. Instead, the winning strategy is
|
|
to expand early and often, defending your territories as best you can
|
|
before pushing forward.
|
|
|
|
## So What
|
|
|
|
As developers, our confidence comes from the code we've written and the
|
|
successes we've had. When we find ourselves in unfamiliar territory
|
|
(such as a new technology or problem domain), our instinct is to act
|
|
like a Starcraft player --- keep a low profile, build two (ALWAYS TWO)
|
|
barracks, and code away until we have something we're confident in. This
|
|
will get you pretty far against the Zerg swarm, but it's a losing
|
|
strategy in the realm of software development: the rest of the team
|
|
isn't waiting around for you to find your comfort zone. They're making
|
|
decisions in your absence, and they very likely aren't the same
|
|
decisions you'd make. Your lack of confidence leads to poor
|
|
implementation which leads to less confidence, from both your team and
|
|
yourself.
|
|
|
|
Instead, I contend that real-world development is closer to Z than it is
|
|
to Starcraft: show confidence early (despite lacking total understanding
|
|
of the problem) and your teammates and clients will be inclined to trust
|
|
your technical leadership, leading to better technical decisions and a
|
|
better product, giving you more confidence and your team all the more
|
|
reason to follow your advice. Just as territories lead to units lead to
|
|
more territories, confidence leads to good code leads to more
|
|
confidence.
|
|
|
|
**In short:** *display* confidence at the beginning of a project so that
|
|
you can *have* confidence when it really counts.
|
|
|
|
Do you agree? I'd love to hear your thoughts. Best comment gets [my
|
|
personal copy of Z](http://www.flickr.com/photos/deisinger/5888230612)
|
|
from 1996. You're on your own for the Windows 95 box.
|