davideisinger.com

My personal website
Log | Files | Refs | README

index.md (3134B)


      1 ---
      2 title: "On Confidence and Real-Time Strategy Games"
      3 date: 2011-06-30T00:00:00+00:00
      4 draft: false
      5 canonical_url: https://www.viget.com/articles/on-confidence-and-real-time-strategy-games/
      6 ---
      7 
      8 I want to talk about confidence and how it applies to being a successful
      9 developer. But before I do that, I want to talk about
     10 *[Z](https://en.wikipedia.org/wiki/Z_(video_game))*, a real-time
     11 strategy game from the mid-'90s.
     12 
     13 {{<dither 256px-Z_The_Bitmap_Brothers.PNG "" "inline">}}Battle-hardened robot cowboy Cmdr. Zod sprays bullets amid explosions on the cover of ā€œZā€ by The Bitmap Brothers.{{</dither>}}
     14 
     15 In other popular RTSes of the time, like *Warcraft* and *Command and
     16 Conquer*, you collected `/(gold|Tiberium|Vespene gas)/` and used it to
     17 build units with which to smite your enemies. Z was different: no
     18 resources, only territories that were held by either you or your
     19 opponent. The more territories you held, the more factories you had
     20 *and* the faster each of your factories was able to manufacture units.
     21 
     22 If you spent a lot of time playing a Blizzard RTS (and of course you
     23 did), your instinct is to spend the first portion of a match fortifying
     24 your base and amassing an army, after which you head out in search of
     25 your enemy. Try this strategy in Z, though, and by the time you put
     26 together a respectable force, your opponent has three times as many
     27 units and the game is all but decided. Instead, the winning strategy is
     28 to expand early and often, defending your territories as best you can
     29 before pushing forward.
     30 
     31 ## So What
     32 
     33 As developers, our confidence comes from the code we've written and the
     34 successes we've had. When we find ourselves in unfamiliar territory
     35 (such as a new technology or problem domain), our instinct is to act
     36 like a Starcraft player --- keep a low profile, build two (ALWAYS TWO)
     37 barracks, and code away until we have something we're confident in. This
     38 will get you pretty far against the Zerg swarm, but it's a losing
     39 strategy in the realm of software development: the rest of the team
     40 isn't waiting around for you to find your comfort zone. They're making
     41 decisions in your absence, and they very likely aren't the same
     42 decisions you'd make. Your lack of confidence leads to poor
     43 implementation which leads to less confidence, from both your team and
     44 yourself.
     45 
     46 Instead, I contend that real-world development is closer to Z than it is
     47 to Starcraft: show confidence early (despite lacking total understanding
     48 of the problem) and your teammates and clients will be inclined to trust
     49 your technical leadership, leading to better technical decisions and a
     50 better product, giving you more confidence and your team all the more
     51 reason to follow your advice. Just as territories lead to units lead to
     52 more territories, confidence leads to good code leads to more
     53 confidence.
     54 
     55 **In short:** *display* confidence at the beginning of a project so that
     56 you can *have* confidence when it really counts.
     57 
     58 Do you agree? I'd love to hear your thoughts. Best comment gets [my
     59 personal copy of Z](http://www.flickr.com/photos/deisinger/5888230612)
     60 from 1996. You're on your own for the Windows 95 box.