00:00:00
My talk is called 'Walking a Mile in Your Users' Shoes.' That was a great intro, but I'm just doing a quick intro.
00:00:06
My name is Jamison, but my friends call me Jamie. We're all friends here, so you can call me Jamie. I'm here from Buffalo, New York, the home of bad sports. I promise that joke is funnier when I'm not sixteen thousand kilometers from home.
00:00:19
This is my first time in Australia and my first time at RubyConf Australia. I'm really honored to be here. All of the talks have been stellar so far. It's been an amazing event, and I'm looking forward to the rest of it.
00:00:29
As mentioned, I'm on the 'Greater Than Code' podcast. If you've heard that podcast, you may have heard my voice before. It's essentially a tech podcast where we discuss the human side of tech, focusing on the people who write the code that we use and their life journeys.
00:00:44
You can find me on Twitter or anywhere really on the web at Jamie Bash. Please be my friend, tweet about my talk, and send me memes. The only thing is I use they/them pronouns, so please keep that in mind if you're going to talk about me publicly.
00:01:02
I minored in computer science in college, and one of my professors used to tell me that two traits make good programmers. The first is that they are scared of bugs, and the second is that they are lazy. I thought that was really funny back in college; I laughed at the idea of being lazy.
00:01:18
However, I genuinely believe that being lazy helps us become good programmers. We want to write reusable code and avoid doing more work than necessary. We work efficiently and create workarounds. The downside to this, though, is that we may sometimes forget that working with computers is not easy for everyone.
00:01:39
Not everyone has the skills to write a script instead of doing something tedious over and over again. When we overlook that our workarounds aren't the primary way most people interact with our apps, we create problems.
00:01:54
Thus, I want to propose a third trait for good programmers: empathy. So, what is empathy? The definition of empathy is the ability to connect with other people. Through my research for this talk, I found three kinds of empathy.
00:02:22
The first is social empathy, which refers to sensing what someone else is feeling. That's what we often discuss when we talk about empathy, but that's not my focus here. The second type is cognitive empathy, which is where we get the phrase 'walking a mile in someone else's shoes.' It signifies understanding another person's perspective.
00:02:40
Finally, the third type is empathetic concern, which means that when something is wrong, I can sense it. I might understand your perspective, but I also want to help. This talk will focus on that.
00:02:57
This isn't just a feelings talk. Feelings talks are great and important, but this is going to be a bit more technical. I want to delve into what this means for us in tech.
00:03:14
What does it mean to work in tech? Or perhaps a better question, what's the difference between being a tech worker versus actually working in the tech industry? Everyone needs applications! Code is code, really. Once you know how to write code, you can write it for anyone, and everybody needs code in this day and age.
00:03:35
These are some of the different industries I've worked in throughout my career. This is a perk of our industry: we're privileged to choose which industries we want to work in, giving us the opportunity to find jobs that we care about and find important.
00:03:54
But why does this matter? I just stated that code is code, so why is it different depending on the industry? The answer lies in the user base you're working with.
00:04:05
Let's say you're a developer working for Stack Overflow. I want to discuss demographics a bit. I should clarify that I’m not trying to call out Stack Overflow specifically; I use it as an example because of their yearly developer survey, which provides interesting demographic data about their user base.
00:04:40
I'm also going to share some demographic data that might be objectively bad in some ways. That's not the point of my discussion today. You may already be aware of what I mean when I say that the gender breakdown of Stack Overflow users is overwhelmingly male and predominantly white.
00:05:11
I will go through these fairly quickly, but I will provide the slides for anyone who wants to delve deeper into these demographics later. The age distribution is also interesting, with the largest group being 25 to 34.
00:05:21
You'll notice that the percentage of users aged 65 and older is a very small fraction at just 0.3 percent. I will discuss that again later.
00:05:40
This chart showcasing parental education level caught my attention because it highlights the significant percentage of respondents whose parents attended college, with many attaining master's degrees or higher. This observation underscores the privilege associated with growing up in a middle-class environment.
00:06:00
After analyzing these demographics, my main observation is that they may not look exactly like us, but they share some similarities. For instance, I'm a gender minority, and according to the statistics, I'm part of a very small demographic. So, the first graph certainly didn't represent me.
00:06:17
However, when you look out into a room of conference attendees, we come from a shared background. This similarity is important in building applications.
00:06:29
We want to create things that feel intuitive. We think about what would feel intuitive to us and what would work for us.
00:06:35
If a developer works for Stack Overflow or any other company with a programmer-heavy user base, they might think that if the application feels intuitive to them, it will also be intuitive for their users. However, this is not the case for all industries.
00:06:52
I worked in the agriculture sector for four years until just recently, and I will use agriculture as my primary example.
00:07:04
While researching for this talk, I read the 2012 United States Census of Agriculture. I found it riveting! The demographics in agriculture look significantly different from those in tech. Once again, there is a gender issue in agriculture, but it's less pronounced than in tech.
00:07:27
Interestingly, this is a chart of farms principally operated by people of color. While the numbers are not great, they are growing.
00:07:38
This chart depicts age distribution. The largest group aged 65 plus includes a significantly larger percentage compared to tech. This variance is interesting because age significantly impacts how someone interacts with technology, often more than gender or race.
00:07:57
Additionally, there’s a chart showing the percentage of different demographic groups with internet access. The mere existence of this chart in the census emphasizes the differences between these communities and the Stack Overflow group.
00:08:22
I also want to mention that empathy flows both ways. Throughout this talk, I will discuss empathy from us as programmers to the people using our apps. However, I hope that my users can also empathize with me.
00:08:51
For instance, if my app goes down, it would be nice if users would extend a little understanding. Programmers can also be users; if tools like Stack Overflow or GitHub go down, it's essential to remember that the teams behind those tools may be having a really bad day.
00:09:05
That's where the concept of 'hug ops' came from, where people might go on Twitter to vent about an outage. But let's also show compassion toward those who are managing the situation.
00:09:36
I've spoken about this concept in an abstract manner, but I think it's helpful to talk about specific case studies from my career. I'll share two case studies where I focused on empathy while developing applications.
00:09:49
The first is called 'Medic App.' I was a consultant for this project, and it was an Android app designed to assist in prosecuting sexual assault cases in developing countries. Physicians for Human Rights (PHR) hired us to work on it.
00:10:11
The concept behind the project was that there are areas in the world experiencing high rates of sexual assault, coupled with low reporting rates. A significant factor for this was the perceived difficulty of reporting such incidents.”
00:10:31
Often, a woman who had been sexually assaulted would go for a medical exam for her health. However, if she chose to report the incident, she would likely need to undergo additional invasive examinations that might bring up trauma from an already distressing experience.
00:10:55
The premise of Medic App was to allow doctors performing the initial health examination—already occurring in most cases—to document that information in a format admissible within the court system. This meant that victims wouldn't have to do any further work, only providing consent for the information to be shared.
00:11:18
I found this project incredibly important. Working on this app provided interesting technical challenges, and I anticipated encountering several issues. I knew there would be privacy concerns.
00:11:39
We planned for this from the start, incorporating a strict custom PIN system to ensure privacy, literal information could be seen only by authorized users. Additionally, we took precautions with photo storage, manually disabling saving to the phone’s camera roll. The images were stored only on our servers.
00:12:04
Chain-of-custody is an essential aspect legally. We needed to ensure a digital paper trail demonstrating who accessed specific files and when. We anticipated limited Wi-Fi access in some areas, so we decided on a NoSQL solution using Couchbase, enabling user data to be temporarily stored offline.
00:12:30
While going into the project, I realized these challenges were defined by tech constraints. However, as I worked on this app, I traveled to the Democratic Republic of Congo to collaborate with doctors on the ground.
00:12:50
This experience was eye-opening and changed my perception of the project. When in America, I had failed to grasp the realities users face when using this app. I discovered the actual challenges included not just unreliable Wi-Fi, but also the absence of printers at local hospitals.
00:13:15
In fact, reliable electricity was also lacking in the facilities I worked with. That realization struck me: I couldn't 'magic up' electricity for them. It was about thinking outside the box as I encountered an inexperienced user base.
00:13:35
I anticipated working with individuals accustomed to smartphones, but I found people who had never used one before. This added another layer of complexity. Features I took for granted, like clicking a text box to open the cursor, weren’t intuitive. We created test accounts for them to try out.
00:13:54
However, these accounts included underscores in their usernames, which were unintuitive for users unfamiliar with typing. We had language barriers too—the app was translated into French, but some translations were not as effective as we thought. One key term on the main page was 'records,' translated inadequately, leaving users confused.
00:14:15
Another issue was the lack of tech support. There were no IT personnel available to provide assistance if problems arose. Thus, we needed a solution with easy troubleshooting that users could refer back to or that was built into the app.
00:14:35
I went to teach everyone how to use it, but after a week, I would no longer be there. One of the largest challenges was trust. People I worked with were unfamiliar with smartphones and were wary about technology.
00:14:59
Questions about security arose. The notion of utilizing the cloud for data storage worried many. They wanted to see servers physically present in their buildings, but due to logistical reasons, we were unable to provide that.
00:15:18
An unexpected aspect of the project was having to assure users that we had considered their security needs and that use of the app would be safe.
00:15:42
In many ways, discussions turned less technical and more about alleviating concerns regarding safety and security and more about making them comfortable with the platform.
00:15:59
We also needed hardware that met specific criteria, as we were responsible for providing some devices to users. I had to conduct market research on printers with certain specifications like long battery life and remote battery charging capabilities.
00:16:18
It changed the way I thought about programming and development, as we usually want applications to work seamlessly across devices. Instead, we focused primarily on a few selected devices.
00:16:42
The way troubleshooting was structured differed greatly, requiring a more modular approach. A step-by-step guide to operations was essential.
00:16:53
When developing, I realized the importance of a slow, methodical approach to provide complete guidance to users. This was vital as it helped those unfamiliar with technology.
00:17:05
Working on Medic App was a rewarding experience, yet not the only noteworthy case study I want to share.
00:17:24
For my second case study, I worked at a startup called Artemis, focused on management for indoor farms and greenhouses. It was another rewarding experience as I got to meet farmers firsthand on their farms, engage with what they were doing, and see their crops.”
00:17:49
It was crucial to meet people where they are and understand their daily routines to foster empathy. This theme, rooted deeply in empathy for your users, was pertinent throughout my experience.
00:18:12
Like before, we faced language barriers. In this project, we utilized internationalization (i18n), which introduced some unforeseen challenges when translating into languages such as Arabic.
00:18:33
The ordering of our menu bars, intended to be more intuitive, resulted in distorted visuals. Similarly, our brand name, prior to rebranding, proved unpronounceable in Spanish.
00:18:54
This realization made it imperative to consider the usability of our app from multiple perspectives. It was essential to ensure users wouldn't struggle with our brand name.
00:19:10
User interface designs also needed careful consideration. User-friendliness is more than just a concept; it requires a deep understanding of existing user expectations.
00:19:21
The back button is traditionally located at the top left corner of a screen, a position users have come to expect, showing the importance of familiarity.
00:19:36
We revamped the app, adding a calendar view to satisfy our customers' demand, taking inspiration from Google Calendar. This helped them relate our app more closely to something they already knew and understood.
00:19:50
As we launched our desktop app, we discovered a significant use case: while it worked fine for farm owners managing their operations, it wasn't useful for employees working directly on the fields.
00:20:05
We learned that they required a mobile app tailored to their environment, drastically changing our development timeline.
00:20:20
Requirements gathering matters greatly, and understanding user perspectives is essential as it shapes the features that are truly needed.
00:20:38
An example that emerged from our conversations revolved around plant sites; we used trays for capacity tracking yet struggled to calculate plant counts accurately.
00:21:06
Thus, we updated the tracking method to indicate both the number of trays and how many plants they held. This adjustment proved simple but showcased the importance of understanding the user's operational realities.
00:21:22
While the third case study I will share isn't as fully realized, accessibility remains a critical topic I remain passionate about.
00:21:38
Accessibility has many facets and could consume an entire conference. However, I want to emphasize that overlooking users with disabilities can be an enormous oversight.
00:21:56
Disabled people are not edge cases. Tech professionals represent a small fraction of the population and often design for people like themselves. This perspective often leads to missing vital considerations.
00:22:15
For example, screen reader users might navigate the internet differently. If a developer has never tested their application with a screen reader, they may not comprehend how inaccessible their design is.
00:22:34
Alt text for images is crucial for those who rely heavily on screen readers. If an image contains no alt text, those users lose out.
00:22:49
Additionally, using Unicode fonts or excessive emoji can confuse these users further, as their screen readers may struggle to navigate them.
00:23:14
I think it's essential that we consider the implications of poor design and communication on users unable to experience the web as we do.
00:23:30
Color and design choices also heavily impact accessibility. Inadequate contrast can affect users’ ability to navigate a website effectively.
00:23:49
Certain design choices like color representation or required fields marked solely by color can fail to serve users with color blindness.
00:24:07
Often, a simple solution, such as adding accessible markers—like asterisks—could greatly enhance usability.
00:24:20
As I wrap up, I want to emphasize a few takeaway lessons: cultivating empathy for your users is essential to building effective applications.
00:24:45
It's difficult to predict people's pain points, and empathy is a significant step toward solving this challenge.
00:25:04
Meeting users and understanding their experiences can guide you toward solving the correct issues.
00:25:22
Sometimes we think we're being empathetic, but we may not truly grasp another's perspective. That's why face-to-face interactions can be immensely beneficial.
00:25:39
Simple solutions often generate immense value, potentially surpassing the impact of flashy or complex technical implementations.
00:25:56
Fostering empathy not only improves your applications; it can positively affect how you perceive the world.
00:26:15
Improving your product can improve you as a person by expanding your understanding of others. Ultimately, this enriches those around you.
00:26:32
This collective experience of sharing perspectives creates a wonderful symbiosis, enhancing empathy that's cooler than cool—it's ice-cold.
00:26:49
Thank you for allowing me to share my thoughts on this. It's a topic important to me, and I appreciate your attendance.
00:27:15
I also appreciate the opportunity to throw in an OutKast joke at the final slide of my presentation and for having me at RubyConf.
00:27:36
If you wish to connect with me online, please do. It was a pleasure to meet all of you!