Egoless Collaboration

Engineering Insights

Talin
Machine Words
Published in
4 min readDec 12, 2018

--

One of the most important technical skills is the ability to work closely with others.

I know a lot of folks who are big fans of pair programming. This is a style of programming where two people sit side-by-side and work on a given piece of code together. Typically one person will be typing, while the other person makes suggestions and points out errors in the code.

Pair programming can be a lot of fun, especially when working with someone who has different programming skills than you do, where each of you have something unique to contribute. In fact, the experience can be quite heady, even intoxicating. I once knew a guy — David Kuettel, lead engineer of Google Fonts — who liked pair programming so much he always maintained two keyboards and two chairs at his workstation.

However, a lot of people are resistant to the idea of having a “back-seat driver” constantly criticizing their code. I think this is because they are afraid that the feedback that they get from pair programming would about them rather than about the code they are writing.

The secret to this kind of collaboration is letting go of ego and not taking it personally.

Think about this: most modern programming editors auto-correct as you type. Programs like VSCode and Atom put little red squiggles in the text to show you what you did wrong. Do you find this kind of feedback insulting or off-putting? I suspect not. And if you don’t, why is it any worse having that feedback come from a person rather than from a program?

A key factor is establishing trust. Closely collaborating with someone means that they get to see your work before it is fully polished. You need to be able to trust that the person won’t abuse the vulnerability that you have offered to them, otherwise the partnership will be very uncomfortable.

Truly egoless collaboration requires cooperation from both sides. The person receiving the criticism should not take it personally; and the person making the criticism should express it in a way that makes it clear that they are not denigrating the other person’s skill or character.

If you ever get the chance, I recommend taking a course in Non-Violent Communication (NVC). This is a method for resolving disputes between people, but it is also a useful tool for giving feedback.

The key concept of NVC is that there is a language of compassion and a language of judgment; unfortunately most of us have such a poor “emotional literacy” that we are often unaware of which language we are using. This means that even though our goal may be to express compassion, we often use judgmental language which alienates the other person and puts them on the defensive.

The NVC courses are designed to help you become aware of the kind of language you are using. To recognize, for instance, the difference between a feeling and an opinion. Many people often confuse the two — one of the examples that was presented was a story about a woman who was upset about her husband’s habit of leaving his newspapers on the floor when he was done reading them.

“How does that make you feel?” asked the course facilitator.

“I feel that he should pick up after himself.” said the woman.

You see the problem? “He should pick up after himself” is not a feeling, its a judgment. It says nothing about the woman’s emotional state, and more importantly, it is a statement that is unlikely to foster connection, but more likely to provoke a defensive argument.

NVC is taught by the Center for Non Violent Communication (cnvc.org) founded by the psychologist Dr. Marshall Rosenberg. While you can learn the material online, I highly recommend attending at least one live course; check the schedule to see when a trainer will be holding a session in your area. The courses are cheap, and no one is turned away for lack of funds. And the sessions are generally pleasant and interesting — no one is going to shout at you or try to guilt-trip you into anything.

(And technical folks, don’t be put off by the new-agey, soft presentation of the material — yes, they use hand puppets in some of the courses. There is real material of value here, but packaged in a way that is designed to appeal to a broad audience. And to be honest, it’s a nice change from the corporate power vibe.)

Like any skill, once you learn NVC, you are not compelled to use it; however I have found that it has changed my thinking on a lot of issues, particularly issues on how to solve social problems dealing with conflicts between people.

The reason I like to talk about NVC in an engineering context is that the skills taught in the courses directly relate to the problem of collaboration — specifically, separating the concept of a technical judgment from a moral judgment. A technical judgment simply points out a mistake or an error, but doesn’t imply that the person who made the mistake is somehow bad or lacking in quality. This is where the ability to use language precisely when giving feedback becomes critical.

Summary

Like science, engineering requires constant error correction and feedback as part of a collaborative process. You can be a more effective team member by learning the communication skills that allow you to provide that feedback in a way that doesn’t cause tension and strife within the team.

See Also

--

--

Talin
Machine Words

I’m not a mad scientist. I’m a mad natural philosopher.