When you decide to do something important, talk it over with someone else.
In person, in real time, using your voice.
This can work well when you decide to fix a bug in some software, or create a new feature.
Have you ever found yourself in a kind of self-deception where you’ll think you know in detail what you’re going to be doing, but in your mind you’ve glossed over important specifics?
At Jarn, software developers grab a co-worker for a short conversation right after they take a ticket to work on. It takes 5-25 minutes, and acts as a kind of sanity-check, giving the developer a space to talk about the work and see for themselves which parts they’re certain of, and which parts have unknowns.
It’s important that this doesn’t interrupt the flow of the reviewer, who may be deeply engaged with their own work. And it’s important the developer get the review immediately, so he won’t be encouraged to multi-task, and to keep the whole process LEAN.
The team who develop Launchpad at Canonical do something similar. They call it “pre-implementation reviews”. Developers work in five-person squads that work all across the codebase as needed. The members of a squad work distributed, as they live in different locations. When someone takes a bug or feature to work on, they typically investigate, think about it and maybe do some exploratory coding. At this point, they either fix the bug right away, and ask for a code review for the finished work. Or, if it’s larger or more complex, they’ll talk to a squad member over Skype or Mumble before going ahead. This gets everyone being proactive about being unblocked in their work. Squads have daily stand-up meetings (again, over Skype or Mumble) and they’ve found this is a good time to ask for a pre-implementation review.
It’s important to have these conversations in real life, or over a video or voice connection, and not using instant messages or irc. There are two main reasons.
- A voice conversation allows other concerns to be raised more easily. It takes a lot less effort to answer a closed-ended question in an open way when we’re using voices.
- The sound of our voices carries words and also emotions. It’s like a second channel of emotional communication that helps us to read between the lines, and allows either the reviewer or the developer to see if the other is not telling the whole story.
For example, perhaps the developer is feeling over-confident. Or maybe the reviewer is concerned, but being polite and not saying so.
Why would he do that? The thing is, not everyone is equally candid, not everyone feels able to raise an objection. Particularly when talking with people who they view as having stronger personalities, more power in the project or company, or who seem smarter than they are.
Opening up the emotional channel gives us two opportunities to listen between the words, and get a full connected and truthful review.