My first user test blew my mind. I sat in a room watching a woman enter sensitive data into an app I'd built in order to find out if her child had a disorder.
Suddenly, concerns about whether we went with a native app or a web app, which form library we'd chosen for the implementation, and which text editor I'd used to write the code melted away.
What mattered was this woman's anxiety about the form's invasive questions.
What mattered was her frustration when buttons didn't work as she'd expected.
What mattered was her fear when our app told her that her child might have a disorder.
Essentially, what mattered at a deep level in that moment were her feelings, and nothing could have revealed those feelings to me as clearly as seeing her reactions first-hand in that room.
Feelings are not exactly the most common topic among software developers. We like to talk about efficiency and code quality and frameworks. Those are all important topics, of course, but none of those concerns covers why we write software.
We write software to help human beings, and to write better software, we need to start caring about those human beings and their messy, illogical, and confusing feelings.
That's why I propose that every developer at least occasionally participate in user tests of their product. There are a number of benefits for the developer, the user, and for the rest of the team.
Observing user tests will help you cultivate more compassion for your users. Empathy is becoming a more common term in the design vocabulary, but few are talking about compassion.
One way to understand compassion is to see it as a much more active form of empathy. Empathy means understanding how someone else is thinking and feeling; compassion means understanding when someone is suffering and actively desiring to do something about it.
When a developer sees users struggling in person, her natural problem-solving ability will kick in. For example, after a user testing session, she may see that it makes more sense to fix what seemed like a minor bug since that will have a bigger impact for the user than the whole site redesign that seemed more technically interesting to her.
In this way, remembering the human beings using our software focuses our attention and helps prioritize our efforts, ultimately resulting in products better suited to our users.
Much of the conflict between developers and those working in design and product involves misunderstandings and mismatched priorities. User tests help the team reach common ground by reminding everyone that the ultimate goal is improving the experience for the user.
Designers often translate the findings of user tests into requirements delivered to the developers. The problem is that without the chance to observe the user's behavior, developers miss out on the powerful emotional component of the user test data.
If even once in a while developers actually have the chance to see the user struggling with the current app or breezing through a new prototype, they'll have a much better appreciation for the reasons behind the designer or product requests, which will lead to more productive conversations on the team.
Finally, participating in user tests will help remind developers of why they do all the hard work they do. For example, when I saw the wave of relief pass over a mother's face when our app revealed that her child was at low risk for a disorder, I felt a renewed passion for my work.
Seeing how a live human being responds to a product will help give more purpose to a developer's daily efforts, and remembering that purpose is one of the key techniques for avoiding burnout and leading a more meaningful life.
So, developers, if you're ready to cultivate compassion for your users, have more productive conversations with designers and product owners, and ultimately find more meaning in your work, please consider sitting in on a user test every now and then!
If you'd like to learn more about how to participate in user tests, including tips for avoiding bias and shielding your ego, check out my talk at Mobile+Web DevCon on March 3 in San Francisco! Also, if you're interested in learning more about the intersection of compassion and coding, check out Compassionate Coding and sign up for our mailing list!
Photo by Kate Serbin
Posted on by:
April Wensel is a veteran software engineer and technical leader who has spent the past decade building products in the education, research, healthcare, and entertainment sectors. She has also mentored and led workshops with diversity-focused organizations like Hackbright Academy and Black Girls Code. She founded Compassionate Coding in order to spread kindness and compassion throughout the developer community. When not coding or leading workshops, she enjoys running marathons and cooking vegan food—because animals deserve our compassion, too!