What Can Starcraft 2 Teach Us About Delivery: Cost of Delay

Starcraft 2 is a Real Time Strategy game (RTS) where 2 or more players play against each other to build a base and construct units and then blow stuff up. The first person to lose all their buildings loses.

Lots of fun. Its 14 years old and made me realise something really important. Most games that I invest time into getting good at end up giving me insights into what we do professionally.

The reason these games are hard is that you have a complicated task of building a base, moving units around and also managing fights potentially on 2-3 fronts at once. For us mortals doing one of these things is all consuming, watching pros play and juggle all this is mindboggling. Games on TV don’t show players perspective because it is sickening.

terran base in sc2 from blizzard site

So how do you play this game (before the internet)?

The way that was fun for people was to not attack for a time period whilst build some units you like and then end up having a fight. There is almost an agreement on not using most basic units and instead teching up. This takes the time pressure off and is how a lot of people played. Afterall, it is more fun to play with more advanced units.

The idea was that the strategy was in how to build and use a flexible army.

The game rules say destroying buildings is the point, and eventually, these players would get around to it.

How do you win this game (ie play with internet)?

What a typical game looks like it this:

You start to build your base, you build a couple of units. You expand to get more income, build buildings until you get the building that produces the units you really want. Think ‘now is time to build units and attack!’, and then the opponent turns up with 7 roaches when you have basically nothing, you then lose very, very badly and wonder what happened. ‘How did they get so much stuff?’

You scream, uninstall the game and go back to something simpler like chess by mail or go sparring - where it is already agreed that you will get punched for fun.

You are playing a different game - self-sabotage

Well despite playing the same game, your understanding of the nature of the game is vastly different.

In both cases the same game is being played, the same win condition happens, but the manner in which it’s arrived at is very different because the perception of what is valuable is very different.

One approach clearly wins more games, but who are we to judge that its better?

There are lots of opinions, most players of this game are not competitive. There is still an active player base 14 years later.

But for the purposes of an analogy to professional work, I think we should be trying to be competitive. I think the point of this is that I want to illustrate why it is important to be able to answer the question of ‘what does competitive look like? What should our win conditions be?’.

I cannot answer win conditions here, but I have another game analogy next that might get into this more (Factorio or Dyson Sphere), it is complex.

This piece is about invisible self-sabotage caused by lack of clarity of purpose.

What is the game? - Cumulative error

The game is actually about cumulative error over sequential processes and exploiting timings via accumulating less error than your opponent.

A very obvious example is at the start of a game. Eg If you give the opponent a 30 second head start then you can never get this back. What is unclear is how important that 30 seconds is at various points in the game.

The answer is: It will lose you the game outright in many scenarios even after playing for 5 minutes. You will have nothing when they will have an army killing everything.

This is obvious, you must be relying on their mistakes.

Every delay accumulates and compounds:

When something sequential has been delayed you can never get the time back in later steps. But also you have the massive invisible cost of delayed growth.

This is a game where you can build the same building twice to double production of a unit (and keep going, 4 is not uncommon). The more we delay things, the less of these buildings which means less and later start to unit production, it all compounds rapidly

To perform any ‘rush’ or ‘timing’ build you are likely building 10 workers, a few buildings and then an army. If you delay each one of these by a second then you rapidly hit and exceed the 30 seconds of standstill. As such, builds that hit quicker are actually easier to execute.

In these sorts of games the fight is not close most of the time. It is lopsided. You turn up with an army, they very likley have nothing.

When you get to reasonable levels on ladders it is competitive, but this is the top 5-10% of the entire player base and these builds are still going. The vast majority of players don’t play these ladders.

The accumulation of error is not obvious

Again this error should be obvious, but in game it is not obvious because you are so busy doing other things. The only way to see it is to compare the amount of stuff you have to somebody else and see the stark difference. When you see this stark difference and see the effect it has you completely change your understanding of what matters.

The problem is that the error is accumulating based on some ‘hypothetical’ perfect game, there for it isn’t really real for the player until a comparative situation arises. We only discover it from hard detailed analysis of looking at what people have every 30 seconds or so and realising that one person is falling behind. We get this insight from reviews and comparing games with other peoples games. In engineering, we regularly review and look to improve.

– How often do we take deliveries, review the steps and the process against other deliveries? Personally, I have never seen it done seriously

The key here is that one player is busy doing other things (probing, map control, defending against a scout, trying to hide something) whilst the other is focussed on only 1 thing, all else is added optional value. They are removing waste from delays in production.

The first player is arguably having more fun and doing a lot of different things, they are playing the game. The second is focussed on execution of a plan that was made before the game that was designed to get in front of the enemies plan (and so not need to change given information), this player is focussed on winning. It turns out in this game it is possible to get very close to the hypothetical perfect.

By the time the first player discovers this is a serious game, they have already lost - badly.

If you have waste in production then you do not get to play the same game as competitive people, you don’t have the same pieces to play with.

Cost Of Delay

This is cost of delay. It is not about the decision item by item vs its alternatives. It is the crushing difference in the accumulation of errors. It is the inability of one person to capitalise on growth opportunities second by second that results in the other player turning up ready to fight.

I am not arguing that we should be over investing in eliminating wasted opportunity cost instead of doing something - I am arguing that the time spent doing that should only be happening if we are already fully invested in delivering value in the meantime.

How do you learn to play good starcraft (or any RTS game)

You have to start with learning the fastest rushes. Only by understanding how these work and their timings can you understand what timings, and so the tells you need to make a decision to change direction of play.

We understand that the game takes place in a very structured linear way through a graph of possibilities. The strategy in the game is how you navigate it based on information, the strategy out of the game is constructing it. The loser in these examples lacks the out of game component.

The insight is that if your execution of the out of game plan fails in game then you do not get to have strategic battles, you just lose because you don’t have the stuff to have those fights.

The following tree is from Team Liquid site . It is a tree for a zerg player trying to decide what build to go down when playing a protoss and seeing certain things. It is 13 years out of date so ymmv!

a build tree

Digital delivery is like this

This is the same thing as missing a deadline, missing chance to get to market, delaying an advertising run.

We cannot perceive its cost, but we can see how we barely survive projects.

We want to focus on the removal of waste (low quality work, defect feedback loops, backlogs cannibalising time from bottleneck and quality etc) because it all compounds.

Things we ask to get better at the game that we could ask about our jobs

So what is our fasted delivery sequence? When do we choose this sequence? What are the signals that mean we should tech up to a different delivery sequence?

What is our tree of decisions and possible ways of delivering?

I see a lot of very emphatic people about a way of doing things that only have 1 way.

I am not sure we are playing the same game - how can we get to agreement?

What is the game though?

An awful lot of people are focussed on trying very hard to be busy and do good work, but we don’t have agreement on what winning looks like.

Our job in digital is to build things that meet some business objective, but they also need to be able to change, change in reasonable time, perform well etc and I do not think we are designing our strategies around these things.

Every time I see a series of tickets representing a series of screens that form a single piece of value I feel this.

The problem is that it is very hard to get agreement on what good strategy is because we do not really have a way of comparing our state against some ideal or even others. This is strange given the level of meta studies into things like DORA. I think this is a maturity problem.

You don’t get to strategy when you have nothing to strategy with

It is only when you can do this do you get to play the real-time strategy part. If you get it wrong you go into a fight with basically nothing and no strategy can come back from that.

People got serious with starcraft

A genetic algorithm was developed which found the 7 and the 5 roach rush described above. The point of the algorithm is you told it what you wanted and it would find the sequence to get there fastest. It found tricks to get around game constraints (these are covered in the linked article)