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!