>> 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 ]