I want to do something new and innovative, something nobody has done before. I consider myself an artist and art is all about creation and pushing the established boundaries to make something thought-provoking and original!View the profile
About the talk
RailsConf 2019 - Walking A Mile In Your Users' Shoes by Jameson Hampton
Developing apps for users in different demographics is inherently differently than developing apps just for ourselves and for other programmers. Understanding the needs of our users and learning to foster empathy for them is just as much of a skill as learning Rails or ActiveRecord — and it’s a skill that’s relevant to all developers, regardless of their ability level or rung of the career ladder.
If you're coming back is called walking a mile in your users shoes. And the first thing I want to do is just introduce myself a real fast. My name is Jameson Hampton. You can call me Jamie. I'm here from Buffalo New York. That's the home of bad Sports. I'm really pleased to be here. I'll ever else Compass my third restaurants in a row. It's my first time in Minneapolis. I'm representing agrilyst. That's the company I work for. I'm a professional plant Liker. They're actually I'm going to suffer engineer. I'm going to talk more about eggless
later in the talk. So I'm not really going to go into it right now. I'm also representing greater than code. That's a podcast that I'm on if you haven't heard of it, it's really great. It's about tech but it's really about like kind of the people that are behind the tech cuz we think that that's really important. So if you've heard of it, that's great. If you if you haven't heard of it check it out. If you have heard of it, we're actually doing a birds of feather discussion with some of the panelists from greater than Co today at 3:30. So maybe come check that out if you're
interested. Amazon Twitter at Jamie bass. I love Twitter. So totally find me you can live to eat. My only thing that I want to mention is that I use they them pronouns if you talk about me publicly it please keep that in mind. so when I started writing this talk, I started kind of thinking about like traits of programmers have or maybe traits that make a good programmer. And when I was in college, I went I had I have a minor in computer science and in one of my like first 101 CS classes, my professor told me
that there were two traits that good programmers have on the first is being scared of bugs and the second is being lazy and I thought that was really funny that he was saying it like being lazy is a good trait. But when I think about it, I think in some ways being lazy like does make us good programmers because we want to write reusable code instead of reading things over and over we want to write scripts instead of doing manual tasks. We find these workarounds and it's because we like we work very efficiently because we don't want to do any more work and we have to do So I
kind of like that, but I also think that there are things about that laziness is like a flip side of that. I think it's sometimes we forget that this things were doing like aren't as easy for other people as they are for us, you know, not everyone can just write a script instead of doing something tedious. And so we we we Implement all these workarounds into our works, but we forget that what we're doing is like actually workarounds and not like the real thing. And so I want to propose a third. Trade good trait for programmer such as empathy on this is kind of a talk about
using empathy. So what does that mean? Well, the definition of empathy is the ability to understand and share the feelings of someone else. I was reading about a lot about empathy while I was reading this talk and it's kind of people have split it up into three kinds of empathy their social empathy empathy. That's that idea that you can sense how someone else is feeling that's not so much what I'm going to talk about today, but then there's cognitive empathy. This is like the awareness and the understanding of someone else's perspective. And that's kind of where
this phrase like walking a mile in. Someone else's shoes comes from understanding their perspective and that also includes like using language that another person understands that you're communicating well, And then the third thing is empathetic concern. This is the idea that like if something is wrong, maybe I sense that and I can feel it. But not only that. I also want to help I want to do something about it. And so that's kind of, you know, we're going to talk about I guess it's not this isn't actually really a feeling stock. I think feeling stocks are extremely good, but I'm going to
talk what kind of about like examples in on the job and width requirements Gathering. I'm going to start talking about like Tack and what does it mean to work in Tech? Perhaps a better question is like what's the difference between like being a technologist and actually working in the tech industry? Because code is code. Everyone needs applications in all sorts of Industries. Once you know how to write code realistically you can do it for anyone who needs code which is most people I can use my background in software engineering to work as a technologist been in other Industries hear some of
the industries that I've done working in agriculture right now. I'm going to talk about that and really and most of them like the hard skills. I was using in very similar ways regardless of what I was actually working on. Being able to choose. This is a perc by the way, like being able to choose what industry want to go work in is a huge privilege because like it means that I have this opportunity to go and find a job. That's what I'm drinking. I really care about like something I think is actually really important. I've worked at some jobs that didn't feel like that and I've had
some that did so that's a privilege. But like a code is code you're saying to me Jamie. It's code is code then why does it matter which industry are working? And what's the difference? Am I answer to that is because of the user base that your programming for? So let's say hypothetically. Maybe you work at stack overflow. I want to make a couple notes. I'm going to talk about a bunch of demographic stuff. I'm using stack overflow with my example mainly because they do their yearly developer survey, which means they have like a really in-depth the date of their
demographics. On the off the other thing I want to say before. I like launched into this is that like there's a lot of things in the demographics that I'm about to go over that I'm going to categorize is objectively bad. I can do a whole talk about why they're bad. That's not exactly the point. I'm trying to get it today. So I'm kind of sick of knowledge in the elephant in the room, like some of the demographics of developers like have some problems we're going to go legit and then we're going to kind of continue or talking about and I have the gender one up
already. So you might have an idea of what I mean when I say that it's like Mary overwhelmingly male. I also have this one about race and ethnicity also pretty overwhelmingly white. I don't have time to be like leave all of these graphs up for super long, but I'm going to post the slides after if you want to come look at them. Are the age when it's really interesting to me because of the way it kind of has this bell curve in the middle, but like 25 to 34 years old is like a huge percentage of the stack Overflow user base. This isn't super
interesting to me. This is your parents highest education level. This was one that I hadn't even really thought about when I like started, you know researching this in writing this talk this idea of having his privilege or like growing up middle-class or higher is like a very real thing. I'm actually not even like specifically trying to get at the concept of privilege here. Although it is a huge Factor, but I guess here's what I am trying to get at. Like what do we notice when we look at some of these demographics? Maybe they look a little bit like us.
I mean not exactly like for me. I'm a gender minority. In fact, according to that chart on the less than 1% gender minority. So the first start didn't look like me, but I guess the point that I'm getting it is that like I live a life that's very similar to the lives of many other developers live. So, why does it matter if the demographics look like astronaut? But when we build applications were thinking about what's going to feel intuitive and if you work in like a tech industry job, like stack Overflow or get Hub made and your application filled intuitive to you. Maybe it's a pretty safe
bet to Guess that it's going to be intuitive ulcerative most of your users because we're coming from this shared background or were similar in that way. But what about in other Industries where the demographics are different? Like I mentioned I'm going to talk with this more but I work in agriculture. So I read the 2012 Department of Agriculture census, which was a riveting read. And I have some some parts from that too. As you can see agriculture also has a gender problem. It's actually not as bad as the one in Tech and this
is it's got this kind of chart where talks about principal second and third lake so you can see that like, there's more women in agriculture, but like less who are running entire Farms. This is the race and ethnicity chart some of it. This is Farms that are like owned and run by people of color and that's increasing particularly with Hispanic folks. I do want to know that this is principal operators. This is like the person that runs the entire farm so you are saying that number increasing but also this isn't like explicitly getting at the percentages for like
all agricultural worker which is going to look like a lot less weight than even were talking about here and definitely been in Tech. These traits are wild compared to the stack overflow on the Aged ones the stack Overflow chart like the others like a little bitty one at the end. It was like 65 + and that's like half of this man age is a huge Factor when it comes to how someone interacts with technology like way more than gender a race. This is a chart of how what percentage of people have internet access
and the fact that there's even a chart for what percentage of people have internet access says a lot about like the very different demographic that we're dealing with. I do want to call myself out a little bit cuz I just used the word user like a lot of time and I really love this tweet rules to live by don't replace people with abstractions. They're not users their people who are using your tools to do their job. The web is not made of content. It's a collection of human ideas. And it's kind of really get that what I want to say about empathy like this
isn't just you know, nobody is behind a screen like this is real people were actually trying to do this like in their lives. I think it's really hard to have these kind of discussions that example. So I will let's do examples middle whole bunch of examples actually. This is my first kind of case study Medicap is a project that I worked on. I was in Consulting before I got my debit agrilyst and said this is a project that I led when I was a consultant. I'm in Medicap is an Android app that was designed to be used in third world countries to help prosecute sexual
offenders. It was commissioned by this. NGO called This is for human, right? And it was an amazing project. Basically, the premise of it is if someone gets assaulted it's very likely that she's going to go have like a medical exam for like health reasons on even though it's like very invasive to have this exam. But then if she wanted to report the assault the authorities she'd likely have to go under go like additional invasive exam to get all the evidence is latavius a huge factor and why crimes were going unreported which is a huge problem. This is kind
of trying to solve this problem of reporting. And so this idea is that if doctors could like take this examination that they were doing anyway record it in a way that would be admissible as evidence into the court system. Then at the end of this process, they could look all that the woman would have to do is consent to recording maybe like no we already have everything we need all you have to do if you want we can like report it and you don't have to do anything else and you don't have to go through any more pain. So this is what I mean when I say that you have an opportunity to work on
something that you find actually really important. I felt really good about working on this project. And also it was a very interesting project additionally, so I went into it I had it was like, you know, this is never works done anything like this before there's going to be challenges and I thought about what challenges I thought I was going to face. We're kind of project. There were a lot of privacy concerns since it was sensitive medical data. So we we were going to do this custom pinsystem. We're like every time you put the phone down and pick it up. You
have to re-enter the PIN to someone can't like Steel in the hospital most most apps that take pictures like store the photos on the camera roll as well as in the app and we like over road that so they're like not actually stored on the phone and he really only in the database. We were worried about chain of custody which is kind of a legal thing this idea that like you want to track who saw these documents and when and have proof about it. So we have this digital paper trail we're going to do and we did. We also knew that was going to be used in Mainland Africa in places where there
wasn't necessarily like reliable internet. So we're like, okay we'll do like a nosql thing will rely and eventual consistency. We basically built it's like they could create new records were they were offline. They got stored locally in the phone temporarily, but then when they did connect to the internet, it would sink their records to the database and police must have fun. So what I noticed about this place is that all these things are pretty high-tech. I'm in the solutions are all very high-tech. So this is obviously a list. It was written by a programmer.
I'm also it felt like a very unique projects me but none of these challenges are really inherently unique. It was a little bit unique because I was dealing with them like all at once but like having constraints is part of any writing on the average Amy programming. So it's just kind of like these specific constraints. And then after I was working on it for a little while, I had the opportunity to go to the Democratic Republic of Congo. Where was the first place they were going to launch this it was a really incredible and eye-opening experience. I got to spend time with the
people in the India doctors. I saw a lot of amazing things and I also it completely changed how I was thinking about the project. I'm like once I saw the situation there and I actually worked with some of the doctors who are there I'm I realize that there was a higher other set of challenges that like hadn't even occurred to me because like I'm a programmer and I live in the first world and like I just couldn't even conceptualized what things were like for the people who were going to use my app. So these are some of the challenges that I like that I actually faced that were you no more
challenging than I expected. And there's a lack of resources not just internet friends since they want to do printers printing but they didn't have printers in the hospital's. I'm in fact there were areas that didn't even have reliable electricity. It would like to go out for days. And this is the first time I realize like okay, this is really going to require like out of the box thinking cuz you can't just like magic up more electricity. I had a very inexperienced user base. This is something that I thought about a little going into it, but I kind of just didn't realize that I'd be working
with people who like literally never used a smart phone before in their life. So like I was thinking about like, oh, where should we put the buttons will feel intuitive to them and like I ended up working with people who like it wasn't into it if then to like tap on the text box in order to type their but they wouldn't have thought of or like we made some test accounts for them and had like underscores and like the usernames and passwords and they didn't know how to make it underscore on the phone which actually is like not intuitive at all because you have to go to the punctuation and then
you're like capitalize your punctuation like very confusing actually, but like it's just so natural to me that it didn't like I didn't think of it. Are there language barriers which again we knew we were at the app in French, but like when we got there and people were using it. We didn't realize how bad some of our translations were like the world record is like a big part of the app because like you save your records like your file but like the word that we were using was like you broke the record in a race and they were like, what is this? On the snow tech support
if something breaks, there's nobody around to fix it or help with it. So like not only does everything have to be really reliable but it also has to have kind of easy solutions in place that if something goes wrong, they can't ride it like troubleshoot at themselves. And they're also trust issues like again, like people who weren't used to smartphones or hesitant to use them. They didn't trust the idea of the cloud all they were very stressed out about like not being able to see the server. Like I was going there expecting to have like technical discussions like a ton of our discussions
were just like, how can we convince people that like, this is an okay thing to use and do And maybe I was naive of me not to think about some of the stuff but I guess I was just so lost in the code base and some of these highly technical things that we did implement. It wasn't on my mind after I visited them I met them and then I went home and continued working on the project all these things were much more on the Forefront of my mind. So we had to implement a lot of non-standard solutions. I did a ton of market research. You can hit
a lot of considerations if you have the right Hardware we were lucky cuz we're in a position where like the NGO is providing the hardware on so we kind of got to decide what they were going to use. I did a ton of market research on printers. My house is full of printers. I was looking for stuff with like long battery life removable batteries are important. They could like charge them somewhere else and then have them ready in case there was no electricity need to be Bluetooth cuz that's how we're going to connect. I spend a lot of time seeing how it handled like troubleshooting like some
printers just blink lights on some printers like give you words and explain to you what's wrong and this isn't really have programming normally works cuz normally are very invested in like we have to make sure this works on all devices and I was like, I'm doing something very specific that's like really only going to work on like leaves specific device has it has to be perfect. This is another thing that's kind of not that much like how programming often works because we're used to kind of we want to use libraries and reinvent the wheel but we had to build a lot of stuff from scratch
and that was like really frustrating because we didn't feel like we're doing something like totally knew would never been done before cutting edge, but because of this like a very specific combination of constraints like in some ways we kind of were cuz a lot of the solutions like didn't really apply but oh, well this would work but we have to lose like just one of our six constraints that's not really how constraints work so we can do that but we waste a lot of time looking for an existing solution and if we had Embrace this mindset at the start like we might have to build stuff from
scratch we would save a lot of time. Naui is just what we ended up going with a completely different. It was like the step-by-step pop-ups to be like now turn on the printer. Okay now plug in the cord. Okay now unplug the cord and it like wouldn't let you proceed until you've done each of these steps. I'm sure this would be like wildly frustrating to someone who like knows how to use a smartphone because it makes you go so slow and do everything so intentionally, but first, we had people that we're like struggling with the tech and then they can if they forgot how to do something we
didn't have someone there to guide them. It was really necessary to like help them like go through all of these steps every time. That was a really interesting experience. And then after I left a consulting firm, I got a job at agrilyst work now and that's an agriculture company. So a ghost is basically an app that's designed to like help with the day today for farmers and Growers who working like indoor farms and greenhouses. So it does like Farm in labor-management Harvest tracking the cast management it like integrates with climate control Hardware.
It does data analysis yield predictions. That's pretty cool. And it also means all of our customers are farmers. And that means that sometimes I get to go to their farm so I can meet them and see their facilities which is like extremely cool. I mean, it's also a big similarity with what I was talking about with my Medicap story because I really believe that like, you have to go see people working in like their natural environments to really understand their needs like that's how you can have empathy for them. Show me the talk about a few aspects of like what I've been working on a tag
release the kind of paying the same themes. I've been talking about like thinking about what your users really need. I'm Simonton language with medicab that's been a challenge for eggless. Also. We have a lot of customers and other countries we have customers were like there's a great like agricultural workers who are native English speakers working for Farm owners that are native English speakers. And so it's really important to have the app and like languages that people can understand so used i18n for internationalisation on that's like a really cool Jam.
It's like a lot of work that makes it pretty easy. I'm not really going to talk a lot about 18 in since not really it talk about the talks about sorry app is right now in English Spanish French and Arabic and it does make for like weird edge cases that like one of occurred to me, like for instance Arabic goes the other way which is like challenging in a nap. And so we we were we're trying to be upset if we like. Okay. Well if we have the the bar normally goes like it has the most important stuff at the right and then it gets the last important stuff. So maybe we should look
like a whole bar. So it'll feel more natural, but then we put the discarded just like flip everything and make some of the stuff is still like and like I mean, of course, of course, of course if you flip everything that's supposed to look like butt and think about it. I misses a particularly interesting went to us to me. So how do you pronounce agrilyst in Spanish? You can't it's like a completely unpronounceable nonsense. And Spanish is like the main language of like a ton of our users and so pronounce ability in other
languages with something that like hadn't really occurred to us early on especially the name of the company years ago. That's probably not like something a lot of people think about everyday, but it's really important. And so that's the kind of thing. You have to revisit especially if you're like a company that's growing. I think a lot about the delay on the UI as I was talking about, you know user-friendliness this idea of something that's intuitive user-friendliness basically means like okay was simple and intuitive to you. But
like what makes something simple and intuitive a lot of it relies on existing familiarity like you often see the back button at the top left-hand corner of the screen is it actually like better in any empirical way to put the back button there? I don't actually know the answer to that but I think that we're so used to the back button being in that same spot that it feels intuitive cuz that's kind of where we go to look for it naturally. So we're in the middle of a big refactory right now. And one of them for adding is this calendar view for tasks that we didn't have before it and like
why are we adding this view? Because we have a lot of customers that use Google Calendar and they wanted something that like felt more like a Google Calendar to you. We have a mobile app now and that was because we found out that like most of the five employees that were working for a customers like using phones in the field. And so we had this desktop app that we felt was like perfect and beautiful but didn't really matter because they were trying to use it responsibly on East little phones and it was like nothing, you know, not ideal. And if you
make the most perfect application in the whole world, but it's not available for the device that your users actually need it for its not very valuable to them. And so we realized that we like really needed to have a mobile app so that people can interact with it in the way that that works for them. And like planning features is really the big one on planning features of super hard. I mean requirements Gathering is hard in general. If you don't have like a real solid understanding of your users needs and like how they work day today, then it's like an incredibly hard on. So this is just one
example of like a feature that my team built that I never would have come up with on my own. We call it plant sites. So basically we have seating units 10 units here is like trays and wrath and we use them to track quantity. Like oh I planted 15 trays of lettuce. But we also use it to track Zone capacity like, oh, I have a greenhouse and 50 trays can fit in it and then we can calculate like how full the greenhouses Except it's not actually really useful on its own and that way because we were using like decimal points for trays which is really 1.5 trays of lettuce that's useful
for quantity. But that's confusing for capacity because even if your tray is half empty, it's still physically taking up space in your greenhouse. And so it wasn't really reflecting at the way that people wanted and so we introduce plan aside so you could be like, oh, I have a hundred and twenty plants in the Stray but 40 of them died. So now I know how many plants I have the tray is still there taking up space. So is this like an extremely complicated or technically involved feature? I mean, not particularly, but the only reason that I got suggested is because we had people who are
actually talking directly to like the farmers that were using platform and like working with them while we're doing requirements Gathering cuz like I was at home thinking about like floats and integers and it never would have occurred to me like this use case portion was kind of out of my scope of thinking I don't want to talk briefly about accessibility. It's not exactly a case study in the same way cuz I've never specifically worked on anything that's like specifically about accessibility, but it isn't I think about a lot. This is also just like a tiny
sliver accessibilities like a really huge category invited entire talk. I wouldn't cover all of it. But there's a few accessibility issues that I wanted to mention because like they kind of again paying the same theme like simple problems low-tech answers. The only reason we're not doing it because we didn't think about it. And I want to point this out again disabled people aren't the edge case tech people at the edge case tech people at the edge case. It's very easy to dismiss your users is like being a head case. I see this all the time and I feel like this all the
time like if I find out that a user triggered a bug like interacting with my app and like a weird way. It's very tempting to be like don't know. Why did they do that? Nobody? Does that like that's a weird taste like obviously somebody does doing it because they're doing it my users are doing it. And so I have to like react to that rather than just like, you know dismiss it. screenagers I also sorry. The slide is also known as how to practice user empathy while on twitter.com. Some people use screenwriters to experience the internet. If you've never use a screen reader like test of
the screen reader, you might not realize like what a very different experience they're having from you. So what it what am I getting at all text or photos of something that comes up a lot of things people do think about their so they don't always do it. But if there's a photo and there's all text in the screen reader can tell someone with a photo. And if you take like photos or screencaps of text rather than doing like a thread on Twitter cuz you want more characters screen readers can't read that they can't press that. And then like this is another thing. I
see a lot on Twitter Unicode fonts Emoji. What do I need for you to come van? So this is something I feel like I seen people screen names like explaining. This is my display name on Twitter Jameson son of James and this is a bunch of different like Unit B, not real fond Caesar Unicode characters that look like letters and so people will use them as pawns cuz they look cute and you can use them on like places where you don't normally get to pick the van. But the problem is that like screen readers don't parsees as letters. So like they can't read it as like a word so like
if this was my username it would the screen reader would say something like, you know, Capital capital cursive uppercase j capital cursive lowercase a and it would like read it out rather than like saying the words and if it's Junior like the sleigh name it's doing that every single tweet. Emoji is kind of like this to you know, I love Emoji. I really love Emoji feel like I get it but I'm going to have this is what a screen reader would read this tweet ass. Emoji cold and clammy hands on y'all graphic mod cold and clammy hand side do
graphic mod cold and clammy hands on quick graphic mod cold and clammy hands by deleting graphic mod cold and clammy hands on ya graphic mod clothing clapping hands clapping hands Emoji cold and clapping hands Emoji cold and clammy hands psychographic Emoji cold and clapping hands Emoji cold and clammy hands Sign Making graphic mod cold and clammy hands sign maker. I thought a lot if I buy it if I was going to make everyone listen to the entire thing, but I think it's very important to listen to the entire thing.
Colors and design I think is something that people do think about that. Maybe not always in the right ways. Lots of people are color-blind if you use like colors that don't like contrast poorly. Maybe you thought about that before cuz like that's something that's frustrating for anybody but it's like way more frustrating for colorblind people. But in addition to that we also use colors 10 like meme things in our design with all the time. We use green.for 6s messages and read for errors. I mean like, you know, you probably also have text but it's like harder to parse.
It's open noteworthy that the red green thing is like a really common color combo and also that red green color blindness is like the most common type of color blindness. On Saturday for colorblind people to Blake delineate but sometimes it's like impossible like here we have required Fields marked in red. That's the only way that they're separate from each other at all. If there was like an astronaut to the dictionary that everyone could tell but there's which would have taken 3/4 of 1 seconds add but obviously just nobody thought about it and it would have been so easy to fix.
So you pretty much used most of my time to talk about examples, but it's really talk about empathy and I think that there's a lot a few takeaways to hear about having empathy for people. Cultivating empathy for users. Is it essential for creating an app that actually works for them not for you for them? Predicting When people's pain points will be in an app that doesn't like fully exist yet. It's really hard and developers aren't really that good at it. That's why requirements Gathering is so hard. That's like a mother thing I could do an
entire talk on. Maybe I will you have to make sure that you're solving the right problem. You can meet your users and get a feel for what it's like to be them. Sometimes I think we're practicing empathy but we're really not that stuff because how do you really know and that's kind of why I think it's so important that this meeting your users should be face-to-face and like in their natural habitat where they live and where they do their work. Simple cover Solutions can often be just as available as highly Technical Solutions wheel of Highly Technical
Solutions as programmers were so into the puzzle aspect of it and like that's cool too. But it's just not the end-all and be-all like if we're doing something is highly technical just for the sake of being highly technical because it's cool technology, but it's not actually impacting people's experience for the better and then there's not really value in there can be so much more value in taking the 3/4 of 1 seconds to put your asterixis next to your your form. Fostering empathy will improve your applications and it will improve the world.
This is the last sentence of my proposed. I also wanted to wanted it to be the last item. I talk you can do something because it'll make your app for your website your product better. And that's cool to do. It's great to make yourself better, but it will also make you better because it will give you a greater sense of understanding other people don't make people around you better make your customers better and that's cooler than cool ice cold. Thank you for listening.
Buy this talk
Access to all the recordings of the event
Buy this video
With ConferenceCast.tv, you get access to our library of the world's best conference talks.