 Okay, what I really want to talk about today is explanations and let me start first by explaining who I am My name is Russ Olson. I work for a company called relevance. It's headquartered in North Carolina I live in Virginia where it's very humid and I'm now here where it's very not I've written two books and I'm working on a third and I hope you will buy many many copies of them But I didn't always start out as a as a programmer. It's funny. We all raised our hands yesterday Who has a BS in computer science? I have a BS in mechanical engineering And I started there. There's a few refugees and I so I started out doing things with gears and bearings and you know that kind of stuff and One of the things one of the things I found frustrating about that was you were always up against limits There's always a limit in mechanical engineering. There's friction on the gears The bearings will only take so much weight and then they'll fail Your heat engines are only so efficient and so you get equations like this Which are just all about the limits of what you can do in particular that middle one Which is the efficiency of a heat engine is Built into the fabric of the universe It's one of the fundamental laws of physics and there's no getting around that and I was really frustrating Because I always felt like there were things I wanted to do but I couldn't do them because there were these limits and so I wandered in the computer programming and One of the I mean I Guess one of the attractions was I didn't feel even a long long time ago when I first started that there were the same Kind of limits that there are mechanical engineering So I'd like to start with the question, which is what are the limits to what we can do? Right, we do all kinds of wonderful stuff, but we can't do nearly what we want to do What are the limits? Well, I could think of one possibility There's something that might be limiting us Or maybe it's guys in funny hats Or maybe it's these three guys But you know what I think it's all of us We make things out of ideas our tools are abstractions our raw material is data Right. Yes. We have you know the CPUs are only as fast as the CPUs are there's only so much memory and only so much This space but in the end the thing that limits us is Ourselves the thing that limits what we do is what we have up here in our heads And you know you sat through yesterday afternoon where people were talking about struggling to learn the things that we do That's the limit Okay, and I want you to just think for a second About what the world would be like if we were all just a little bit smarter Okay, if we're all just five percent smarter if we all just knew five percent more than we do right now What could we do? Well, the only way that we can get smarter is To explain things to each other Okay, you all know stuff, right and you all know different stuff and I know some things and the only way We can get the stuff the information from my head in the your head if it's at all difficult is to explain it Right, and I'm not talking about you know what I'm doing here is the least important kind of explaining That can be done It's the least important because it doesn't happen very often the important kind of explaining is the stuff that you do When you're walking down the hall and you get a co-worker and he says or she says how does this work? And you tell them that's the important kind of explaining because if you get that right You get that right then They'll be more efficient at their job and they'll make your company better You know we think of like If you're in a startup and you're doing a sales pitch we think of that as sort of sales. That's not sales That's explaining you are explaining why someone should invest in your company or how they should buy your product That's the important kind of explaining. How does this work? What does this function do? How does this class work? It's that day-to-day stuff just the overwhelming volume of it That is the important explaining that goes on. So what I'd like to do today is Talk about five ways to make your explanation stick that have good explanations Explanations that actually work because there's actually sort of an art to explaining things so number one Number one is to take it seriously Need to take explaining seriously why well because to do the right kind of explaining and as I said you can almost change the world Right, you could certainly Make your your the systems you're working on better make them easier to sell So we need to take it seriously and when technical people take things seriously There's only one thing they do They have a plan Okay, if you think about who we are and how we go about our lives We don't do anything without a plan Okay, if you think about what agile programming is Agile programming is both the most important advance we've made and I don't know 15 years and how we do what we do and It's also it can be boiled down to stop over planning everything Okay, stop planning and actually do it when we take something seriously. We have a plan unfortunately There's a default plan for explaining things the default plan comes to you courtesy of this guy That is James Joyce James Joyce wrote these long stream of consciousness completely incomprehensible novels and his plan is the default plan for an explanation. How does the system work? Well, let's see. I start talking about the last thing I worked on or the first thing or the part I like best or the part I like least the last bug I fixed the first bug I fixed Right, not the important stuff. Just whatever happens to be boiling around in my head. That's James Joyce stream of consciousness kind of Explanations and I really work very well a Better plan is the zoom the zoom in plan Okay, start with the big picture and you work your way down to the little picture because explaining is not just Information it's information with sort of a candy coating of context that helps people get the information into their heads okay, and By zooming in by using the zoom in plan You can supply the context. So what's the zoom in plan? It's pretty obvious You start with the big picture and you go to the little picture start with the earth and work your way down to the theater Beautiful theater here today How does this it yeah, what are we doing here? Well, we're trying to get filthy rich We're trying to build this e-commerce site. We need a shopping cart. We need the screen to be part of the shopping cart It's as simple as that okay the greatest top-down Context setting big picture to little picture Explanation that I can think of comes from this guy Abraham Lincoln The most famous speech in probably US political history Starts with these words and we tend not to think about them, right? They were drilled into you in fifth grade if you went to school here But if you think about what he's saying here, he's saying 87 years ago the country was founded the United States was founded So he's starting big picture. He's starting with the beginning of the country Now we're engaged in a great civil war. What's been going on in the last few years? We're here to dedicate a cemetery here this afternoon. It goes from the beginning of the country To what are we doing here today in three sentences? That's like first-class top-down context setting Okay, you do worse than emulate Abraham Lincoln a Second a different kind of plan so you can just kind of reverse it right zoom out start with the little picture We're building this Screen because we need or this page because we need a shopping cart because we are building an e-commerce site Because we want to get filthy rich Right. It's very simple So go to the other way Another kind of explanation is a process explanation Right. How does something work step by step by step? Right. How does rails handle a request? Well, it comes in it gets routed to the right controller The controller consults the model sends it on to the view the view formats the data sends it back out That's a process explanation process explanations are good plans for processes and Depending on your age at how much TV you watch there's a kid You'll recognize this process explanation or not. This is this was schoolhouse rock It was trying to explain how a bill becomes a law in the US And there was a little character. He's sitting there named Bill and he would go through the motions of you know Congress passes it and the president signs it kind of thing So process explanation There's also and again, none of this is rocket science, but it's something to think about there's the simple to complex So if you're trying to explain this bit of code to somebody, what do you say about it? Well, it depends on who the somebody is You would say one thing to an experienced Ruby developer. You'd say something different To an absolute beginner To an absolute beginner. Do you know what I say and I've said this many times. What is that? It's a loop That's how we do loops in Ruby Well, maybe Actually, it's a call to the each method Which takes a block which is actually a closure which captures the values of that That is not what you say to a beginner what you say to a beginner is it's a loop You say it's a loop and then you know you're gonna come back once they've written their first few Ruby programs and maybe have a clue about blocks and things you come back and you say Oh, well, let's talk about those loops and why they look funny Don't try to explain everything all at the same time because you'll end up explaining nothing forever Right, so you can summarize this strategy For explaining with one simple word you lie Right, you lie for good cause, but you lie now in particular You'll get in trouble with these kind of little white lies Not from the beginners who will love you and kiss you on the mouth for making it simple so they can get off The ground You will get in trouble from the experts somebody who really knows it will come by say back That's not a loop. That's a call to the each method passing in a block So I got an additional bit of advice for when you come across those situations right Explaining is so important That you lie cheat steal you do anything to get it across and if you're if you offend Some of the some people who don't have a clue about explaining that's okay They might be an expert in Ruby, but they probably don't know how to explain things Right, of course when you tell the lie make sure you go back and until the lie at some point So then it's not really a lie. So that's number one have a plan for your explanations number two is Be agile, what's it mean to be agile with an explanation? You have unit tests you drill in the people's heads You know the people you explain to and put little electrodes in there and see if they got it probably not That's kind of a what would be a slow running test anyway Being agile really if you get down to the core of what it means to be agile if you do it You measure it you fix it and your repeat. That's what being agile is So how do you measure The results of an explanation how do you know if your explanation is actually working right because to do it isn't hard Right stand up there and explain to fix it right we can figure out if it's not working. We can do something else We can certainly repeat it. It's the measuring part Well, I'm sorry that I have to say this but I've seen enough people inflict enough Failing explanations and not measure not see the signs that it's failing So let me give you three signs that your explanation is failing They look at you funny their silence or Even more key they start asking the same questions over and over and over. I don't I don't get this Well, what about this? I'm just not sure about this Okay, that's a flag that they're not getting this and that you should do something different Where something different is not just do exactly the same thing over and over again But the key thing is that when your explanations start to fail You need to keep something in mind It's you not them. I Worked for a company called relevance as I said and we have this thing Right. We don't just want to be good at stuff. We don't want to be great at stuff We want to be awesome at stuff and so we're always asking ourselves. Yeah, we're kind of full of ourselves We're always asking ourselves. What would be awesome here? So what's awesome in an explanation? Awesome in an explanation is not take this person who's sort of familiar with rails or whatever and get them up to the next level That's good. That's not bad. It's just not awesome Awesome is also not take this person who's sort of familiar with whatever it is and get them up to the next level Really really quickly. That's not awesome. That's that's better. It's not awesome awesome in an explanation is the take someone who has no clue and give them a clue it is to take someone who doesn't have the context and get them going and The good news is that there's a single failure mode That most explanations suffer so that when you start to get those blank looks and the same question Over and over and over you can think that I've probably got a gap in my explanation Okay, so what's a gap in an explanation? It's it has to do with the way we learn things If you're trying to learn Spanish, right? When you first are learning Spanish any really anything, but I'll take Spanish as an example When you're trying to learn Spanish and you need the Spanish word for red Initially you go through this painful conscious lookup process. What's the word for red the Spanish word for red is? Rojo and that's not how you pronounce it but heck with it and you do this conscious sort of lookup thing Later on when you become fluent when you're really good at it you just conjure up the word for Spanish you or in Spanish You've internalized the information you don't even think about it anymore And that happens in programming all the time you see learn a new programming language and at first That's painful. It's horrible. Everything is a fight and then you get good at it You've just forgotten that there's anything to know and that's great for learning things It's terrible for explaining things because experts know it so well They forget that there's anything to know and I think we were talking about this yesterday Somebody said actually set this up on the stage that there's you know a string is not what you people think it is right? That's an example of this right So that's the gap A gap in your explanation comes when you don't realize that you know something and you skip right over it And it just leaves this chasm in your explanation Right, and I give you a personal example of that about six months ago me and a friend of mine a guy named Dave Bach Did something very akin to what we were talking about yesterday? We kind of said if you want to learn Ruby on Rails come see us every Tuesday night We'll take about 30 people and we will do our darn this to try and help you learn it And we got a whole bunch of people some with a lot of programming experience some with almost no programming experience none of them knew anything about Ruby none of them knew anything about Rails and We tried to teach them so I want you to put yourself in my shoes If you had somebody who doesn't know anything about Ruby or Rails What's the first thing you teach them? What do you say that first day that first evening the first hour the first ten minutes? Talk about model view controller tell them how to install Ruby bundler RVM I don't know controllers active record right million things you could start with I think we started with like installing Ruby or Rails or something And there were three or four people and they all happened to be clustered in the back of the room and they just were not getting it I mean it was the same questions over and over in the blank stairs and the sort of confused dog on an angle head Kind of look and I knew it wasn't working and I kept trying different things and it just wasn't working and Finally, I almost saw like I saw like the imaginary light bulb go on and over this woman's head And she said oh, I mean it was like she had jumped the gap. She had figured it out And I'm like great. What is this gonna be and she said oh? Ruby is the language Rails is the framework Well, duh But you know what? Nobody in this room was born with that information coded into their DNA Somebody explain that To every single one of us and here's the good news Once you find one of these gaps Ruby is the language Rails is the framework hold on to it That's gold. That's the thing that no one else is explaining That's the thing that you can explain that no one else is explaining because it's disappeared from sight of All the people who know this Okay, and furthermore you can explain it to the explainers make sure when you teach them mention this And rails is the framework Okay, so that's number two mind the gaps Okay, number three Takes me in the sports Which is not a place I want to go I'm not a sports involved person My wife made me watch an hour of the Olympics this summer And I enjoyed all but like the last 55 minutes of it But I have a theoretical knowledge of sports and One of the things I know is that there's two different kinds of sporting games there's one kind which is baseball and Tennis and golf and maybe a few others and then there's the football kind Which includes hockey and basketball and soccer and a few others Baseball you play it till it's done right nine innings Right, if it takes two hours great takes four hours great It takes as long as it takes but you go through all the steps and then you're done Football there's clock 60 minutes 59 minutes basketballs like that hockey's like that so the question is What kind of sport is explaining We tend to treat it like it's baseball All right, I've got this subject to explain. I don't know Ruby on rails So I'm gonna start in the inning one. I'm gonna start with oh Maybe the stateless nature of the HTTP protocol and then I'm gonna move on the basic object-oriented Programming and inning two inning three is gonna be all about Routing and pattern matching because routing doesn't let a pattern matching Inning for maybe I'll talk about models inning five and maybe somewhere around inning seven We'll write our first Ruby application or rails application, right? You could see somebody doing that In fact, it's not gonna work because someone we're around inning two Everyone's falling asleep Okay, nobody cares anymore right explaining is a timed event There is a clock the clock runs When the clock is done, you are done explaining. Oh You might be moving your lips there might be sound coming out of your mouth But you're done, right? Where's the clock? It's in the head of the person who you're explaining things to Right, all of us have a limit on how much information we can take in Every single one of us, right? It's different on different days. It's different for different people. I suspect Having gone through a two-day conference your limit right now is a little lower than it was when you started, right? You just get overwhelmed Right, so what does it mean? Like what can we glean from the fact that there's a clock running in an explanation? How about this put the important stuff first? Right if you want them to know something stick it in the front then did this yesterday Right then said if he started this talk by saying if there's one thing you want to remember from this talk, it's I can't remember But and he put it in the front Another key thing Another key thing is that terminology is not the important stuff Okay, terminology when you're explaining something especially to a beginner is not the key thing Terminology is important Okay, terminology is the is the tool It's like a scalpel that an expert will use to separate the merely plausible from the actually correct Okay, but to a beginner. It's just an impediment Okay, especially given that if you put the terminology first, that's all they might get Here's an example. So you ever go to the eye doctor and they say better or worse better or worse, right? So we're gonna do a better or worse. All right got about 20 seconds And you need to explain computer Security a couple of the concepts in computer security Authentication and authorization even better. They both sound the light. That's always good Right. So here we go. Here's better or worse alternative one in computer security There's these two related with distinct concepts called authentication and authorization What have you really done? Absolutely nothing. There's a couple of a words or something, right? That's what a listener would get from that Try this again In computer security, there's two things that are important. Who is the person and what are they allowed to do? Which one would you rather have your office mate walk away with? One's important one's just terminology explain the terminology do it later do it in another session Do it at the beginning of conference The other good news about the clock is that it's variable Sometimes it runs faster. Sometimes it runs slower. Sometimes you can actually reset it give yourself 20 or 30 seconds more five minutes more How do you do that? Well, here's how you make the clock run faster Here's how you you run out of time and make sure you don't get to explain anything before the clock hits zero Tell them that this is really hard Okay, this next one. I'm not making up I actually sat in the back of the classroom and heard somebody say this the instructor in the front of the classroom Most people never get this Hi, you're gonna spend four hours with me and you're screwed So what do you do to make the clock run slower? Maybe push it back you get people small victories, right? You got something hard tell them after the whole thing about the plans with the With the explanations, that's really the hardest thing. I'm gonna tell you today Right, that's what you do. You don't tell them. This is gonna be hard. You tell them congratulations You just learn something hard past tense Right. Also, you can break it up if you can break things up into manageable chunks That really helps. I like the five ways to do something kind of thing. You may notice Okay, so that's watching the clock So next one number four Your bunch of engineers, what's that mean? Don't repeat yourself We love don't repeat yourself even back in my mechanical engineering days We were smart enough to know we don't put extra stuff in the machines They'll just break it'll get in the way it costs more to all the same when you're building a mechanism You don't want to have extraneous stuff. So don't repeat yourself So that's what dry means, but you know what if you look up dry in the dictionary It means some other things Having no adornment It was a dry movie just the story Impersonal he just gave us the dry facts God that Russellson does the driest talks and most damning of all Without butter Here's the thing Dry is for machines. Don't repeat yourself is for machines. It's for mechanisms. It's for things you build that have to work Make come as a surprise, but we are not machines People thrive on redundancy right Read any literature and it's full of references back and forth and people saying the same thing There's over and over that's called character development People are not machines. So you don't want it You don't have an explanation where you explain something For a long time and then just go right back and repeat it all over again But you do want to explain something and then come back to it and say do you remember when we talked about this? That's still important. So you want to repeat yourself enough and so I actually have a different acronym for that You find anything on the internet you really can that's Russell's reserve rye So So why do you want to repeat yourself you want to repeat yourself for emphasis? Let me say that again. You want to repeat yourself But mostly you want to repeat yourself for context Right, you want to remind people of where what I'm talking about now fits in with what I've talked about before So you don't want to like repeat huge sections of your explanation But you don't want to do something like the IRS always does right if you're a fill out government forms Right, they'll say something very helpful like refer to section 9.7 What does it say in section? What's 9.7 about because keep in mind 9.7 might be really really important So now we come to number five Which is probably the most important thing I'm going to tell you today and yes that does break the rule They put the most important thing first. Why am I doing that because I'm such an awesome explainer I know I can carry you all along so the most the Most important thing has to do with this book and I actually a copy of it right here It's called numerical methods that work You see when I was in college here is like a sophomore in college I fell in love with this mathematical technique called numerical analysis, which is what this book is about and I got a whole bunch of books out of the library and instead of doing what I was supposed to be doing I spent like the whole semester reading about numerical analysis and writing programs and The details of an American analysis aren't really important The thing to keep in mind is that it's a mathematical technique that sometimes works brilliantly and very occasionally blows up horribly just awful yet answers that aren't even close and So I had all these books spread out on the library table And I was next to a window and the Sun was streaming in and this book Well, I bought this one on eBay and steal from the library This book was sort of sitting there like that the Sun was hitting it And I realized that there was like something else on the cover that looked like letters You couldn't quite read it, but and it's sort of you know, I spent the next half hour What is that and eventually I did that thing that people do with monuments sometimes you get the piece of paper You put it down there and you get the pencil right and you spread all over it and I did that a few months ago and Well, there's where the thing was I did that a few months ago I don't know if you can read it Here's the thing It's one small joke. It's just a tiny little joke, and it's all the better That's the only place where that word appears. It's nowhere else in the book You know it with the title nowhere else is there a hint that that usually is there Right. It's one small joke and here's the thing. I Can't remember the title of any of the books I read that semester Except that one. I had absolutely no trouble Finding that book on eBay a few months ago It's one small joke that made me remember something for decades So number five is mixing some humor Okay Which brings up the question. Are you funny? Hey, if you are funny Let me just sort of step back say don't let the jokes overwhelm the explanation, but go I have nothing more to say to you What if you're sort of funny? I think of myself as sort of funny. I can be funny sometimes, right? So don't let the jokes get in the way Subtle is better, right that that word is just kind of embossed. They're waiting for somebody to find it and For God's sake, don't explain the jokes jokes are not a place to explain anything Okay But now we come to the hard case What if you're not funny and you know it, you know, you're not funny Congratulations your head and shoulders above the people who aren't funny and don't know it, right? So that's that's good Okay It doesn't really matter if you're funny or not humor is one way to get to what I'm talking about But it's not the only way Well, I said mix in some humor. I really mean mix in some humanity Okay, you need to show up at your explanations. You need to be there You need to let the person you're explaining things to know why it's important Right I Brought my book. That's the little piece of me that I brought But if you think about this conference with all of the incredible speakers we've had right Sandy brought the baby Which is possibly the only time that those words will ever be uttered What more can I say? Then brought God well the God class right then was willing to say here's some code that I'm not exactly proud of Let me show it to you that takes some stuff Right Angela brought a cold Right, but she also brought Her heart, right? Anybody not feel that anybody not pay attention Right you need to show up at your explanations You need to show up because explaining is one of the most important things you are gonna do Right you write some code and then you explain it for the rest of your life Okay, you need to show up at your explanation. I can tell you all the stuff, right? I could say that people are social animals and That by showing up at your explanation you pop provide an important social context Or I could tell you that it just makes the explanation more fun more interesting But really it just comes down to Seven simple words if you don't care. I don't care So conference is almost over it's been a great conference You're all gonna maybe go on the hike and then head home. I wish you safe trip They also wish that when you get back to your office You think about what all of these techniques, but most of all you think you start explaining you start explaining because It will make your company better. It'll make your work environment better It'll make the people around you better it might even make the world better And I think you're just a group of people to do it. Thank you all for listening Sure be happy to do questions if anybody has any sir Do it over and over and over I'm sorry. The question was how do you well? It's hard for me to repeat the question How do you how does he get as good as me in presenting and really it's just all about practice. It's The first time I did this I was an absolute nervous wreck and a disaster and as the people over there in that corner will tell you today I was an absolute nervous wreck five minutes before this talk. Maybe it's not so disastrous. That's that's the difference So anyone else? sir, I Think you have to treat it as like an interactive kind of thing. I think you need to Let people know when you're completely lost like you need to give them some rope like they might lose you But they might get you again But at some point if you're completely gone It was like I forget who was talking about the the bad pair programming kinds of things you need to You know pull on the rope the other thing you can do is so frequently the most common failure mode with an explanation is this gap they've skipped over something that's not there and You can help people explain things by saying, you know what pretend I'm a third grader now explain it to me Right now. I don't get that pretend that's a fifth grade explanation pretend I'm a third grader, you know and pull them in and eventually They'll say it maybe They want us all right. Thank you all again