RubyConf Mini 2022

Empathetic Pair Programming with Nonviolent Communication

Empathetic Pair Programming with Nonviolent Communication

by Stephanie Minn

The video titled "Empathetic Pair Programming with Nonviolent Communication" features Stephanie Minn discussing how to enhance the collaborative practice of pair programming through the principles of Nonviolent Communication (NVC). Stephanie conveys the dual nature of pair programming as both an intimate and challenging process, emphasizing the need for emotional awareness and effective communication. Key points include:

  • Introduction to NVC: Nonviolent Communication, developed by Dr. Marshall B. Rosenberg, offers a framework for fostering empathy and understanding in conversations.
  • The Emotional Landscape of Pair Programming: Stephanie describes various emotions experienced during pair programming, from frustration to joy, and highlights the importance of recognizing and expressing these feelings.
  • Components of NVC: The four key components of NVC are observations, feelings, needs, and requests. Each component aids in expressing oneself without blame or judgment.
  • Making Clear Observations: Stephanie emphasizes the importance of stating observations without evaluations or judgments to promote understanding and reduce defensiveness in communication.
  • Connecting Feelings to Needs: Individuals are encouraged to articulate their feelings and connect them with their fundamental human needs, which helps build a sense of belonging and safety.
  • Making Requests: Clear and positive requests are important for effective communication. Stephanie describes how vague statements can lead to misunderstanding and stresses the need to articulate specific behaviors desired from peers.
  • Empathetic Listening: The second half of NVC involves listening empathically without attributing blame, which fosters constructive dialogue and improves working relationships.
  • Real-World Scenarios: Throughout the talk, Stephanie provides examples of how to implement NVC in common pair programming scenarios, illustrating the potential for transformative communication to alleviate tensions and misunderstandings.
  • Conclusion: The video concludes with reminders to prioritize psychological safety in pair programming settings, the significance of identifying personal emotions and needs, and the broader implications for teamwork dynamics beyond technical tasks. Stephanie encourages viewers to explore the foundational principles of NVC to enhance their collaborative experiences.

Overall, the insights shared in this talk are not only actionable for developers but seek to promote a culture where emotional expression and empathy can thrive in technical environments.

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.