RubyConf 2015

Los programadores Ruby no son tan racionales como parecen

Laura Eck  · 


Extracto de la transcripción automática del vídeo realizada por YouTube.

- Alright, hi, everyone. I'm Laura and I'm a developer. I work for testCloud in Berlin. I live in Tokyo and I work remotely from there. This is me. Just in case you wanted to know, and see a second image of myself. Alright. To start out with, I have a question for you.

Or, actually, I have two questions. But I'll start with question number one. So, who in here has ever had to work with a really weird, old legacy system? Like, not even, a complete ribble, just had to deal with it somehow. Please raise your hand if you've.

. . Alright. Second question: who here in this room has a brain? Please raise your hand if you do. Not everyone has a brain? That's kinda surprising, but, eh. . . I assume you all have one. Alright, so, everyone who raised their hand for question number two should in fact also have raised your hand for question number one.

Because what our brain really is, is a big, fat, old legacy system. And it's been a while since the last hardware update. The good news. Our brain is extremely powerful. And it can do a lot of amazing things. The bad news? The documentation is pretty crappy.

Their error-handling is not that great either. And we can't even debug it because we don't have access to the code base at all. So, that sounds like a nightmare of every programmer, doesn't it? The problem is, we can't quite walk out on a project manager and just quit.

We're kind of stuck with this obnoxious and brilliant heap of jelly in our skulls that helps us to process and react to our environment. That helps us to reason about abstract problems and actually lets us create, communicate, even program. And on the other hand, it constantly keeps forgetting people's names, it reminds us of awkward situations from years ago, in a very random fashion.

And it constantly makes decisions for us without even asking. So today, I would like to talk about how we can understand our brains better. The way they work, and also these weird, little flaws that are called cognitive biases. And what to do about them. You see? We as programmers, we really like to look at ourselves as a group of people that is somehow more rational than others.

Because, after all, we earn our living by talking to machines every day and machines aren't exactly known for being super emotional. So. If we make technical decisions or if we plan projects or if we assess capabilities or competencies, it's just fair to assume that we adhere to rational standards.

And that's what we base our decisions on, right? Well, I have a surprise for you. Programmers are human. And they have human brains. To be fair, most of the time, our brains do an amazing job. They have to process vast amounts of information and they somehow have to come back to us with appropriate reactions.

Like, how to deal with all this stuff that comes to us all the time. You see, the human brain is really old. And many parts of it developed when social coherence of a group was actually really important for survival. And things like accurate and quick assessment of threats.

When it really mattered what your peers think of you because being ostracized might well mean that you're gonna die. And race conditions were a completely different problem than what they are to us nowadays, most of the time. So, what is cognitive bias? Cognitive biases are heuristics that the brain uses to process information in a very quick way and come up with appropriate reactions.

They're pretty useful, most of the time. But they are not perfect processes. So they can actually lead to some pretty sub-optimal behavior and decisions. The thing is this: we are all biased. That's something that's very important to understand. It's natural.

It's how our brains work. And, it's not really necessarily a bad thing. You know, our brain uses all these shortcuts so it can actually deal with all that information that's coming to us and give us back something reasonable. So we don't just get an information overflow because the brain gets stuck with all these details.

In fact, our brains have different modes. How it acts, and I'm gonna show you two really simple examples. That will illustrate this. So, when you look at the next slide. There are a couple of things that happen to you, without even noticing. You recognize right away that this is a person, a child, in fact.

And also probably someone you haven't seen before, or maybe you've seen them but you don't know them personally. You can also tell right away that she's currently not happy at all. And if she was standing right in front of you, at this moment, she might be very close at starting to cry or actually shout at you.

This process of recognition and perception is something your brain does really quickly and effortlessly for evolutionary reasons. It's important to understand, "Oh, this is another person, they're what I am. " And to understand what they feel like. And in this mode, the brain also does a lot of very quick and automated decision-making.

Where we often don't even realize that is happening, just because it's happening so fast. And oftentimes, it sacrifices accuracy and correctness for speed and approximated results that are okay most of the time. And it's officially large number of times. When you look at this, on the other hand, unless you're really good at mental arithmetic or you still remember your multiplication table from elementary school, which I don't, to be fair.

Your brain probably drew a blank here. Like, there's no evolutionary reason why our brain should be able to automatically process semi-difficult multiplication problems. So it can't and there's not really any way for it, unless you actually memorized the results.

To spontaneously come up with them. So you can probably tell that this is a multiplication problem by looking at it, because that's something you've learned, so you can recognize and you can also tell that five and 5 million is probably not a very reasonable estimate for a result.

But if you really want the result, you have to actively start thinking about it. You have to start calculating. And that's a lot slower, a lot more difficult, and a lot more demanding than a fast-thinking mode. Put simply, when our brain is in fast-thinking mode, it uses cognitive biases to approximate solutions.

And like all approximation approaches, this does not prioritize optimal solutions. But it prioritizes coming up with a feasible solution in a reasonable time. You can't really turn this off. It's hard-wired into our brains. But, in some situations, there are ways how you can work around it.

[ ... ]

Nota: se han omitido las otras 3.158 palabras de la transcripción completa para cumplir con las normas de «uso razonable» de YouTube.