Humans are naturally bad at predictions. Being bad at predictions, and figuring out how to make better ones, sounds kind of fun but not necessarily a basic life skill. Like, you can say, "I bet I'll spawn a baby infant by 2020 with 80% confidence!" or "Oculus Rift is going to be a market success - 65%", but you can't just want to make a really close friend and say, "I predict that I will make a really close friend this month with 95% probability" and magically have it happen.

Or can you?

I mean, the kinds of things you can try to do to make close friends are known. Get out of the apartment, do social events, reach out to people you like to hang out, be vulnerable, open up your schedule and routine to allow for repeated and unplanned interactions, practice your social graces, spend less time at work or with people you don't actually want to be close friends with, wear a really cool hat, and so on

But it feels like there's a lot of uncertainty on 1) whether you will actually do these things and 2) what the results of each effort will be. You vaguely wonder, "What if they don't like me?" "What if I don't like them?" "Does anyone really have time to make new close friends?" "What parties would I even go to?" and so on, until it feels like it probably wouldn't work. So you don't attempt any of these things, and so of course it doesn't work.

That, or you think that making really close friends won't be that hard and if you just give it a try, it'll probably work. So you give it a try: you go to a couple parties, you hang out with a few people, and it's kind of fun, but a couple months later you realize that you've gotten busy and stopped doing the things, and you haven't quite bonded with any one new friend.

Here's a tactic for making an accurate prediction of probable success at your goal, whatever it is, regardless of whether it feels uncertainly difficult or easy. It's called Murphyjitsu. When making a new plan to accomplish a goal, you spend some time writing down everything that could possibly go wrong. It doesn't take long. Humans already have a great simulator for generating failure scenarios; we just don't typically use it when we feel that success is likely, and we don't use it systematically when we feel that failure is likely. So you just say, "Okay, I've executed my plan and suddenly I realize I've failed my goal. Oh no–why, what happened?"

You should be usually able to generate something like seventeen failure modes in five minutes. Then, for each failure mode, you write down what is usually a very simple preparation step or contingency plan that would avert failure. Here is an excerpt from an example for when I was preparing for hosting a national Singaporean coding tournament, which I went through a couple days before the tournament when I thought everything was already done:

Okay, time to use Murphyjitsu to make sure this tournament goes well. Goal: Have the tournament go so smoothly and excitingly that IDA will pay us $$ to run the next one. What could go wrong?

  1. The ranking is buggy -> ask people to try desperately to break it, and spend 15 minutes trying to break it myself.
  2. It runs too slowly for great justice -> do some CPU profiling to make it faster.
  3. Someone gets in the ladder who shouldn't be -> I can just take them out of the clan and delete their sessions' leagues.
  4. The kids' strategies are all too similar -> give a more complex example of how to pick units to build so fewer players use 100% of one type.
  5. I make a last-minute change and it busts things -> do all this today and don't mess with it tomorrow.
  6. They just aren't that interested after and I don't really know why -> ask Chris to get someone to video the event so I can review and see how it went.
  7. [... many more possibilities ...]

If I do all that stuff, it seems like things will go a lot better. So let me get cracking!

Based on this, I then fixed a bunch of things that ended up being necessary for the tournament to run at all. Thanks, Murphyjitsu!

(Not pictured in this list was my laptop basically dying right before the tournament, so I ended up with a barely-configured new iMac sitting on the floor of my apartment at 3am supervising the event with no ability to fix anything on the fly. Good thing I had fixed all the things in advance.)

You can apply Murphyjitsu to any plan that might fail, from going to the gym to raising Series A to shipping your indie game side project to just fixing a particular bug. It doesn't even take very long. The key is to just remember how bad you (as a human) naturally are at planning things, and to solve your pesky human mental deficiencies by using your beautiful human mental strengths.

This Murphyjitsu technique was developed by the Center for Applied Rationality (CFAR). If you want to give it a try, here are the steps in their words:

Step 1: Pick a plan/project/goal

Step 2: Make it specific enough to visualize

What’s the next action you would need to take to keep this project/plan moving forward? It should be concrete enough that you can picture yourself doing it, not something vague like “work out more.”

Step 3: Check your surprise-o-meter

Visualize putting this plan in motion, then ask, how surprised would I be if this plan failed? If you’d be shocked, then you’re done! Otherwise, continue to step 4.

Step 4: Use Pre-Hindsight

Your plan didn’t work! And it failed at the stage of the next action you wrote in Step 2! What happened?

Step 5: Use Looking Forward

What action would you have had to take to prevent this particular failure mode? Visualize taking this preemptive action and then ask “What comes next?” Have you successfully defused the danger? Did you create a new weak point to patch?

Step 6: Iterate!

Repeat steps 3 - 5 several times (sometimes this technique is called “Simulate 17 times, act once”). What else might have gone wrong? What could have prevented it? You’re battle-hardening your plan against happenstance and poor habits. Remember that this should be very quick - all “17” iterations should take maybe a few minutes total.


Hacking on CodeCombat, a multiplayer programming game for learning to code. Mastermind behind Skritter, the most powerful Chinese character learning app.

More posts from

Ruby's Vocabulary Acquisition

I tracked every word that Ruby learned to say in the first 2.5 years of life, analyzing vocab compared to her brothers.

Clark's Vocabulary Acquisition

I tracked every word that Clark learned to say in the first 2.5 years of life, graphing it and comparing it to Max's.

How to Really Make an Impression When Speaking Chinese

I just got back from a business trip to China, where I visited Beijing, Shenzhen, and Guangzhou. I listened to and s...


Humans are naturally bad at predictions. Being bad at predictions, and figuring out how to make better ones, sounds ...

Active vs. Passive Learning, or Production vs. Recognition

Here's another concept from language learning pedagogy (see also Extensive vs. Intensive Learning): the difference b...

Extensive vs. Intensive Learning

In language learning, there's a slightly obscure but useful concept of "extensive reading" vs. "intensive reading". ...

Getting better at making accurate predictions with PredictionBook

I use a site called PredictionBook to make predictions, say how likely I think they are to occur, and then later jud...

Extreme Learning

Yesterday, I went down to the Institute for the Future for a workshop on "extreme learning". There were many diverse...

Max's Vocabulary Acquisition

Max's vocabulary started exploding around 15-17 months old. I started writing down everything he could say (with und...


All Topics