Talks

Empathetic Pair Programming with Nonviolent Communication

Empathetic Pair Programming with Nonviolent Communication

by Stephanie Minn

In her talk titled 'Empathetic Pair Programming with Nonviolent Communication' at the Blue Ridge Ruby 2023 event, Stephanie Minn explores how nonviolent communication (NVC) can enhance collaboration in pair programming. She emphasizes understanding feelings, empathy, and clear expression as essential components of effective communication within a coding partnership. This starts with observing behavior without judgment, followed by expressing feelings connected to unmet needs, leading to clear, constructive requests.

Key Points Discussed:

  • Personal Journey with Feelings: Stephanie shares her struggle with emotional expression and how it influences her work in pair programming.
  • NVC Framework: Developed by Dr. Marshall B. Rosenberg, NVC encourages authentic connections by reducing assumptions and blame. It consists of clear expression and empathetic listening.
  • Observations: Effective communication begins with describing specific behaviors without criticism to promote understanding. Examples are given on how to avoid labeling or generalization in observations.
  • Feelings and Needs: Recognizing genuine feelings often tied to unmet needs is crucial. Stephanie highlights the importance of articulating personal feelings and unmet needs to foster empathy and connection.
  • Power Dynamics in Pairing: The awareness of power dynamics that exist in the workplace, particularly for marginalized groups, is vital for creating psychological safety.
  • Requests: Making clear, specific requests instead of negative commands encourages a collaborative atmosphere, enhancing mutual understanding.
  • Practical Scenarios: Stephanie presents relatable pairing situations to illustrate how NVC can clarify misunderstandings and improve collaboration.
  • Self-Reflection and Continuous Learning: She stresses the need for ongoing practice in NVC and the importance of feedback mechanisms to continually improve the pairing experience.

Conclusions/Takeaways:

  • Pair programming can be better when participants actively work on clear expressions of feelings and empathetic listening.
  • Effective communication leads to stronger connections and more productive programming sessions.
  • Self-reflection, practice, and a willingness to address feelings and needs can transform professional interactions into fulfilling experiences.
  • Learning and applying NVC takes time and continuous effort, but can significantly improve workplace dynamics.
00:00:04.839 My name is Stephanie Minn, and I love to talk about feelings. In fact, I'm a little nervous today because I'm trying to go by memory. I wasn't always this way. A therapist once told me that she noticed I had a hard time expressing my emotions. As a recovering overachiever, I was devastated to learn about this apparent deficiency of mine and naturally became obsessed with figuring out how to excel in feelings.
00:00:14.400 I also enjoy pair programming and think a lot about it. I'm assuming most folks in this room have pair programmed before or at least know what it is. When I talk about pairing, I mean collaborating closely with another developer on any sort of development-related task like spiking, debugging, or writing documentation. In addition to writing code, I have personally encountered the many highs and lows of pairing. I have been that person sitting silently while my partner does all of the talking and typing. I have paired with people who dive straight into the deep end and need some reeling back in. I have also received constructive feedback to better accommodate my partner's needs.
00:00:35.520 Through all of these experiences, I wanted to give this talk because I believe that pairing can be better, especially when it's not going as well as we would like. So, to do that, let's talk about feelings, empathy, and nonviolent communication. This is my copy of the canonical book on NVC. It looks very self-help-y and was written by Dr. Marshall B. Rosenberg, who developed the approach in the 1960s. Dr. Rosenberg was a facilitator, educator, and activist, and he mediated conflicts between groups such as Israelis and Palestinians.
00:00:58.760 I figured if he could navigate those kinds of conflicts, he could teach me a thing or two about my own communication struggles. To either your relief or disappointment, I will not be incorporating puppets into my talk today, but I will share his intentions, techniques, and language. I think the really radical thing about nonviolent communication is how it helps us shed our assumptions, judgments, and blame in favor of more authentic connections and understanding.
00:01:20.879 This framework helps us find alternative approaches to those things that cause us pain when we communicate. I want to emphasize that I'm not an expert on NVC or even a certified trainer. It's something I continually practice, and I don’t always get it right. If there are any NVC practitioners in the room, I hope I do it justice. Some of you may be skeptical about incorporating feelings into the workplace, but in my opinion, the real tragedy occurs when your culture looks devoid of feelings.
00:01:44.320 I realized that NVC, which I've been using in my personal life, could apply to pairing. Pairing is not just collaborative; it's intimate. It makes us vulnerable to all the awkwardness and misunderstandings that come with close connections with another human. However, it also allows us to reap the rewards of shared laughs, joys, and breakthroughs, and NVC can help us navigate those tricky conflicts so we can spend more time reveling in the good parts of pairing.
00:02:01.480 The nonviolent communication framework can be broken into two halves. On the left, we have clear and honest expression, and on the right, we have empathetic listening. Each part can break down into four components: observations, feelings, needs, and requests. Today, we're really going to focus on the left-hand side of expression to learn about these components, and hopefully, you'll also gain insights into applying them to listening to others.
00:02:29.840 The first component is observations—specifically, describing the behavior that's causing us pain, but without any criticisms or judgments. By describing only what we can see or hear, others are less likely to resist what we're saying. For example, saying 'Stephanie is too stressful to pair with' labels Stephanie and doesn't describe her behavior that might lead to feeling stressed. Instead, we could say, 'When I pair with Stephanie, she moves through her editor faster than I can read,' which details the behavior without casting blame.
00:02:58.720 This observation helps us understand the source of stress without making an evaluative claim about Stephanie. Similarly, if someone thinks, 'I don't think Stephanie cares about my ideas,' that implies we know what she thinks or feels, but we are not mind readers. A better way to express this might be, 'When I see Stephanie resolving my comments without responding or making the suggested changes, I feel like she might not care about my ideas.' This approach explains our feelings based on our observations and opens up avenues for clarification rather than assumptions that lead to defensiveness.
00:03:24.880 Another example might be saying, 'Pairing with early career developers is too slow.' This is a generalization and may not hold true. Instead, we should frame it in a specific context: 'When I paired with Stephanie, we spent 10 minutes on a single test, and that was too slow for me to finish my work.' Grounding observations in specific instances clarifies the situation rather than casting a broad judgment.
00:03:52.520 Next, we have feelings, which I need a little audience participation for. Could you please raise your hand if you felt any of the feelings listed while pairing? A lot of us appear to have experienced those feelings, which is great! Now, what about feelings like anxious or overwhelmed? This list of feelings isn’t exhaustive but seems pretty universal. When pairing goes well, it feels good; you might be in a flow state, feeling curious, engaged, or excited. However, when it doesn't, you might feel anxious, frustrated, or bored.
00:04:07.680 Throughout my career, I have been curious about why some pairing sessions feel fantastic while others do not. I found answers in NVC, which we will explore soon. First, I want to discuss the difference between words that we think are feelings but aren’t quite. For example, 'I feel unsupported on this team' reflects an assessment of the other person, and it can easily be heard as criticism. Digging deeper for the underlying emotion can help clarify. It could be better expressed as, 'I feel disappointed because I need more support from this team,' clearly connecting the feeling to the unmet need.
00:04:29.160 Keep in mind that phrases like 'I feel like' or 'I feel that' often convey thoughts rather than feelings. For example, saying 'I feel like the code base is in a bad place' reflects an opinion rather than an emotion. If we were to reframe that, we could say, 'I am irritated because I think the code base is in a bad place.' This shifts it from an evaluation to an expression of genuine feeling, illustrating irritation as a shared human experience that others can empathize with.
00:04:55.080 Many of us have internalized these tendencies to talk around our feelings due to cultural and social reinforcement. As a child of Chinese immigrants, I performed a lot of work and reflection, with the help of several great therapists, to rewire how I communicate—especially when I’m activated. I frequently refer back to a list of feelings to identify what I’m experiencing. Vulnerable sharing encourages vulnerability from others, creating a safe space for genuine communication. The next component connects our feelings to needs.
00:05:29.200 For example, 'I feel angry' is shorthand for saying, 'I feel angry because I’m hungry and need food.' Understanding our feelings can often show unmet needs. We all share universal human needs; when we feel good, our needs are likely being met, and when we do not, it’s often because our needs are unmet. This connects to Maslow's hierarchy of needs, representing what drives human behavior. A crucial aspect here is safety, which includes psychological safety critical to effective pairing.
00:06:02.799 Next, I want to touch on power dynamics. Pairing does not occur in a vacuum—power dynamics exist along lines of race, gender, age, and authority. If you're in a more privileged position, you must actively mitigate these dynamics. When psychological safety does not exist in your pairing session, it will not work for everyone. We need to be diligent about supporting marginalized folks in tech who may already have anxieties about belonging and feel they are good enough.
00:06:28.640 Pairing involves formative moments that can significantly impact our careers, including whether we stay in the industry. I should never have to overanalyze something a coworker said or fear harsh feedback. When I feel true acceptance and belonging on a team, I know that how I show up to work is good enough, and that should be the case for everyone. It's vital to emphasize that while you can strive to use NVC and empathize, it is equally important to recognize when a partner is not interested in building trust and compassion.
00:06:56.160 There are universal needs that extend beyond safety. We need physical well-being, food, rest, a comfortable space, autonomy to make our own decisions, play, and peace to help counter urgent priorities and firefighting in our work. For individuals socialized as women, it can be especially challenging to acknowledge and ask for what you need. There is no such thing as being overly sensitive or hysterical—only a systemic structure that compels us to believe that our needs do not matter, which is simply not true.
00:07:21.960 Returning to our earlier example, we noted 'I feel irritated because I think the code base is in a bad place.' That irritation can connect to needing to extend functionality without making so many changes. Central to this is the need for calmness or ease in our work. Here are some more specific needs related to pairing: I once hopped on a screen share to help another developer debug and realized our needs didn't align. I wanted to unblock them quickly so I could return to my work, but they desired a more collaborative approach. This misalignment led to frustration on their end, resulting in them snapping at me, which surprised and hurt me.
00:07:46.920 I blamed myself for that pairing session for a while, but now I understand it better. The conflict likely arose because we weren't clear about our needs. Had we communicated what we wanted from the session upfront, I believe we could have avoided that frustration and hurt. NVC explains that external factors can stimulate our feelings, but they are never the root cause. If your manager cancels a one-on-one meeting, you might feel bummed if you needed that discussion, but relieved if you needed time for focused work.
00:08:17.680 Our feelings emerge from the specific needs and expectations we have in given moments. Later, I paired with someone else who appreciated direction; they valued the efficiency of getting direct instructions, which was different from my previous experience. NVC is designed to assist us in communicating our needs while showing concern for others' needs. This brings us to our final component—making requests.
00:08:44.480 When making requests, clarity is crucial. The clearer we are, the more likely we will receive a positive outcome. This means avoiding ambiguous or vague language. A common pitfall is communicating negatively—telling someone what not to do instead of specifying the behavior we would like to see. For instance, saying, 'Please stop taking over the pairing session,' could lead someone to stop participating entirely. Instead, we could say, 'Could you please give me a few minutes before offering a suggestion? I need to figure this out on my own.'
00:09:04.640 This approach conveys that we value their input but require something different without implying they’ve done something wrong. A helpful resource for managing these interactions is a platform called NoHello.com, which encourages coworkers to refrain from direct messages without context. We can rephrase such requests to clarify our needs and help each other prioritize better.
00:09:29.360 Here's another scenario ripe for misinterpretation: 'This code should be refactored.' When I see a comment like this, I don’t know the intention behind it; sometimes it's merely an expression of frustration. Instead, we can focus on specific actions to clarify: 'Would you be open to discussing different approaches for this feature? I want to support you in choosing the best one.' Oftentimes, people are willing to agree to your request once they have the appropriate context.
00:09:51.440 When that doesn’t happen, remember that requests are not demands. According to NVC, the most effective way to express a genuine request is to empathize with the other person when they cannot meet that request. This approach is only successful when coming from a place of compassion—not coercion. It’s perfectly acceptable for someone to say no, and when that occurs, we can approach it with curiosity about their needs, values, and boundaries.
00:10:16.520 Once we understand each other better, we can often find alternative solutions that work for everyone involved. This brings us to the conclusion of the four components. We've observed how challenging it can be to express ourselves clearly and honestly. It requires self-empathy and taking responsibility for our feelings rather than offloading them onto someone else. While today we have primarily focused on expression, the other side of the NVC coin is empathetic listening.
00:10:41.640 People often seek empathy and connection, and for many, simply hearing their feelings and needs reflected back is sufficient. At this point, let’s look at some real-life scenarios to demonstrate how this works. In scenario one, we have Stephanie and Cam pairing to review a pull request. Stephanie shares her screen and talks about her thought process but has not directly asked Cam for input. As a result, Cam has not said anything in the past few minutes.
00:11:09.280 In this situation, Stephanie might be reflecting internally, 'When Cam stayed quiet, I started feeling anxious and just kept talking. I want to be a good mentor for them.' Conversely, Cam may be feeling overwhelmed and thinking, 'Stephanie is moving too fast, and I can’t contribute like this.' This leads to a stalemate as neither party understands the other’s feelings. To break this impasse, one of them could initiate a conversation based on NVC principles.
00:11:42.800 For example, if Stephanie suspects something is off, she might say, 'Hey Cam, I haven’t heard from you in several minutes. Are you feeling bored such that you need something different?' This question allows Cam to clarify their situation: 'I’m just overwhelmed, not bored.' Then, Stephanie can respond positively, saying, 'Thanks for sharing! Would you like to take a break or review this pull request together?' With this knowledge, Stephanie can ease her anxiety and provide an alternative strategy that accommodates both their needs.
00:12:04.800 It's also beneficial to express gratitude when someone opens up, further reinforcing a culture of vulnerability and concern. In another example involving Stephanie and John, they pair on a project unfamiliar to Stephanie. While John offers to let her take the lead, Stephanie feels anxious about possibly saying the wrong thing because she wants to make a good impression and needs more guidance in an unfamiliar codebase.
00:12:29.080 If John is a senior engineer and unaware of Stephanie’s anxiety, she would need to proactively express her feelings. She might say, 'I’m a little nervous right now because this is outside my comfort zone. Could you help guide me as we go along?' This request offers John an understanding of her situation and opens the door to tailored guidance, fostering a collaborative atmosphere. If they can establish clear communication about their respective needs, they can work better together.
00:12:56.200 Here's a checklist for effective pairing created by Thoughtbot. If you need guidance getting started or resetting an existing pairing relationship, you can find it online. Most importantly, taking 5 to 10 minutes at the end of each session for a mini retro can help celebrate successes and invite low-stakes feedback. I think self-reflection should also be part of this process. It can take time to digest what happened during a pairing session, and you may need to process it alone.
00:13:21.680 I often mention that I'm open to giving or receiving feedback asynchronously if my partner prefers, keeping the door open and encouraging vulnerability over time. Making even small adjustments to better meet each other's needs can significantly improve our experiences at work. When I first discovered NVC, I was naively optimistic it would solve all my interpersonal problems immediately. However, I learned that unlearning years of imperfect communication takes time, thoughtfulness, and practice, even with the right tools.
00:13:53.880 I gave this talk back in November, and since then, I have struggled to embody empathy when I think I’ve been wronged. I often fumble in my application of NVC, but I continue to try because I believe it leads to pairing sessions that are enjoyable and fulfilling. If you’d like to learn more, I encourage you to check out the Center for Nonviolent Communication and Dr. Marshall B. Rosenberg, whose work inspired much of this content.
00:14:17.720 I hope you were able to relate to something from the last half hour. For me, pairing sits at a fascinating intersection of our feelings about work—both generally and in the moment—as well as how we feel about others and our fundamental values. There's much to explore within these themes, and I would love to hear about your pairing experiences. Feel free to chat with me or reach out via email at [email protected]. Thank you for your time!