Software Design

Summarized using AI

What is Developer Empathy?

Tim Tyrrell • April 12, 2021 • online

In the talk "What is Developer Empathy?" presented by Tim Tyrrell at RailsConf 2021, the focus is on the importance of implementing empathetic behaviors within software development teams. Developer empathy is essential for fostering psychological safety, which allows team members to feel safe sharing feedback, embracing failure, and engaging in risk-taking behavior. Tyrrell emphasizes that leadership plays a pivotal role in creating frameworks for equitable practices that promote a culture of learning and emotional safety. Key points discussed include:

  • Defining Developer Empathy: Tyrrell describes developer empathy as understanding and valuing the experiences and emotions of fellow team members, which is critical for a healthy team environment.

  • Psychological Safety: He references Amy Edmondson’s definition of psychological safety, which is the belief that interpersonal risk-taking is safe within a team. Teams with psychological safety encourage curiosity and treat failures as part of the learning process.

  • Navigating Power Dynamics: He discusses how his positional power as an instructor creates a responsibility to empower students and acknowledge their potential discomfort, thereby facilitating a collaborative learning environment.

  • Empathy vs. Sympathy: Tyrrell draws on Brené Brown’s distinction between empathy (feeling with others) and sympathy (feeling sorry for others), highlighting how genuine empathy is vital for connection.

  • Actionable Steps for Developers: He presents steps for developers to cultivate empathy, such as meeting people where they are, embracing vulnerability, and actively seeking feedback.

  • Strategies for Leadership: Engineering leaders need to model empathetic behavior to set the cultural tone. They should prioritize diverse hiring practices, encourage open discussions about personal experiences affecting work, and build norms for constructive feedback.

  • Daily Practices for Developers: The talk underscores the importance of practices like writing tests to ensure code quality, conducting thorough code reviews, and seeking help when needed, all while maintaining clarity and context in communication.

  • Final Thoughts: Empathy in development isn’t just a soft skill; it leads to better code quality, higher retention rates, and a healthier work environment.

Tyrrell concludes by urging attendees to actively consider how they can foster developer empathy within their teams, asserting that it is essential for nurturing both personal growth and team productivity.

What is Developer Empathy?
Tim Tyrrell • April 12, 2021 • online

Dev teams should employ empathetic patterns of behavior at all levels from junior developer to architect. Organizations can create the safety and security necessary to obtain a high functioning team environment that values courageous feedback if they simply have the language and tools to do so. How can leadership provide a framework for equitable practices and empathetic systems that promotes learning fluency across the team?

I have ideas. Find out what I've learned through countless hours of mentorship, encouragement, and support both learning from and teaching others to code.

RailsConf 2021

00:00:05.359 Hello RailsConf and welcome to my talk on developer empathy. My name is Tim Tyrrell.
00:00:11.820 My pronouns are he/him, and I'm an instructor at the Turing School of Software Design.
00:00:17.340 First off, let's start with a little humility. I'm not an expert at this; I'm working on it every day.
00:00:24.480 I am striving to instill the concept of developer empathy in the developers that I have the privilege of training and guiding at Turing.
00:00:30.660 I don't know everything, but I've learned quite a bit over the course of my career, and I'm here to share those experiences with you.
00:00:42.300 The engineering world that I've been privileged enough to be a part of lacks even a basic understanding of what developer empathy looks like.
00:00:50.460 Engineering leaders and developers at large need a framework and actionable steps that they can implement to address this.
00:01:05.100 So who am I? As you know, I'm an instructor at Turing School; I'm an educator.
00:01:11.280 I attended Turing as a student in 2017 and 2018, which really changed my life.
00:01:17.280 So now I work as an instructor, and the most important aspect of my job is to create a space centered around inclusive teaching practices and psychological safety.
00:01:23.340 More on psychological safety to come.
00:01:28.680 At Turing, we teach foundational concepts in Ruby; we teach object-oriented programming. Once the students have a foundational knowledge of OOP within Ruby, we transition to Rails and application development.
00:01:43.259 Our goal is to help students land their first job, whether they are changing careers or beginning their careers as developers.
00:01:48.780 We are the first code school to become accredited—shout out to us! Additionally, at Turing, I also write software for our internal apps.
00:02:01.200 However, I don't have enough time to give a technical talk of great interest at this time.
00:02:07.259 I think the last thing I worked on involved switching a couple of steps in our state machine; not particularly interesting or worth your time.
00:02:20.040 But also, I am a former nanny, so I used to babysit children.
00:02:28.440 I want to emphasize that I am more than just my job title. I am a partner, a snowboarder, and I have many interests outside of work.
00:02:35.400 I want to make sure that you’re thinking of me as a whole person and not simply my job title. Neither are you, and neither are your coworkers.
00:02:54.360 Speaking of my dog, Frankie, this is a photo of her. She’s a dog and also a political strategist. This was an important photo helping us get a 'yes' vote on 2J, which reverted the ban on pit bulls in Denver.
00:03:11.459 I have identity markers of power and extreme privilege. I am white, a man, cisgender, heterosexual, neurotypical, and college-educated.
00:03:41.820 It's important to recognize the traditional student-teacher power dynamics in place in my classroom. By default, I have control over student outcomes, which creates a constant power dynamic that must be recognized and navigated with grace.
00:04:09.540 My privilege, along with the power of traditional student-teacher dynamics within Western society, creates a lopsided and intimidating environment on day one of my classes, and I must work to dismantle it every time we step into the classroom.
00:04:22.440 It's something I'm aware of and it's important when we talk about developer empathy because I need to know that my students, on day one, may be feeling somewhat inferior and intimidated.
00:04:39.900 So it is my job to be mindful of that power I have and to transfer that power back to those students.
00:05:22.440 Now, let's explore the idea of developer empathy and psychological safety. Researcher, professor, and author Amy Edmondson introduced the term psychological safety in June 1999, defining it as a shared belief held by members of a team that the team is safe for interpersonal risk-taking.
00:05:43.919 I would build upon this to say that in a team where psychological safety is present, curiosity is welcomed, and rewarded. Teams are more interested in getting it right than in being right.
00:06:04.320 We are taught in these teams to welcome and embrace failure as part of a greater learning process.
00:06:10.199 Psychological safety is a byproduct of continuous empathetic behavior between individuals on a team. Researcher, public speaker, and best-selling author Dr. Brené Brown said that empathy fuels connection, while sympathy drives disconnection.
00:06:28.080 What does that mean? The idea of empathy as opposed to sympathy is that sympathy can be characterized by an attitude of 'I feel bad for you.'
00:06:39.060 Rather, empathy is about feeling with people. It acknowledges that I’ve been there before; I imagine that what you are feeling is tough. I am willing to sit in this discomfort with you.
00:06:57.240 I won’t make it about me; instead, I’ll just say that I know this is hard for you, and I am here to support you.
00:07:03.419 It’s a vulnerable choice to venture into the space that another person is in and sit supportively with them. However, we also need clearly defined boundaries between people in a working relationship.
00:07:27.780 We have to remember that empathy is not simply about finding someone at work to commiserate with; that’s not productive.
00:07:40.620 Instead, it is about the willingness to feel alongside someone else, regardless of how they are feeling. This willingness to engage is notably important when they might be experiencing feelings of pain or discomfort.
00:08:03.060 Dr. Ibram X. Kendi stated in a 2019 interview that it's critical for white people to understand how racism operates from the perspective of people of color.
00:08:26.640 It’s challenging to see things from the standpoint of others, but it is vital for developing empathy.
00:08:46.320 Although it may be challenging to consider someone else's perspective, just because it’s difficult does not mean we shouldn’t try.
00:09:04.800 It’s important to recognize an unavoidable gap in our understanding and to actively listen to people who do not share our identity markers to fill that gap. This is crucial to genuinely understanding another person’s truth, pain, and experiences.
00:09:51.600 We must first accept their truth as the truth, especially when it diverges from our experiences. Organizational psychologist Adam Grant points out that empathy is not hardwired; it’s a soft skill that can be developed.
00:10:21.720 That is encouraging—it means that anyone can cultivate this skill. Grant also says one of the things we can do is ask people what their biggest challenges are and actively pay attention to what causes them pain.
00:10:59.460 This shows that we care about them. A principle I often employ in the classroom is to meet people where they are at. I don’t know what someone is going through that day. They might have a lot going on outside of my classroom.
00:11:43.500 So, it's my job to meet them where they are. It's my job to listen to their experiences, to their truths, and to seek understanding while avoiding judgment.
00:12:05.640 It’s easier said than done, but it’s a work in progress. I need to be willing to sit with them in their discomforts and say, 'This is okay. We're going to get through this together.'
00:12:36.420 The goal is for them to know that they matter to me. We need to be able to do this while maintaining boundaries. What’s on the line here? What can we gain or lose through developer empathy?
00:13:06.060 Some of the benefits of practicing developer empathy include retention, trust, increased productivity, and a reliable code base. By incorporating these practices, our code will become better, more robust, more adaptable.
00:13:47.760 Moreover, one of the most significant achievements through developer empathy is psychological safety, which leads to greater creativity and productivity.
00:14:06.420 Conversely, without developer empathy, we can encounter burnout, gossip, silence, power struggles, blame, lack of accountability, stagnation, and ultimately, a brittle code base.
00:15:10.620 A fragile code base does not endure and teams that lack empathy will not write code in a way that fosters its longevity. Let me illustrate this with a story from my classroom.
00:15:51.420 One of the first tasks I undertake is to acknowledge my own power. As a white man, my experiences are limited by those identity markers; I haven't faced much racism or sexism. My identity is backed by structural and systemic power throughout most of the world.
00:16:58.859 As I mentioned, my job is to seed power back to my students to facilitate psychological safety and collaboration. I must do this intentionally and frequently.
00:17:51.480 One of the ways we guide our students to view our classroom is that I am the team lead. Yes, I have more experience, but I won't always have the right answer. I'm most interested in our collective understanding.
00:18:23.220 In class, I explicitly state expectations, including that I expect us all to fail and that failure is a part of learning.
00:19:01.740 At the end of each lesson, I remind students that retention of subject matter increases when they engage by offering incorrect answers first.
00:19:31.380 One main tenet I maintain is that I consistently admit when I don't know something. Being comfortable admitting both my knowledge and ignorance reveals my process for gathering and applying knowledge.
00:20:04.920 Another expectation is that this space is collaborative. We thank each other for asking questions that address gaps in understanding.
00:20:30.359 We don't interrupt one another; we listen intently, repeat questions for clarity, and offer encouragement, regardless of whether we’re correct.
00:21:12.540 This intentional process must be explicit, especially now that we are operating in remote environments.
00:21:37.560 I aim to create an inclusive space for all identities. If I see microaggressions or blatant threats to psychological safety, I will call them out promptly and correct them as an ally.
00:22:05.520 I'm not free of implicit bias and can also be guilty of a microaggression. When that happens, I welcome it being called out.
00:22:24.780 This space becomes more inclusive when you do, helping me improve as an educator on my lifelong journey of anti-racism, anti-sexism, and equitable teaching.
00:22:45.960 In my classroom, feedback is viewed as a two-way street, a gift we both give and receive. Student processes will be critiqued, and students are encouraged to critique our environment and material presentation.
00:23:23.280 One way to understand students' needs is to ask, 'What does support look like for you during this current module?'
00:23:57.300 Support for individual students will often look different, and students should have the chance to learn from instructors who share some of their identity markers.
00:24:31.680 We allow students the autonomy to choose which instructor they want to check in with for one-on-ones.
00:25:02.640 We need to set clear boundaries with our students from the beginning: you can tell me anything, or nothing—whatever you're comfortable with.
00:25:53.280 If you do tell me something, I might not be the best person to support you in all situations, but I'll find someone who can.
00:26:21.480 Class structures should be malleable and take various forms to support different learning styles, especially in remote environments.
00:27:07.560 How can we expect a room full of students to fully benefit from watching a single coding demonstration if they are at different ability levels?
00:27:40.200 How can we ensure we're effectively leveraging our classroom to meet each student where they are?
00:28:18.120 I continually ask myself this, as it guides how I set up my classroom to align with Turing’s mission statement.
00:28:54.600 To transition, let’s now consider what this looks like on a development team.
00:29:02.190 I find that asking the question 'What does support look like for you?' prompts introspection on how we can thrive as a team.
00:29:51.339 We need to approach development culture top-down, as culture is set from the top leadership down, not the other way around.
00:30:16.739 It's essential for leaders to recognize their power to define team culture.
00:30:38.220 A team will reflect the values that you practice, not just the values you profess.
00:30:55.200 One way to embody this reality is to recognize your implicit bias and the limitations of your perspective.
00:31:12.420 Accept this truth, and be transparent about it. Diversify your team to include individuals with experiences and perspectives you might lack.
00:31:38.760 Stop hiring people who look just like you; instead, bring in a diverse team to help you refine your products, processes, and ideas.
00:32:02.160 Moreover, don’t ignore the world outside of work; it matters and affects your employees.
00:32:44.880 Whenever traumatic or frightening events occur, your team will closely observe your reactions. As a leader, it’s your responsibility to address these events and validate the emotions they invoke.
00:33:12.960 Supporting your team will look different depending on their individual reactions.
00:33:50.460 Some may need to take a break; others may be inclined to work to cope and distract themselves. Normalize the diversity of reactions and allow space for individual coping strategies.
00:34:30.540 Establish empathetic team norms by entering each situation with curiosity. Acknowledge that we may fail at times, but remind the team that taking risks will lead to both growth and learning.
00:35:38.799 Cultivate a 'we' rather than 'me' attitude; culture is defined by collective objectives.
00:36:38.460 Publicly recognize great work, express gratitude for hard work, and encourage teammates by acknowledging the stress they may have experienced.
00:37:36.120 It’s equally important to deliver critical feedback in private, ensuring it is specific, actionable, and kind. Avoid passing judgments or blame, even in cases of failure.
00:38:35.520 As an engineering leader, lean into your own humility and foster a culture of iteration and learning. The focus should be on working to get it right rather than being right.
00:39:30.840 Using survey data is one way we do this at Turing; we gather feedback at the end of each Sprint to gauge how team members feel about their empowerment and inclusion.
00:40:39.600 Survey questions need to promote awareness around practices of diversity, equity, and inclusion since such practices are essential to creating a safe, collaborative space.
00:41:57.480 Before these practices can take shape, assess your team's current state. Ask leading questions during stand-up meetings or incorporate them in your surveys to encourage reflection on personal responsibility for inclusivity.
00:43:41.520 Seek feedback from other managers or leaders on actively promoting developer empathy to create awareness around practices of inclusivity.
00:44:56.040 In rethinking meetings, consider if the meeting timing accommodates everyone’s productivity and whether the information could be delivered asynchronously. Is everyone required to attend?
00:45:59.040 Reflect on who is dominating the conversation and assess whether their voices are coming from similar power markers. As a leader, create space for less dominant voices to be heard.
00:46:51.000 If you call a meeting, ensure it’s not simply to push your agenda; genuine dialogue requires input from everyone. During retrospectives, embrace the potential for varying opinions; it’s crucial to achieve consensus, even if it’s not easy.
00:47:49.020 Utilize tools like survey data to reflect on team alignment and expectations, which can guide your discussions.
00:48:29.520 On the topic of exponential growth, let’s engage with the growth mindset: Team members today won't necessarily be the same tomorrow, nor will they be in six months.
00:49:20.640 Encouragement and constructive feedback can catalyze professional development beyond what we might initially expect.
00:50:14.340 Support autonomy in choosing tasks that they enjoy, as doing so can increase retention rates and overall engagement. Harvard research indicates that providing autonomy leads to productivity and retention.
00:51:41.460 Understand that not every developer is cut out to be a leader or should always practice daring leadership. Allow your colleagues the space to disengage from work outside of work hours.
00:52:32.520 We must honor that work is just one part of a person’s life and encourage a healthy work-life balance.
00:53:19.200 It's crucial for everyone, regardless of their title, to define their working style, including their preferences for collaboration and communication.
00:54:24.600 In my role at Turing, we emphasize a DTR, or 'Define the Relationship,' which allows teams to establish their norms and expectations together.
00:55:37.320 Creating these norms helps ensure team members stay within their limits, and it makes certain everyone knows the expectations in place.
00:56:43.380 Be clear and reasonable about deliverables and working agreements. Recognize that everyone operates at different levels, so delegating effectively is crucial.
00:57:47.500 To maintain team dynamics, regularly engage in conversations about feedback, whether it's formal or anonymous. Employees should be encouraged to voice their concerns or suggestions.
00:58:48.400 Implementing a problem box encourages employees to speak up about issues impacting team dynamics. You need to model how to receive feedback; show that you appreciate any input.
00:59:58.080 Show gratitude for feedback, and explain how you plan to address it moving forward. As leaders, we need to embody daring leadership and empathy, recognizing that our teams deserve acknowledgment and respect.
01:01:01.200 To sum up, as leaders, modeling empathy and practicing it daily will help instill the same values within our teams. Each team member needs to feel valued for their whole self.
01:01:32.400 Switching gears, what does developer empathy look like in daily practices? First and foremost, of course, it’s about writing tests.
01:01:56.640 Tests will document functionality and help ensure your code isn’t broken. Writing tests also demonstrates empathy for users who will inevitably make mistakes.
01:02:23.880 Review your own PRs, acknowledging that you care about the quality of your code, and don’t rely solely on teammates to catch your mistakes.
01:02:53.760 Adding context to PRs by including screenshots or screencasts can enhance understanding for reviewers and facilitate communication.
01:03:23.760 Screencasts can also bridge the gap with non-technical team members by providing them with insights into recent updates.
01:04:20.520 Another significant practice is asking for help. Encourage a culture where asking for assistance is normalized.
01:05:03.960 Developers should feel supported within a psychologically safe environment and avoid unproductive struggles. However, it’s also important to ensure that help is sought at the appropriate moments.
01:05:57.120 When asking for help, be brief and provide context. Adding screen recordings can also significantly help clarify issues.
01:06:43.560 Always reread your message before sending; it may spark insights into your issue or even lead to a solution before you ask for help.
01:07:09.240 Pairing is another invaluable activity. If you're a more seasoned developer, dedicate time each week to pair with junior developers to help guide them through their coding practices.
01:08:08.760 You’ll not only help them develop but also have an opportunity to observe their practices and identify areas that may need improvement.
01:09:18.240 When introducing them to new tools or concepts, encourage them to articulate their thought processes and understanding of technical language.
01:10:14.880 Foster an environment where junior developers feel encouraged to ask about effective coding practices and the rationale behind code implementation.
01:11:08.760 Engage with your colleagues and always look for opportunities to learn from one another, sharing valuable insights that may improve your coding practices.
01:11:55.920 Ultimately, as developers, we are responsible for ensuring our collective growth through support and encouragement.
01:12:42.960 Thank you for your time today! I welcome any questions or interactions, whether during Q&A or afterward. I'm available at @timotmitchell on most social media platforms.
01:13:28.440 I encourage you to consider developer empathy deeply and take intentional actions to encourage such practices within your team.
01:13:49.560 Thank you once again!
Explore all talks recorded at RailsConf 2021
+65