Remote Mob Programming

How to act as a typist

The rest of the team develop software, using the typist (a.k.a. the driver) as a smart voice-controlled input device. The job of the typist is to translate intentions (a.k.a. directions) into computer-based solutions. This is a skill that requires a lot of practice. The typist shares the screen everybody is looking at. This means the typist has power. But with great power comes great responsibility. Here’s how to be a responsible typist.

Be reactive.

If you don’t get any commands, do nothing - just listen. Move your hands away from mouse and keyboard. Meditate to the blinking of your cursor. Cherish this moment. Fight the urge to join the discussion of the rest of the team. If it helps, just mute yourself. You know it will be over in a few minutes. But if you lose that fight, trigger a handover to the next typist.

Be patient.

You might become impatient when there are no commands. You can ask “what should I do next?” in those cases, but it’s better to wait, doing nothing instead. You will get fresh commands at some point afterall.

Be deliberate.

Make sure everybody in the rest of the team can follow what you are doing. Pause at appropriate moments. It’s like stopping between sentences, or after commas, to ensure people catch up with the thoughts. It might feel like slowing down, but with that, the whole team can speed up.

Be calm.

Although the rest of your team should be patient with you, it sometimes happens that you might feel pressured from the rest of your team for following their commands too slowly. Just stay calm and tell them to slow down with their commands. Tell them to give you space and freedom to act and breath. It’s okay to stand your ground, even necessary.

Be private.

Disable any notifications. The rest of the team doesn’t want to get a sneak preview of your instant messages or emails.

Be curious.

You got your command and know what to do. But you’ve seen someone else using a specific keyboard shortcut or a nice refactoring action from your IDE. Feel free to ask the rest of the team to teach you that shortcut or refactoring action.

Be confident.

If you get contradicting commands, pause. Don’t select one command over another on your own. Don’t selectively ignore commands. Just ask the rest of the team what you should do.

Be transparent.

Be transparent of what you know so the rest of the team can guide you on your level of domain, technical, and system knowledge. If you get a command you don’t understand, make this immediately clear to the rest of the team so they can readjust their commands. This is important if you’re new to the craft or the team.

Be attentive.

Listen closely what the rest of the team discuss. Don’t distract yourself with email, Twitter or Slack. Be ready to support and help them anytime. In some cases, you might help them by asking questions like: “Do we know what is our current task or next step is?”. But don’t overuse this!

Be giving.

Rotation is key to the success of working together. Make sure to hand over to the next typist on time. Don’t go for the famous last words of “let me finish this real quick”. Don’t hog. Just let it go.

Be prepared.

Try to be prepared so when your time as a typist comes, you can immediately implement the commands from the rest of the team. So start up your IDE, checkout the project you’re currently working on, let your build system download the internet, and your IDE create those annoying but really helpful indexes. Also, configure your IDE: enable line numbers, increase font size, and activate auto-save (looking at you, VS Code). Being prepared gives you extra points, and if you’re not, the rest of the team is more than happy to help you getting set up together.

Just Sharing

We’re just sharing what works for us. It might help you as well.