The First Move Technique: How To Do Asynchronous Communication Better

Imagine you want to play chess with a friend who lives across the Atlantic. You send him an email saying “do you want to play chess?” Now because it’s an email and you’re not standing right in front of him, he probably doesn’t respond instantly. He could take a few minutes or even a few hours to get back to you. Finally, after some waiting he replies: “Yes I’ll play chess with you. I’ll be black and you be white.” Then you reply with another email: “Okay, e2 to e4.”

Now let’s say the game takes 20 turns to finish. You would need 22 emails in total to finish the game. How could you make this exchange shorter?

Instead of just asking if your friend across the Atlantic wanted to play chess, you could instead ask if they want to play chess and tell them your first move. Something like: “Do you want to play chess? If yes, then I’ll be white and my first move will be e2 to e4.” Then if they accept your challenge they need only to respond with their move. Which means if the game takes the same number of turns (20 in total) then it will now only take 20 emails between the two of you. Wow! You have just cut down the amount of time it takes to finish this communication by a few hours and maybe even a few days!

In software development, every single conversation about engineering decisions is like a chess game. Two or more people work together to decide the outcome of a situation. These conversations can be costly if they are not conducted efficiently. By utilizing this technique where you announce your first move, you can speed up these conversations when they are being conducted asynchronously. Don’t ever say: “We should talk about whether it’s worth changing which database we’re using.” Instead construct a written argument about why you think your team should be switching to a particular database. Cut to the chase. Trim the fat. Don't waste people’s time.