RubyConf 2018

Humans Aren't APIs And Your Request Is 400 Denied

Humans Aren't APIs And Your Request Is 400 Denied

by Jennifer Tu

In her talk at RubyConf 2018 titled "Humans Aren't APIs And Your Request Is 400 Denied," Jennifer Tu explores the complexities of human communication and how miscommunication occurs in professional environments. She emphasizes that effective communication is not merely about delivering a clear message but involves understanding the perspectives of others and fostering a dialogue. Tu introduces three key variables that define the state of communication: understanding, agreement, and willingness, and explains their significance in ensuring successful interactions.

  • Communication Challenges: Miscommunication can lead to frustration on both sides—those making requests and those receiving them. Tu points out that perceived failures in communication often stem from misunderstandings rather than outright failures.

  • Perspective Matters: The talk opens with an illustration of perspective featuring a duck-rabbit image, highlighting how different viewpoints can lead to different interpretations of the same message. Changing one's perspective can turn a feeling of failure into an opportunity for dialogue.

  • Variables of Communication: Tu outlines her approach to communication interactions through three core variables:

    • Understanding: First, ensure that the other person has comprehended the request clearly. Without this, further communication efforts may falter.
    • Agreement: Next, ascertain whether the other party agrees with the request and sees it as valuable.
    • Willingness: Finally, determine if the individual is willing to take action based on the request.
  • Examples of Communication Scenarios: Tu provides a relatable illustration where a request to include unit tests in change requests can yield different outcomes based on the state of these three variables. She explains how toggling these variables affects communication outcomes, emphasizing that if understanding is not established, efforts to secure agreement or willingness will likely be futile.

  • Milestones in Communication: Throughout, Tu encourages recognizing and celebrating small milestones of communication, such as reaching an understanding, even if further work is needed to achieve agreement and willingness.

In conclusion, Tu's insights present a framework for navigating and improving communication in the workplace by viewing miscommunication not as a failure but as an opportunity for dialogue and understanding. The key takeaway is that communication is a dynamic process that requires patience and adaptability, especially when working with people operating in good faith.

00:00:16.880 Can everyone hear me? Raise your hand in the back if you can hear me, please.
00:00:22.910 Super, thank you! Alright, hopefully in the back you can also see this. Who in here sees a bunny rabbit?
00:00:28.769 Okay, and who in here sees a duck?
00:00:36.360 Does anyone see both a duck and the rabbit? Yeah, alright cool. So this is an illustration made by a
00:00:43.290 Polish-American psychologist named Yosef Schifrin, published in 1899. When you look at it, some people perceive a duck. If you look at the duck's bill and make that into the ears of a rabbit, you can see a rabbit. This talk is about perspective.
00:00:52.170 Perspective doesn't change your reality, but it changes how you might interact with it. My name is Jennifer Tu and I am one of three co-founders of Cohere. We're a small software consultancy that specializes in developer education and engineering leadership training. I've been both a software developer and a manager, and now I co-own a small company. Today, I want to share with you how I approach navigating communication with others.
00:01:12.750 This isn't the only way to do things, but it is hopefully one tool out of many that you can learn to use. Different people need different ways to communicate, and that means it's always good to learn a variety of communication techniques. More techniques mean that you can reach more people successfully and work with more people.
00:01:38.670 In all the roles I've held, I've had to make requests to my teammates. Sometimes, I need to ask them to change or adapt what they're doing. Sometimes that reaction isn't what I expect. It looks a little bit more like this: sometimes people have really poor reactions to my suggestions and reject them outright. It doesn't matter if that other person is your report, your peer, or your manager—unexpected responses can be a frustrating experience on all sides.
00:02:04.320 You're frustrated because what you thought would be a simple request suddenly becomes hard. They're frustrated because you just gave them a difficult request. It’s tempting to think about situations like this in terms of failure; it feels like you failed to communicate. It feels like they failed to hear you. It's easy to think that successful communication looks like getting our ideas across the first time we try. If we can't do that, we feel like we fail. That's a message we receive a lot.
00:02:40.770 There are countless classes you can take to help craft your message, choosing the right words to ensure your communication is clear and unmistakable. But that’s not really communication; that is the ability to give a unilateral command or edict and know that your intent is clear to the other person. When your message doesn't land the first time, that is not a failure. That is the beginning of a dialogue. That is where your communication can begin.
00:03:12.000 So was that a duck or was it a bunny rabbit? Is it failure, or is it the beginning? All of that is perspective. Perspective can help you look at what seems like your personal shortcomings or failures and see it not as that, but more as an opportunity to engage with the other person. Perspective can also help you get what you want; it can help you look at why the other person is responding the way they are and what it might take to change how they feel or think.
00:03:38.670 I'm not up here talking today because I’m awesome at saying the right thing the first time. I'm giving this talk today because I have a lot of experience navigating beginnings. This talk is going to share one of the ways I do that. I only use it when I'm working with people I think are operating in good faith. If you don't take any of what I say over the next thirty minutes for anyone who you think is operating in bad faith, these techniques won't work so well.
00:04:32.800 For the teammates who you believe are operating in good faith, when I need to begin a dialogue with them, there are three variables that I think about that describe the other person's state: understanding, agreement, and willingness. If the other person understands my request, that means my message was received and not garbled. We agree on the message content.
00:05:10.240 If the other person agrees with the request content, then they think the request is a good idea. If the other person is willing to perform the request, they plan to change their behavior to match what they believe that request to be. It's important for me to note the state of these three variables because that gives me a baseline of understanding for where the other person is and how I should approach the problem.
00:05:54.280 This is a little abstract, so we're going to go through an example. Here’s the first example: 'Let's include unit tests in every change request.' Alright, sounds good! Some time passes, and hey, I notice you’ve been including unit tests in all your change requests. Everything looks good!
00:06:15.700 This is the happy path: the other person understands, agrees, and is willing to take some action. I often think about Boolean variable combinations as tables. Here's how I visualize this example interaction of the happy path: does the other person understand the request? True. I knew that they were looking for unit tests in every change request. Do they agree that the request is a good idea? Seems true.
00:06:58.030 Are they willing? Also seems true. This is a combination that doesn’t require this talk, so we're not going to focus on it too much. Things get more interesting when you tweak one of these variables.
00:07:11.560 So, we're going to toggle the variable for understanding and switch it over to false. Let's include unit tests in every change request. Alright, sounds good! Hey, I know this—you haven't been including unit tests in your change requests.
00:07:41.050 Oh, you wanted unit tests in every change request? This is why it’s most important to understand the state of your understanding variable first. Out of all three variables, if you don’t have that, you won’t be able to go forward. If you have agreement and willingness, those are all meaningless if the other person agrees and is willing to do something different than what you thought you were asking.
00:08:50.660 Let’s do one more tweak. We're going to keep understanding false and now we're going to make both agreement and willingness false as well: 'Let's include unit tests in every change request.' What? No way! You were just preaching the gospel of unit tests over lunch today! Oh, you want unit tests in all of your change requests? Yeah, let’s do that. If someone isn't thinking about the same thing you are, it's impossible for them to agree with you.
00:09:32.670 Whatever they agree or disagree to isn't what you're talking about. If understanding is false, you can think of the other two variables as undefined behavior. If someone shares similar values with you, getting to understanding will probably flip them immediately to agreement and willingness. If it doesn’t, at least now you’re talking about the same thing and that by itself is valuable.
00:09:57.610 You successfully communicated what you want; you cleared that understanding hurdle. So when you are making a request to someone else, start from whether they understand your request. If you don’t have understanding, you don’t have anything else. If you do have understanding, especially if you have to work hard for it, that is an accomplishment. You’re not done yet.
00:10:55.830 At the same time, you did hit a milestone in connecting with another human. You should note that and be proud of yourself for it. Let’s look at what happens next after you clear this first hurdle. The second variable you need to identify is willingness. If someone understands your request, you need to ask yourself: are they willing to do it?
00:11:40.200 If someone is willing and agrees, that's the happy path we talked about earlier. Every now and then, you get someone who doesn't agree, thinks your request is a bad idea, but is willing to do it anyway: 'Let’s include unit tests in every change request.'