00:00:00.299
Hello, world!
00:00:11.780
Welcome to "Empathetic Pair Programming with Nonviolent Communication". Thank you for showing up, especially if you participated in the earlier workshop.
00:00:16.859
I hope you all got a chance to connect with the people around you and that it wasn't too painful. Thank you for being here, if you did participate.
00:00:30.240
I'm Stephanie Minn. I'm a bit nervous because this is my first in-person talk ever. Thank you for your patience.
00:00:41.940
I'm a developer based in Chicago, working at Thoughtbot, and I love talking about feelings.
00:00:51.300
I wasn't always this way. A therapist once told me that I had a hard time expressing my emotions and that she had been covertly working on this with me during our time together.
00:01:03.300
As a recovering overachiever, I was shocked and dismayed to learn about this apparent deficiency of mine. I naturally became obsessed with figuring out how to get an 'A' in everything.
00:01:15.060
I also do a lot of pair programming. Previously, I worked at a software consultancy where we paired by default for most feature work.
00:01:20.880
On my current client project, I'm pairing every day with a fellow Thoughtbother. However, we also spend a lot of time chatting about video games before we start.
00:01:32.220
I'm assuming that most people here have pair programmed before and are looking to deepen their experience with it. I want to note that when I talk about pairing, I'm also describing closely collaborating with another person on development-related tasks, such as debugging, spiking, and updating documentation.
00:01:40.380
Our work is more than just writing code. I've personally encountered the many highs and lows of pairing.
00:01:56.340
I've been that developer sitting silently while my pair commandeers the editor. I've paired with people who dive straight into the deep end and need some reeling back in. Additionally, I've received feedback that I need to have more patience with my pair. From all of these experiences, I wanted to give this talk so I could share how we can make pair programming better, especially when it's not going as well as we would like.
00:02:39.660
Pairing is hard work, but it doesn't have to be a source of pain and suffering. So, to do that, let's talk about feelings, empathy, and a radical framework called nonviolent communication, or NVC for short.
00:02:45.300
This is my copy of the canonical book on NVC, written by its founder, Dr. Marshall B. Rosenberg, who developed the approach in the 1960s. I picked it up last year on the recommendation of a friend. She read it with her whole family and established common ground for resolving interpersonal and familial conflict, which intrigued me.
00:02:56.100
Here's a short background on the author, Marshall. He was a civil rights activist, facilitator, and educator. He mediated struggles between gangs and led workshops between Israelis and Palestinians. If he and his hand puppets could work through those kinds of conflicts, I figured he could teach me a thing or two about my feelings.
00:03:32.760
To either your relief or disappointment, I won't be incorporating puppets into my talk today. However, I will share his intention, language, and techniques. NVC is the antidote to many ways that we communicate that cause harm to others.
00:03:36.780
Judgments, bias, and blame can really hurt. I imagine some of you may be skeptical about bringing emotions into the workplace.
00:03:49.560
In my opinion, the real tragedy is when we find ourselves in an office culture that looks completely devoid of emotion. I realized that NVC, which I had started using in my own relationships, could also be applied to pair programming.
00:04:01.440
Let’s be real: pairing is not just collaborative; it is intimate. I don't think there's anything else that exposes us as much as pairing does, opening the door for all the squishy stuff, the awkwardness, and misunderstandings that come with close connection to another human being.
00:04:23.799
But we also get to reap the benefits, the joys, the laughs, and the shared breakthroughs. I'm excited to tell you more about NVC and how to navigate tricky conflicts so that you can spend more time enjoying the good parts of pairing.
00:04:44.300
I am not an expert or even a certified trainer in NVC; it’s something I continually practice. I mess it up a lot, but I am committed to trying and to trying again and again, even when I don't get it right.
00:05:03.300
The nonviolent communication framework can be described in two parts. On the left side, we have expressing honestly without blaming or criticizing. I like to think of this as empathizing with yourself so that you can show up more bravely and vulnerably with others.
00:05:25.980
On the right side, we have listening empathetically without hearing blame or criticism. Each part has the same four components: observations, feelings, needs, and requests. Today, we will focus more on expression as a foundation for understanding the four components.
00:05:42.300
This should set you up to apply these concepts to the other half as well—listening to others with a clearer mind and a more open heart. The first component in expressing ourselves is making observations about what's causing us pain.
00:05:59.460
It's important to note that observations don't include evaluations or judgments. By describing only what we can see or hear, others are less likely to resist hearing what we have to say.
00:06:17.760
For example, saying, 'Stephanie is too careless when I pair with her' is a criticism. We haven't specified what she's doing that leads us to evaluate her in this way. If someone actually said this about me, I would feel hurt and embarrassed. Let's rephrase that to state an observation without judgment.
00:06:45.840
Instead, we can say, 'When I'm pairing with Stephanie, she moves through files in her editor faster than I can comprehend the code.’ Here, we specify her behavior without claiming our judgment as a fact.
00:07:09.300
Similarly, saying, 'Stephanie doesn't care about my ideas' makes an assumption about what she thinks or cares about, which we cannot know for sure. Instead, we can say, 'When Stephanie doesn't respond to my suggestion, I feel like she doesn't care about my ideas.' This way, we take responsibility for our thoughts.
00:07:24.480
When we observe behaviors, we promote understanding rather than defensiveness. If someone expresses a clearly defined observation, it helps prevent misunderstandings.
00:07:43.200
For instance, saying 'When I paired with Stephanie, we spent ten minutes on a single test' lays the groundwork for a more constructive dialogue. From here, we can go on to state our feelings, acknowledging the discomfort caused by specific behaviors.
00:08:04.320
The next component is feelings, which I love discussing. Now, please raise your hand if you've experienced any of the feelings listed during pair programming.
00:08:24.120
Great! It's perfectly normal to feel various emotions when pairing. This list is not exhaustive, but based on what I see in the room, the feelings are very universal. When pairing goes well, you might feel fulfilled, excited, or engaged.
00:08:50.280
You might find yourself in that flow state, which is awesome. But when it's not going well, you might feel confused, self-conscious, or impatient.
00:09:11.160
Throughout my career, I've sought to understand why some pairing sessions felt fantastic while others were far more challenging. I found some clarity through NVC.
00:09:36.899
It's also essential to recognize that we sometimes use words that are not quite feelings. For example, saying 'I feel unsupported' is not a feeling; it’s an assessment of how others are engaging with you.
00:09:51.120
I feel disappointed because I need more support from the team. In this case, it's reasonable to feel that way, but it differs from claiming that they were unsupportive. Similarly, statements like 'I feel like the codebase is not in a good place' express opinions rather than feelings. Instead, you might say, 'I am frustrated because I believe the codebase needs improvement.' This structure emphasizes our emotional state.
00:10:33.300
Many of us, especially those of us who learned not to talk about our feelings, internalize that discomfort through cultural or social reinforcement. I know this was true for me. Recently, I've been working on recognizing my feelings more accurately.
00:11:20.040
The next component in NVC is connecting feelings to needs. For instance, the term 'hangry' is shorthand for saying, 'I feel angry because I'm hungry and need food.' We all share universal human needs, and when we experience positive emotions, it’s because our needs are being fulfilled.
00:11:59.160
This brings me to Maslow's hierarchy of needs, which determines the human needs that motivate our behavior. In the context of pairing, psychological safety is important. I shouldn't have to fear that my code will be harshly criticized during code review.
00:12:24.480
When I feel true belonging and safety on a team, I'm aware that my colleagues accept and respect me, and that I present enough as I am. This acceptance ought to be the case for everyone.
00:12:49.740
The basic needs from an NVC perspective include physical well-being, such as food and rest, psychological safety, autonomy, the ability to make decisions, and the need to find meaning in our work.
00:13:13.920
For people in the room who identify as women, asking for what we need can feel uncomfortable. However, there is no such thing as being too sensitive or too hysterical; we are allowed to voice our needs.
00:13:51.780
It's essential to bridge the gap between emotions and unspoken needs. If I feel irritated, I might say, 'I feel irritated because I want more calmness in my work.' Understanding and expressing these needs helps facilitate better communication.
00:14:13.900
Let me share an example: I could say, 'I am feeling irritated because I want a clear codebase to work with.' Recognizing underlying feelings helps connect our needs.
00:14:45.120
In the context of pairing, our individual needs may not always align. At one point, I paired with someone who needed a different pacing than I did, leading to frustration on both sides.
00:15:17.200
NVC teaches that external factors, including other people, can trigger our feelings but are not the actual cause. For example, when a manager cancels a one-on-one meeting, you may feel disappointed, but it's essential to understand that our feelings arise from our expectations.
00:15:50.960
In another instance, I paired with a different developer who preferred more guidance, and I learned the importance of aligning our expectations forthrightly.
00:16:23.320
NVC is designed to help us communicate our needs while conveying concern for the needs of others, which Dr. Marshall calls emotional liberation.
00:17:01.920
The final component of the framework is making requests clearer. The clearer we are in our requests, the better the chances for positive outcomes.
00:17:26.640
An example of vague communication is telling someone what not to do. NVC encourages us to share the precise behavior we would like to see instead. For instance, asking someone to stop taking over the pairing session might discourage them from participating altogether.
00:18:09.200
We can rephrase such statements positively and directly. Saying, 'Could you please give me a few minutes to figure this out on my own before offering a solution?' tells them what we need to succeed while maintaining openness to their input.
00:18:43.080
Requests are not demands. It’s vital to empathize when someone says no. NVC works from compassion, not force; it's important to respect boundaries and find solutions that work for everyone.
00:19:16.200
We've seen how challenging it is to express ourselves clearly using NVC tools, and the other half of this framework is empathetic listening.
00:19:40.080
When we encounter someone without these tools, we can reflect back what we've heard to indicate that we understand their feelings and concerns, applying the same four components of observations, feelings, needs, and requests.
00:20:04.500
Let's apply NVC to a scenario: Stephanie and Cam are pairing on a code review for another developer. Stephanie is sharing her screen and discussing her thoughts.
00:20:29.880
In the last ten minutes, however, Cam has said nothing. Internally, Stephanie might be feeling anxious because she hasn't heard from him.
00:21:03.020
To move past this impasse, they could utilize NVC. Stephanie could say, 'Hey Cam, I haven’t heard from you in a while. Are you feeling bored and needing something different from this pairing session?'
00:21:25.540
This gives Cam the opportunity to express his feelings, leading to a better understanding of each other's needs and allowing them to course-correct.
00:21:51.740
In another scenario, Stephanie and John are pairing on a project where Stephanie feels nervous due to her unfamiliarity with the codebase. John asks for Stephanie's input.
00:22:23.200
Instead of fearing the wrong response, Stephanie could say, 'I'm actually feeling a bit nervous because this framework is outside my comfort zone. Could you share what you had in mind first?' This request has the potential to create more productive dialogue.
00:22:51.960
To conclude, remember that power dynamics can affect pair programming experiences, especially with variations in skill levels and identities. It's crucial to promote an environment of psychological safety.
00:23:22.760
Supporting people who may feel anxious or insecure provides foundational support needed to succeed in team dynamics.
00:23:49.740
As we discuss how NVC can improve interpersonal communication, keep in mind your own mental health and well-being. Communicating compassionately does not mean compromising your safety.
00:24:11.340
I possess a checklist for pairing if you need guidance on getting started or resetting a relationship with someone you've paired with in the past. It encourages open discussion.
00:25:05.580
Being kind, honest, and clear in your needs during pair programming elevates the experience significantly through better communication. I sincerely hope you can find at least one thing to relate to within this conversation.
00:25:45.240
Lastly, I want to thank nwnb.rb for the opportunity to give a first version of this talk. If you'd like to find out more about NVC, I highly recommend exploring Dr. Rosenberg's work along with resources from the Center for Nonviolent Communication.
00:26:40.140
Thank you for your time and attention. I'm looking forward to continuing the conversation on pair programming.