Keynote - Jacob Kaplan-Moss - Pycon 2015

/
>> Hi, y'all. Before I start just very quick announcement. If you bought anything at the

>> Hi, y'all. Before I start just very quick announcement. If you bought anything at the

wonderful PyLadies auction last night you need to pick it up at registration. During

the break. I've already picked my tie up. >> Nice tie!

>> Thank you. Good morning I'm Jacob Kaplan-Moss I'm one of the contributors to Django and

I'm the director of security at Heroku. When I say thank you I really mean it. It's hard

for me to over state just how fantastic it is to be up here speaking to you. This is

the highlight of my career. This is the apex of everything that I've done

and I'm not exaggerating this community means more to me than anything in tech, in my professional

life. I've spoiled the punch line there, didn't I?

I've been coming here to PyCon for 11 years. This is my 11th PyCon this is the 10th anniversary

of first getting on stage. I gave me first talk at PyCon in 2005 in Washington, D.C.

I gave a talk on app script, it was utility to bridge apple's AppleScripting framework

with Py on this. Also in 2005 Adrian gave a tech demo of some tools that we were building

internally at the newspaper in Lawrence, Kansas, using to build our websites. Those tools became

Django and now Django is ten years old and is used all around the world by thousands

of companies in many different industries. I've watched this conference go from 300 people

to close to 3,000. I've watched our community explode with new faces and growing diversity.

I've been involved in planning this conference, in membership with the PSF in discussions

about core language development. I've been floating in and out of this community at various

levels for a decade. When I say this is apex of my professional career I really mean it.

This is pretty incredible. The problem is that right now my main emotion is in security.

As a voice in the back of my head that's telling me, you don't deserve to be here. Look at

the amazing people you shared this stage with. Who are you?

What did you do to get up on stage with them? You don't belong on stage with them. You don't

belong or deserve this success. Jay smooth calls this voice the little hater.

Oh, man, audio. >> Let's try that again. ���

>> Doctrine is back in effect. I haven't done a video in a long time. Been a few reasons

for that. Reason number one, both my cameras managed to stop working. Reason number two,

I was busy with my first ever trip to Los Angeles. For this big web video event called

"the winnis"e shout out to everybody. The other reason I haven't been doing videos for

awhile basically, I don't always feel like I'm cut out to do this stuff. I'm sure some

people wake up every day feeling confident that the entire world wants to look at their

face and listen to them talk. But I'm not one of those people. When I'm in the groove

of getting work done I feel like I'm making a connection with you guys out there and my

ideas are resonating with you, it feels natural to keep showing up and maintaining that connection.

But if I go too long without putting work in it feels like that connection is broken,

there's a little voice inside my head that starts playing tricks on me trying to convince

me that the connection was never really there. I think this is true for all creative people

that we each have a little hater that lives inside our heads tries to set up traps for

us. Jay's awesome. Everything that he's done is

fantastic. When I hear him talking about his insecurity I think about my little hater,

my little hater tells me that I don't deserve my success. The really insidious thing about

this voice for me is that there's like a little bit of him that's right. And this isn't like

a humble brag I'm not being false modest right now, there are things that I've done that

I'm incredibly proud of there are things that I've been involved in and things that I've

led that I feel do qualify me to be up here. But I don't think they're the things that

you're thinking about. You probably think I'm here because I'm the inventor of Django.

Right? But that's not actually true. If you know

a little more about the story about how Django came to be you might know the co-creator of

Django. That's actually not really true either. The fact is that I was hired to work at the

newspaper a year after Adrian and Simon invented and co-created Django.

Really I'm the guy who got hired to work on the thing a year after it was already made.

But people still assume that I'm somehow responsible, people assume that this is because I'm incredibly

programmer that I'm a rock star, a Ninja or whatever it is that recruiters are calling

it these days. And people suspect that I'm successful because of my programming skill.

That's not true. I'm at best an average programmer. This is Anne Trason probably the most accomplished

ultra marathoner in the history of the sport. What's ultra running?

Ultra running is any distance over a marathon over 26 miles. Most of these races are on

trails, most of them involve substantial climbing, technical terrain, crossing streams and rivers,

some of the hardest races can take multiple days of continuous running to complete. The

common distances in the sport are 50k, 50 miles, and a hundred miles. For those who

haven't heard of ultra running, a quick FAQ, people really run that far?

Yes. Really? Yes. This is the map of the western states

100 it runs from squaw valley in California, all the way down to Auburn, again a hundred

miles over a pass, all on trails. Ann won western states 14 times over about two decades.

She said, dozens of course records across the country in the '80s and '90s many which

still stand today 10 or 20 years later. In 1994, she set the course record at the leadville

100, this is 100 mile race mostly above 10,000 feet. Breathing up there is like breathing

through a straw. Her course record, very few people have come within an hour of her record.

It's never even close. That record stood for 20 years and no one's come within smelling

distance of it. It's hard to think about -- hard to over estimate just how dominant, just how

exceptional Ann was in her sport. I'm talking about this because as of few weeks ago I get

to call myself an ultra runner as well. I finished my first 50k.

[ Applause ] Thank you. I'm of course not even remotely

in the same league as someone like Ann Trason but I am, I do get to wear the same label.

I'm a mediocre runner. I finished 535th out of about a thousand. Felt pretty good. The

thing that is interesting about this sport is that we can quantify it. We have lot of

numbers that help us figure out how to measure performance, we can talk about pace, talk

about distance, we can talk about elevation change, the technicality of the terrain. There's

a lot of ways that we can account for the skill gap between me and elite athlete like

Ann. There's one site ultrasignup.com main Url to sign up creative. They calculate they

call runner's score. Mine is 68%, that means across all of the races that I've run I typically

finish in about 68% slower than the winner. So the winner score is go to be 100% someone

just barely doesn't win is going to be 99% I'm down there like 68%. Over states it a

little bit, what is cool about this you can look at it broken down by distance so I can

see that my performance falls off as I run farther which means I got to work on my endurance.

My score is 68% Ann's is 98.58%. In other words, she usually wins. Right?

This isn't surprising that there is that much of a gap between me and average runner elite

runner. If we break down -- were to plot a histogram of all the various times and scored

we'd come up with a shape like this. This should be familiar shape to anyone who has

done any rudimentary statistics, a bell curve, a normal distribution. Most people are average

and few people are exceptionally good, few people are exceptionally bad on the skinny

ends of the curve. This isn't a surprise if we see -- when we see this pattern we call

it a normal curve. Because we see it everywhere. Almost every skill that we know how to measure

ends up showing a distribution something like this. With most people behaving around in

the middle and few people exceptionally good and few people exceptionally bad. When I said

I was mediocre programmer some of you probably didn't believe me. I sort much set it up,

I led up to it, I spoiled the surprise you probably didn't believe me when I said that.

But why? Right?

We know that most skill tends to fall into this normal distribution. So, most of you,

the vast majority of you never actually worked with me, why would you assume that my coding

ability is exceptional? Why do you think I'm out there?

What is it about what you've heard, what you see, what you think you know, that makes you

Intuit that I'm under the skinny end? The absence of any other data shouldn't you

assume that I'm solidly in the middle? Well part of this is that, how do we even

measure coding ability? We're -- we are so -- we are infants in figuring

how to measure our ability to produce software. What are our metrics?

Lines of code? What does that measure?

Story points? What even is a story point?

We'd like to think we work in a field that's very logical and analytical and fact-based.

But the truth is we don't have any idea how to talk about what we do in any sort of technical

or systematic way. We do what humans do when we don't have data we make up stories. This

is a human thing, we do it. We tell ourselves anecdotes and stories about people's ability

to program. The problem is that these stories are simplistic, this is what we do as human

beings. We stereotype. We architype we say that people suck at programming.

We say that people rock at programming. We don't leave a lot of room for the in betweens.

We bucket everyone we know into an amazing programmer or a worthless use of a seat. We

seem to fall into this assumption that skill in our industry is distributed in a U-shaped

curve. Most people are either on one end of the extreme which doesn't make a lot of sense.

Aren't you learning throughout our career? How would we go from being absolutely terrible

to absolutely wonderful any sort of in between. But we only tell ourselves these two stories

allow ourselves two possible narratives, why did you think that I was under the skinny

end? Well, you have two narratives, you have crappy

crammers and amazing programmers you know that I'm associated with Django so the crappy

one doesn't seem to fit you pick the good one. Makes sense, right?

But we know again that if we could measure programming ability would look like this.

Why? Because most people are average at most things.

This is not lake Wobegon most people are not above average. The assumption that programming

falls into this bi-modal distribution is dangerous and a myth. And this talent myth sets up a

world you can't program unless you're a rock star or a Ninja. And it's actively harmful

this myth is keeping people from programming. It's driving them out of programming and it's

preventing most of the growth and improvement that we'd like to see.

[Applause] The U.S. bureau of labor statistics estimates

that by 2020 there's going to be a 1.5 million job gap. In other words, there is going to

be a million and half unfilled programming jobs in the U.S.

By 2020. Five years. The EU published similar numbers, 1.2 million in 2018, three years.

It's clear from sort of industry standpoint take really broad view we have to be doing

something to get more people into our industry. Right?

Sometimes talk about this as the pipeline problem, we need to get more people into tech.

The talent myth is a filter on the front of that pipeline. Prevents the m from getting

into this career, into this job. Into learning the skill. If we believe talent is Bimodal.

It lends to the belief that either born with programming ability or not. That it's innate

attribute. That you have an innate talent or you simply don't. Somebody who doesn't

know how to write software who believes this myth, I'm 30 or 20 or 15 and I haven't written

code yet I'm never going to. Or 40 or 60. Only options are amazing or terrible we believe

that you have to be passionate about your career. You have to think about programming

every waking moment of your life because if there's only two options the minute you take

your eye off of it, you're going to slide right from amazing to terrible again. So we

have to always be working in our off hours, have to be working crazy hours at work have

to study on our own time, et cetera. Last year over half a million people ran a marathon.

Did all of them have innate talent? I doubt it. I didn't. I didn't start running

until I was 25. Most of them like me ran this marathon rather badly. A few people out front

ran it very, very fast and all of these people, pretty slowly. We don't believe you have to

be passionate about running. All of it takes is a pair of shoes. Don't even believe you

have to particularly like it. How many runners do you know that kind of hate it?

Someone asked me one time what the best part about running the 50k was I said it was finishing.

Running a pair on this is really hard. It's 26 miles, takes sometimes years of training,

thousands of miles, it requires commitment and focus. Do you think that writing software,

that writing Python is harder than running a marathon?

Why aren't there half a million people here today?

Why do we tell ourselves such different stories about one skill, coding and another skill,

running. I want to tell you a little story of what these narratives do to individuals.

Couple years ago I was at Kansas university's GIS day, GIS day are these one-day GIS, geographic

information systems events held at universities all around the world. I love going to K.U.

it's always exciting and interesting, I'm a total dabbler in GIS but great seeing professionals

talk about it. Each year in the afternoon students give presentations about their projects.

These are technically detailed, really interesting talks about original research, any one of

those talks could be a session here at PyCon you'd all think it was the best on the schedule.

Why aren't these speakers here? Well, one student a few years ago gave a particularly

fantastic presentation, it was about predicting seasonal floods on the Kansas river using

a combination of historical data and flow analysis and rainfall data those sorts of

things. The tools that used should be pretty familiar to a lot of people in the room. She

used Amazon web services, Linux, Postgres QL, Django, geodjango. I was hiring Python

developers, she had just written thousands of lines of Python code. I asked her if she

wanted in to interview with us. No, no, I can't do that. I'm not really a programmer.

This is woman who had just invented her own cluster distribute geographic information

systems processing data pipeline. But she's not really a programmer. Because programming

is something you in myth not something you do. The truth is that programming isn't passion,

it isn't a talent just like some things that you can learn. It's not even one thing, I've

been talking about programming as if it were a single thing, but that's not actually true.

Alex when he was reading a draft pointed out to me software development requires all sorts

of skills, coding is just like one small part of it. We need design, we need communication,

we need writing. We need debugging we need to have at least one person who understands

Unicode. [ laughter ]

There are multiple independent skills, when we assume that they're all required to be

a programmer, we assume that a person is the minimum of their parts. Sure, you might be

able to design well and speak well and write well and you're a great project manager but

you don't know how linked list works so get out of the building. Like any skill you can

program, you can do any of these skills professionally or occasionally you can do them as a hobby

or part-time job, as a full-time job. You can do them badly. You can do them well or

most likely you can do them average. If we embrace this idea that it's cool to be okay

at these skills, that being average is fine, it will be less intimidating for newcomers.

If we set the bar for success at okay rather than at exceptional, that bar seems a lot

easier to clear for people new to our community. Even once we get people in, the talent myth

haunts people who are already in our community. And it actively drives people out of tech.

This is the part of a talk that's a little bit of a downer. But we have to acknowledge

it, it's rife with sexism, racism, homophobia. There isn't one cause, but the talent isn't

one of them. It contributes to these. In our industry we have the myth of the brilliant

Asshole. The 10X programmer who is so good at his job that people have to work with him.

He has such great output that, yeah, he's a jerk, but we still have to work with him

anyway. The argument goes that we need this output so the toxic behavior is acceptable.

Now in reality we know that skill is normally distributed, so it's likely that these people

aren't actually exceptional. But even if we grant that they are, how many developers does

a 10X programmer have to drive away before they -- before it's awash?

[Applause] More insidiously this idea that programmers

fall into either sucks or rocks categories gives us dangerous Bias I want you to think,

answer this question. What does a 10X programmer look like?

We probably thought of someone like this, mark Zuckerberg, a young white man that's

who we have seen on the media, don't spoil it. That's who we've seen on the media. In

tech company mastheads and so on. But that's not actually mark, that's Jessie Isenberg

who played him in a major motion picture about a young white man founding a tech company.

That's mark Zuckerberg. Sorry that's not. That's Andy sandberg, Andy is an actor on

"Saturday night live" who played Jessie Isenberg playing mark Zuckerberg, I think that's mark

Zuckerberg. I'm trying to be funny here, I guess for some of you I succeeded.

There's a point here, this young white man architype is so common that we need three

people to play the same person. Which one is -- anyway. When we see someone who doesn't

fit that, doesn't look like these three men, we assume that they're not a real programmer

because that is what a real programmer looks like. Almost all the women in this industry

I know have a story about somebody assuming that they're not actually a programmer. I've

talked with multiple women here at PyCon this year, who have been asked which guy they're

here with. The only reason they would come is because their partner, the man, is the

programmer. If you're a dude has anyone every asked you that?

On the other hands, when you saw me get up on stage I do look like those guys. So you

probably assumed I was a real programmer. These sorts of assumptions about what makes

a real programmer contribute to the marginalized people in tech.

All these numbers come from NCWIT, I'm going to forget the acronym, you can Google it,

they do a report on the state of women in technology. National Center for women in technology,

I think that's it. Half of women with CS degrees are not employed in industries using those

degrees. 40% of women leave technology within ten years compared to 17% of men. Over half

of women leave the industry at the mid point of their careers. Certainly other causes.

I don't want to imply that this is a problem that -- with only one root cause. But imagine

how frustrating it has to be to be woman with a decade of experience have someone assume

that you don't know what you're talking about. It's going to take serious effort to fix our

diversity problem. We're never going to get there. We're never going to solve this program

if we can't figure out a more nuanced way to think about what a programmer really is.

And what programming skills really are. There are all kinds of runners, sprinters and distance

runners and marathoners and you will that marathoners and people who run on the weekends

and people who run every day. And people who run professionally. And those who are dilettantes.

There are runners of all sizes and shapes and genders and ages and races. All of them

have different metrics for success you, all of them are capable of being successful by

their own metrics. We have got to find such a nuanced shaded, interesting way of thinking

about skill in tech. I'm going to close with one more story. This talk started as a conversation

I had with Lynn root at PyCon some years ago it planted the germ of an idea in my head

that grew into this topic and eventually this talk. Lynn is a programmer, she is founder

of the San Francisco chapter of PyLadies. She was one of last night's auctioneers. She's

a PSF board member. She's been in and around this community for awhile. At the time PyLadies

was relatively new. I was excited about just the energy and excitement and the people and

the skills that that group was bringing into the industry and I said to Lynn something

along the lines of, you know, it's so great to see all of these bad ass women programmers.

And Lynn said, yes, that's true. But, we'll know we've been successful when there are

whole bunch of average women programmers. [Applause]

The myths we tell ourselves about talent in programming sets an impossibly high bar for

entry. The fact that any of us are here at all is kind of shocking given this myth. We

need to dismantle it, we need to build a community where we recognize that average is actually

pretty awesome. So, I'm a mediocre program I would like to invite to you join me and

together we can do our jobs perfectly adequately. [Applause]

[ Cheers and applause ] All right. Thank you. So I can take questions,

a few of them. Before we do, just observation about questions that I've seen throughout

this week. There's been a pattern of people who get up and use the time not to ask a question

but to share their opinion or to pontificate on what the speaker has said.

[Applause] I am very personally interested in that, I

would like to personally hear that type of feedback I invite you to e-mail it to me or

tweet it at me. But my experience sitting in the audience during those types of non-questions

is frustration and anger. So I'd like to please ask people to ask questions. Thank you.

[Applause] >> Audience: Thank you very much for this

amazing talk I think it's really helpful. I would like to get your opinion about another

community I'm involved in, that I would like to know if you know some security expert how

average people like if security is also an applicable field for average people or is

that like reserved to Ninja and rock star? >> If we think we have this problem in the

programming community you don't know the security community. There's a reason that I attend

and speak at programming conferences not security conferences. It's even worse. Yes. That problem

exists in that community and, yes, there are plenty of perfectly average security people

as well. But they set -- tell themselves this myth to an even higher degree. And it is even

more difficult for people entering those communities. I wish that I could give this talk at a security

conference but they probably wouldn't have it.

>> Audience: I'm also a mediocre programmer. >> Hi!

>> Audience: How do you think the idea of expertise or depth intersects with this dimension

of full stack or breadth because there's also this expectation of not only are you expert

or not but you are generalist or specialist -- how do those combine in good or bad ways?

>> Yeah. That's part of the myth, right, that you have to be broad and deep which you have

to know everything about everything, is that possible?

I think this is again one of these situations where we need a more nuanced understanding

of skill. Some people -- I'll brag a little bit, the thing that I'm good at is knowing

a little bit about a lot of things. I'm not good at going deep or understanding lots of

things, but I'm -- understanding the details of a thing but I'm very good at understanding

a lot of little pieces. We need to understand that that itself is a skill along with people

who go on the other Axis who wants to go the other way. These are both complementary, if

you're looking organizationally you want both of those types of expertise. Right?

I think that that is part of that myth that you have to somehow impossibly know everything

about everything. >> Hi, thanks for your talk. Obviously it's

something I've put a lot of thought into myself. I'm wondering, people in this room are probably

aware of this problem particularly because Python community is good about talking about

it. But what is it that we can do to help get rid of this myth back at our workplaces

so that recruiters and venture capitalists and people who are actually determining who

gets brought into the community those first threshold are actually going to be aware that

this is something that's going on? [Applause]

>> I think that's an incredibly difficult question there's probably about 30 answers.

I'll give the first one that comes to mind, I think there is more than this. I think a

lot about work-life balance. I think a lot about the idea of the 40-hour or 35-hour work

week. Because we seem to think, I think it's related to these myths, that we need to be

working these crazy 60-hour weeks. I think that's not true. I think that's part of our

-- thank you. I think that's related to this myth, I think

one thing that we can do, especially those of us who are -- do have a lot of privilege,

who are well employed, who do have a one and half million person skill gap out there, if

our companies don't respect the idea of work-life balance and don't work the idea that doing

your job -- that we should be able to do our jobs well, adequately, should be able to deliver

to expectations. And that should be -- that should be commended and that working a healthy

schedule should be commended I think it's endemic on us with the privilege to do so,

to push our organizations to recognize and allow that to flourish.

>> Thank you. [Applause]

>> Audience: I'm Pamela and I'm a mediocre programmer as well.

>> Hi. >> Audience: The other side that have question.

How do we get people who are mediocre programmers to get the courage to apply when we have a

job opening? >> I wish I knew the answer to that. I am

personally hiring an intern this summer because I'm terrified, I don't know what to do to

create a healthy environment for someone just entering, I think I know but I'm terrified

that I don't. And I'm experimenting on somebody's career here.

[ laughter ] If you have suggestions for me, please let

me know. >> Audience: Thanks.

>> Thank you all again. Everyone, the next things are downstairs in what was formerly

the expo hall. It's now the job fair and poster session. Thanks again. Have a good rest of

your day. [ applause ]

Vocabulary

Expressions / Collocations