 Hey everyone, thanks a lot for joining. It's my first time in Vancouver and first time at CityCon as well, so great weather, the sun is out, I'm really happy because I live in London, so, you know. Anyway, today we're gonna talk about developer empathy, a little bit about me, my name is Kunal and I work as a DevRel Manager at Civo. I'm the founder of VmcDev, this is a community I started during the pandemic and CNC for Ambassador, been involved in communities since I can remember from my freshman year and yeah, really excited. Let me start with the story. So, I graduated last year, but I was interning at this company and we had a task, like one of the designers, they had to build a website and make it look great and stuff, but they made the website look great but it was hard to use. So this made it difficult for people to find, you know, what they were looking on the website and even when I raised some of the concerns, it was ignored because I was an intern, they're like, oh, what do you know? Anyway, and as the project went on, they started testing it with the users and as you can expect, they were finding it hard to use the website in terms of buying things and whatever they were selling in terms of the courses and stuff. So the teams didn't really think much about what the users wanted and this basically caused product problems. They didn't think about the suggestions that other people were giving and that's what this talk is all about. We're gonna talk about empathy. I see a lot of mix of groups of people. We have senior engineers, we have people from various backgrounds, we have students and so many people. So something for everyone to have a key takeaway from the session today. Let me start by discussing what empathy is, right? So empathy is the ability to understand and share the feelings and perspectives of others. It involves placing oneself in someone else's shoes and seeing things from their point of view but we're gonna focus more on the empathy part in the tech industry, right? In the software development field or whatever. So in software development, empathy plays an essential role in understanding the needs and desires and the pain points, bless you, of the users and the team members, the future leaders, managers, all sorts of things. So quick raise of hands if you can show me. Do you think it's irrelevant? You know what we're talking about today in the field of software engineering? No hands, good. So the whole idea is that when you talk about what is it relevant, is empathy relevant in the whole ecosystem that we have here is, coding is all about delivering messages to people and machines and when you're delivering messages, it leads to communication and where there is communication, empathy plays a huge role. Some of the examples include like commit messages, PRs, tests, error messages, documentation, et cetera. Empathy is an important aspect in software development because it will enable developers to create products that are more user friendly and meet the needs of your intended audience. And when developers have empathy for their users, they can anticipate potential issues and design solutions to address those. This can lead to a more satisfied and loyal user base, better user engagement and increased success for your product. In addition to that, empathy can also improve team collaboration. So we're talking about users, but we're also talking about the people you work with and communication in the software development, the life cycle, by understanding each other's perspectives and experiences team members can work together, you know, more effectively and efficiently. Empathy can also promote a positive and inclusive work environment, which can help attract and retain the diverse talent in the industry. So overall, very crucial skill, especially in like the previous, you know, the intro they were mentioning, like right now all the, with all the whole economy and the layoffs and stuff, so I think it's a good time to talk about that. All right, the next question I want you to ask yourself is like, is your team struggling? So when we talk about, let's say, when team members lack empathy for one another, it can lead to a negative work environment where individuals do not feel valued or respected and this can lead to like lower team morale. Talk about communication, which is a critical aspect, because as I mentioned code is, you know, communication. So critical aspect of software development and the lack of empathy can hinder the, you know, effective communication amongst your teams. So without empathy, team members may not be able to understand or appreciate each other's, you know, perspectives and it may lead to miscommunication or misunderstandings. Product quality, a lack of empathy can result in, you know, products that do not meet the needs or desire of the target audience. Developers who lack empathy may need to design products, like, you know, may design products that are like difficult to use as the story I shared from my experience. And lastly, it's also a crucial aspect in problem solving because I was interviewing, they asked me a question and I just gave them the right answer like that, you know, like, okay, solve this or do this. And I was like, okay, yeah, this is the most effective solution, five, 10 minutes, done. And I was rejected from the interview and I was like really confused. Why did you reject me? I gave all the right answers and I sort of solved it really fast and they're like, yeah, it's good, but you know, you're not gonna be working on your own. We wanna see how you communicate, your thought process. You're not gonna be solving problems on your own. So the interview is not just about, you know, if you can get to the right answer, but how you get to it. So that was a good point for me. Help me in my future interviews. An example of like, how failure can help you, but yeah. All right, let's talk about importance of empathy in software development. So yeah, building better products, increased team collaboration as we talked about previously, improving user experience. So you can, you know, identify potential issues that users may face and design the solutions to address these issues by putting yourselves in the user's shoes and, you know, developers can basically create products that are more intuitive, accessible and enjoyable to use. Cool. When we talk about empathizing with the users and understanding the needs, it's crucial in software development, and this has several benefits. The benefits include, you know, increased customer loyalty, competitive advantage, reduced costs, increased innovation. By prioritizing empathy, developers can design products that meet the need of the target audience, you know, better than their competitors, resulting in higher user satisfaction. And a few ways, like when we talk about users, when we talk about developing products, let me think about what stops people, you know, what prevents people to empathize, you know, with your users. So there's a lot of biases that we can talk about today. First one is confirmation bias. So confirmation bias is the tendency to seek out information that confirms pre-existing beliefs or assumptions while ignoring the information that contradicts them. So a developer, for example, who suffers from this confirmation bias will only, you know, seek out user feedback that confirms that there are assumptions about the product rather than seeking out feedback. So that's one way how, you know, sometimes it's, you know, what prevents empathy for developers. The second one is curse of knowledge. The curse of knowledge is the tendency to assume that others know what we know. And developers who suffer from the curse of knowledge may assume that users have the same level of knowledge and expertise as they do. And this can also lead to products that are difficult to, you know, for users to understand and use. So that's one. The next one is hindsight bias. So this basically is the tendency to believe that the events were more predictable after they have occurred. So developers who suffer from this bias may believe that the user feedback was obvious in retrospect, but they did not consider it during the development process. So that has happened with me as well. Availability bias is another one, which is the tendency to rely on readily available information when making decisions, rather than seeking out more comprehensive information. And developers who suffer from this availability bias may rely on feedback from, like, a smaller group of users and ignore the feedback that is more difficult to obtain. How to overcome biases? So should strive to, you know, gather a broad range of user feedback and challenge them, you know, their assumptions about the product. This can basically involve seeking out feedback from the users with different perspectives, testing the product with a diverse group of users. So in any field, not just tech, you'll see, like, diversity and inclusion. It's only for the betterment, also for the community, your own product. But, you know, you're helping people, it's also helping your own product and your own company. See, I'm regularly evaluating product design with an open mind. By taking these steps, you can ensure that, you know, you're more effectively empathizing with users and creating products that meet the needs and preferences. How to apply? So when we talk about users, creating personas can help. Personas are fictional characters, which you can create based upon the research to represent the different user types. And, you know, that might use your product or service in a similar way. Surveys are good. Surveys are a popular method. Don't have to emphasize much on that. But, yeah, for getting user feedback. But it's also how you send out that survey. I'm not going to name, like, the company, but recently I got an email. And they're like, attend our five-minute or 10-minute, 15-minute demo and we'll pay you. So that was a little, like, confusing in terms of, like, how you're getting your, you know, clients and users and stuff. So surveys can talk on and on about that. But, yeah, through email or social media or website, website pop-ups, once the survey data is collected, you can analyze the data and use it to inform, you know, for the development process ahead. User testing involves observing the users that are interacting with the product and, you know, in a controlled environment and by watching the users navigate the product and noticing any issues or pain points, developers can, you know, gain valuable insights into how the users use the product and what changes have been made and stuff. It can also be conducted in person or remotely or, you know, however you like. This is a nice step-by-step diagram that I like to present in this, like, session when you talk about empathy with your users. So, again, like, interviews are also a great way. They involve speaking directly with the users to gain insights into their experiences with the product and, you know, analytics, that's another one. You know, data that can provide insight into how users interact with the product and, like, for example, website traffic, page views, click-through rates. You can gain insights with, like, how people, you know, use your product and what changes could be made made to improve it. I do this. I have a YouTube channel, I'll plug over there, but it has an analytics dashboard that I use, and it gives all the information around your target audience and what sort of videos are popular, what sort of tutorials are popular, and obviously the comment section, like, didn't understand this, it was difficult or whatever. So, yeah, getting more feedback from people and things applies really well when you're talking to your users and customers. Lastly, focus groups, like, groups involving together, like, a small group of people to discuss the experiences with the product and, yeah, similarly, can be conducted in person or remotely. So during the focus group, developers can ask questions around, you know, their needs and their preferences and the experiences with the product as well as observe how the group interacts with the product. All right, so that was the user part. Now, moving on to the second part of empathy, we talked about teammates. So empathy is essential for building strong and collaborative teams in several ways. A few examples. The first one is really important, trust. Empathy helps to build trust among team members. When a team member is demonstrating empathy, they show that they care about each other's feelings and perspectives which can lead to an increased trust and respect. Second one is communication. As I already spoke about that, I'm not gonna elaborate on it, but, yeah, can improve communication among team members and when you understand and respect each other's perspectives, the people are more likely to listen. So this can lead to more productive discussion and fewer misunderstandings. Conflict resolutions. So empathy can resolve conflicts amongst team members. When team members are empathetic, they are better able to understand each other's perspectives and find mutual, agreeable solutions. So this can reduce tension and promote collaboration within the teams. Creativity is another one. It can promote creativity within the team and when the team members understand the needs and desires of the target audience, they can develop more innovative solutions that meet those needs. So this can lead to new ideas and approaches that differentiate the team from their competitors, if you will, if you talk about that. Morale. Another important aspect when we talk about teams, sympathy can improve our team morale by creating more positive and supportive work environment. And when we know the team members, I'm sure every one of you as well when you feel like you are being understood and respected, you are more likely to feel motivated and engaged in your work. Now how to do it. Strategies. Active listening involves fully concentrating on what the other person is trying to say. I was watching an interview by Satya Narela, the CEO of Microsoft, and the interviewer asked them, how do you run a good meeting? So he was like, listen more, talk less, be decisive when the time comes. This can help team members feel heard and understood and it can promote empathy and trust within the team. Second one is you can put oneself in other shoes. It's the code that I've mentioned, I think the third time now, because it's really important. The next one is practicing curiosity, asking questions about others' experiences, thoughts and feelings can help develop empathy. And by showing interest in others and their perspectives, the team members can better understand their needs and concerns. The next one is also around, it's called practicing perspective taking. So perspective taking involves imagining oneself in others' position and thinking about their thoughts and feelings and motivations. So that's another one. Providing support, think that's another important one. Where I work, we have this policy, like there are no bad questions, we have no blame culture, you know. So people are free to ask anything and when possible, we support each other and stuff. So offering support and encouragement to team members can also help to build empathy and trust within the team. And by just showing that you care about the well-being and the success of the team members, they are more likely to feel valued and respected. Cool. Next one is bad code. Swap the blame for honor. What I mean by that is you join a new company, you see a nice project and you're like, oh, this code is garbage. So what do we do? Think about, like, in life, I try to think about what I can do, not just in tech. Like if I don't have control over something, I wouldn't worry about it. But ideally, if I'm talking about this example, think of it as an archaeological site. So when archaeologists dig up stuff and they find, you know, like dinosaurs or whatever, and they're like, oh, this is really bad code. It's all messed up and it's not properly aligned and everything. Yeah, because it's, like, really old and the person probably left. So what do you do? You reverse engineer, you pick up the pieces, and you know, you work with what you have. So I like to give this archaeological analogy when you're working with really code that you don't like. Let's put it that way. Speaking of code that you don't like and you're working on it, empathy in terms of, like, the struggles that you are facing, like, oh, this is not a nice code and I'm feeling so much, you know, it's taking so much of my time. And think about the next person who's gonna, you know, work on that same repository. So some of the point which is leave the code better than you found it. It's also, you know, a nice practice that you can apply. Now, messaging best practices, and you talk about working with teammates. So empathy is speaking to others that you'd like to be spoken to. And when you talk about, like, PRs and, like, not assuming that, you know, the other people, like, the biases that I was talking about, not assuming that everyone has, like, the same level of knowledge as you. I believe that good writing is simple writing and don't assume that everyone who is reading your writing knows everything what you're talking about. And, yeah. All right, lastly, here we have empathy for future engineers. So, because that's what we're doing here, you know, we are at the Tomorrow Starts open-source summit. So we talk about 10, 20, 30, 40 years down the line who's gonna manage Kubernetes or the, you know, KITOPS Foundation and everything. Folks who are kids right now. So empathy for future engineers, both in the field of when they're starting out in tech and they're growing and they're, you know, planning to become a contributor. So think about it when you think about a foundation that is, like, what is your mission and who is your, like, why would anyone wanna join? So I get this question a lot. Now I wanna start my own community. How do we do? So think about it, what is the mission of your community? Why would anyone wanna join? What do you have in return to offer? How do you keep people engaged? We talk about future engineers and start with, like, someone who has just joined your team. One of the best things you can do is, like, have readable code because by limiting abstractions, avoiding complex logic and using, like, good naming conventions. And this reminds me of a funny incident. I was working at this company. I was interning, and it was a start-up back in India. And they gave me, like, a project, some pipeline. And I was asking for, like, okay, can you send me, like, some resources? I wanna get started with it. So they sent me some blogs and stuff. They gave me some documentation. So the senior engineer was, like, I am the documentation. And I was, like, but I don't wanna take too much of your time. You know, I feel guilty that I'm taking so much of your time. But anyway, say I feel, again, find yourself in a place where there's no lack of documentation. You should probably help the future people and write good talks. When you talk about future leaders, what are they really like? Some of the finest leaders are the ones who remember what it was like to work their way up from the bottom, or who can foresee themselves in others' positions. Again, this is the fourth time I'm mentioning the senior selves in other people's shoes, because it's really important. And lastly, empathetic leaders also understand imposter syndrome. Imposter syndrome, it's not a... If it's out of your control, then I don't think you should. It's like a bad thing, because everyone faces imposter syndrome, senior engineers, juniors, or whatever. That's fine. Nobody invites imposter syndrome. But the thing that matters is what do you do about it? So I think understanding it, working on it, and making sure that you get through it. Yeah, so leaders understand imposter syndrome. I'd like to close this presentation with one question. Can empathy be taught? So from what we've learned today, it's often described as the ability to understand and share the feelings and perspectives of others. However, it is much more than just a feeling. It is also a skill, and just like every skill, it can be learned and developed. Empathy involves the ability to listen actively, communicating and effectively, and understanding the emotions that are experienced by others. We spoke about the users, spoke about the teams, spoke about the future leaders, and these skills that can be taught and practiced over time, much like any other skill as well. So yeah, in a deliberate effort and practice, you can learn. Moreover, it's not a fixed rate that people are born with, while some individuals may have a natural aptitude for empathy. It is a skill that can be developed and strengthened through the, you know, efforts. And research has actually shown that empathy can be improved through training, education, and practice. So lastly, something for you to think about is reflect on a time when the lack of empathy affected a project or a relationship. And I'd like for you to consider ways to practice empathy, you know, moving around, moving forward. Yeah, nice little quote. Thank you. If you can connect me, I'm sure.