Monitor performance issues & errors in your code

#55: How our engineering environments are killing diversity (and how we can fix it) Transcript

Recorded on Wednesday, Apr 20, 2016.

00:00 In the software field, we pride ourselves on fairness, openness and the fact that our workplaces are largely meritocracies. And compared to other environments, I would say this is certainly true. It's one of the reasons I love being a developer.

00:00 And yet, if we look at programming jobs in Silicon Valley, you'll see that over 85% of them are filled by men and less than 15% women.

00:00 If we look it from a race perspective, it's even more bleak.

00:00 Among the major tech companies like Google, Twitter, and LinkedIn, you'll see that over 90% of the employees are either white or Asian. Black and Hispanics combined make up less than 4% of total employees and probably even fewer by percent of developers in those companies. Given that they represent 28% of the US population, this means there are 7 times fewer black and hispanic developers than there should be.

00:00 Folks this is wrong.

00:00 We should all be doing what we can to help improve this balance as it's not just the right thing to do, but we'll all be better for it. This week you'll meet Kate Heddleston who gave an excellent talk at PyCon 2015 entitled "How our engineering environments are killing diversity (and how we can fix it)". What's great about it is that it comes with ideas for improving things.

00:00 I think you'll enjoy this conversation, I know that I did.

00:00 This is Talk Python To Me, episode 55, recorded April 20th, 2016.

00:00 [music]

00:00 Welcome to Talk Python To Me, a weekly podcast on Python, the language, the libraries, the ecosystem and the personalities.

00:00 This is your host, Michael Kennedy, follow me on Twitter where I am at @mkennedy, keep up with the show and listen to past episodes at talkpython.fm and follow the show on Twitter via @talkpython.

00:00 This episode is brought to you by Snap CI and Hired. Thank them for supporting the show on Twitter via @cnap_ci and @hired_hq.

02:15 Michael: Kate, welcome to the show.

02:16 Kate: Hi, thank you for having me.

02:18 Michael: Oh, I am really excited about our topic today. We are going to talk about creating reinforcing positive environments for programmers, that's going to be great.

02:27 Kate: Yeah, I am super excited.

02:29 Michael: Yeah, cool. I saw your talk at PyCon and I am really excited to share it with my audience. But before we get into that, let's talk about your story, how did you get into Python and programming?

02:39 Kate: So I got into programming back in college, my brother is four years older than me and he studied computer science and electrical engineering and he told me that everyone who studies CS gets a job no matter how mediocre their grades are because everyone is in desperate need of developers, and I was like I can manage mediocrity; and so I tried out a few things and then I took an introductory computer science class and I really enjoyed the material and it turned out throughout the whole degree regardless of kind of what grades I was getting, I really enjoyed the material and that to me was a great sign.

03:17 Michael: That's really cool, what was your first course, what language?

03:21 Kate: It was Java.

03:26 Michael: Yeah, cool, mine was Scheme, I am glad to see Python sort of replacing some of these languages it's more practical and easy to learn.

03:33 Kate: I am so jealous of colleges that teach Python as an introductory language, but I think getting exposure to Java and then onto C++ and then C, I think that that was really good background.

03:45 Michael: Yeah, nice, so how did you go from Java and C into Python?

03:48 Kate: You start working in web development out in the real world, and it turns out that in the real world people are like yes, yes, computer science languages are nice but really we need to think that's easiest for us to build something and maintain it, it turns out Python is a really great maintainable language you can build out entire engineering teams that use Python to build really robust technologies, and that is more important when you are actually building companies then I don't know, using some obscure language that is technically better on some minute detail.

04:22 Michael: Right, you know what I find really interesting and it's been admittedly a while since I've been in college, but just the disconnect between the academic environment and the sort of software engineer professional environment, it seems like there are still pretty big step change as you go across that which is kind of surprising I guess.

04:44 Kate: Yeah, it's kind of like, I felt this way about math too, I loved math and then I got to college and it turned into symbols and I was like this isn't as much fun anymore. Like I liked having numbers at the end, and so the academia it's great to know the theory but there is a certain point at which I was like I am much more motivated by the goals around why I am building something, and if I need to go learn the theory around why something should be implemented the certain way I'll do it, but I care more about the problem that's being solved than just learning academic things for the sake of knowing academic things.

05:20 Michael: Right, it's interesting to understand how you would create a relational database, but if you actually went and did that you might be kind of crazy of wasting your time, right?

05:27 Kate: Yeah, like I am not interested, that was never my personal interest, I like building things that people use, and so programming to me is a tool that allows me to solve human problems and there is a whole camp of developers who love to build technical things for purely technical reasons which is fantastic, I just don't happen to be one of them.

05:47 Michael: Yeah, I don't think I would count myself in that space either. I think, people who are not in programming, often think about programming as a solitary thing, and it's really not, and there is lots of layers there, like we are talking about your blog and apps you write and web apps and so on and you can reach a hundred thousand people quite quickly if you are lucky, right, with programming, and that's- there are not many specialties or jobs that you get that power, right, especially as an individual, but now also as teams, I think it's really interesting. And so maybe that's a good segway to talk about these environments, right. So, what's the story behind your PyCon talk, and what was the title for everyone?

06:34 Kate: The title was a bit sensationalist, it's "How Our Engineering Environments Are Killing Diversity And How We Can Fix It", a little bit of pessimism, a little bit off optimism I actually do believe that the problems that are facing, they are causing kind of like this diversity issues, I believe that they are solvable but I do think that we need to start to take a look at kind of the environmental and institutional problems that exist, traditionally a lot of people think of sexism or racism as one individual person being unkind towards another individual person in some sort of obvious way, and it's very rarely the case that that's what it looks like at scale. It's a whole bunch of little tiny details that kind of come from this environment and this institution that we set up and everyone perpetuates it and everyone has a hand in creating these environments that hurt some people more than other. And so, yeah, that's the theory behind it.

07:33 Michael: Yeah, they might not necessarily be have malice in their intent, right, they just might have negative effects that are not fully thought through or fully obvious.

07:44 Kate: Exactly, and that was my audience that I wanted to reach, there is a lot of people who have really good intentions but they don't actually know how to make things better, because it's really, really difficult to isolate some of these almost invisible problems, they become such a fabric of the environments that we are in that they become really difficult to see, that's what I wanted to do with each one of these, just kind of isolate like a core fairly nuanced problem that can be solved, that will actually have positive impacts on the environment and how diverse people are able to operate in that environment.

08:20 Michael: Yeah, and I think some tips for people on actual steps they can take would be helpful because environment and culture, especially as companies get larger and organizations get larger, is just so super hard to even influence, right, you go to some company like well this is what it's like here, like I am only one person out of this group how am I supposed to change this, and I am new, something like that, right?

08:42 Kate: Yeah. Or, just you know, if you haven't experienced some of these problems it would be really hard to identify them and I know that there is a lot of rhetoric around, you know, how things need to change and a lot of people have bought into that and then the next question especially for me as a software engineer I am like ok, great we are going to do this- how do we implement it? You know, and that was I think that's where a lot of this movement right now is kind of stalling, is like what are all the- if diversity issues are death by a thousand paper cuts, how can we get rid of a few paper cuts at a time basically.

09:19 Michael: Yeah, yeah, absolutely, I think as I look across industry I know you can't make complete generalizations but I think most people are super good intentioned, but they don't know what to do or how to make a change or even if there is something that should change, right? So you have a really interesting story, analogy, a couple of analogies you started your talk with, and one of them was about mining. Can you tell that?

09:42 Kate: Yeah, so basically, I wrote this in one of those moments of just like sassiness, I was like women in tech and marginalized groups in tech are the canary in the coal mine, and the canary in the coal mine was used to indicate to miners when there is too much non oxygen gases in the mine, so basically canaries were more sensitive to things like carbon monoxide and other types of gas poisoning and they would start to die before the miners were affected and so if the canary was dying you knew to get the hell out of the mine. But in tech, if these marginalized groups are the canary in the coal mine instead of recognizing that there is huge problem people are telling the canaries to lean in and replacing dead canaries with new canaries thinking well, if we just get more canaries in here that will fix the problem. And that's not true, like if you think about it as an environmental thing you have to look at what's actually killing the canaries as opposed to looking at the canaries as the problem themselves.

10:48 Michael: Maybe we need more efficient logistics to bring in new canaries.

10:53 Kate: The truckloads of canaries, I am totally sure that that will fix the problem with the mines. Sheryl Sanders book "Lean In" I did really like, but as with any piece with literature and ideology it can be used both for positive and for negative and so sometimes there are problems that like marginalized groups themselves can try to fix other times telling these groups to lean in is a little bit like telling the canary that's dying that it just needs to lean in a little bit more, and-

11:30 Michael: Just breath harder canary.

11:31 Kate: Just breath harder, I am sure that you can make it. And so I think that we need to really conscious to when we look at kind of the ideologies and what we tell people to do in the work place to improve their station, I think we need to be really careful that we are not putting the onus on these individuals who are in these environments and these institutions that are perpetuating kind of systems that aren't fair and then saying well if you just worked harder. Like, if you just did, if you just followed this list, you could be successful.

12:02 Michael: I think that's really interesting point, I think that's, that scales up and down society, right, across getting be more successful than your parents potentially or the situation you found yourself in, but the one we have control over the part of society that we have the most control over is our engineering environments, and so right, like applying that idea there, that is really cool. So, you started out by talking about your environment, and you had two great analogies I thought, one was around how the environment is kind of- you just acclimate the things, I think it's that resonates with me really well, like eight months ago I moved to Germany, and spent a lot of time here, when I first got here it was like everything was new and everything was different, and the sounds and the smells and the sights, and now, I barely notice, people walk by and I am like was that English or German, I kind of understood what they said but I don't even actually notice the language. It becomes no matter how different it is at first, it becomes natural in a sense. So you had this story about fish, right?

13:12 Kate: Yeah, to David Foster Wallace quote, it's a story that he told giving a keynote speech, there are these two young fish swimming along and they happen to meet an older fish swimming the other way, who nods at them and says, morning boys, how's the water- and the two young fish swim on for a bit and then eventually one of them looks at the other and goes, what the hell is water? He tells it, he tells it really well, it's his whole piece on that is amazing to listen to, it's about, it's basically about consciousness, being conscious of the world around you and the environment and the fact that people probably have legitimate motivations for what they are doing.

13:50 Michael: Yeah, that's cool.

13:52 Kate: it's great, but yeah, I mean for all of us right, like we get acclimated to our environments, it's a lot of work to be conscious of every detail.

13:59 Michael: Yeah, that's how your brain basically lets you cope and actually think about stuff, right, if you had to pay attention to everything it didn't just sort of go on autopilot for the normal stuff, then you wouldn't be able to do anything, you would just like, oh my gosh there is the door, oh look there is a window, like no, stop go back to what you are doing.

14:16 Kate: The door knob is gold, look at that.

14:19 Michael: Wow. Amazing.

14:22 Kate: Yes, it's when you are traveling you have all of these overwhelming new details that time feels really long, and I don't know if you have ever felt that like if you are paying attention to every second, you are like time is moving very slowly.

14:36 Michael: I think this is a great analogy for like our environment that we live in, just fades to the background and it has an effect on us like whether or not we are always inside or we get to go out and get the sun, you know, get exposed to the sun and fresh air. Whatever that is that we do we just, that becomes normal but it still affects us in our day to day, right. So you started talking about things that are common in engineering and software environments that are not necessarily positive, right, so you had something that you talked about, and you talked a little bit more in your blog post series, but the first one was criticism.

15:11 Kate: Yeah, that one was the most popular blog post by far, it resonated with a lot of people completely outside of the tech industry as well, the reason that I kind of discovered, I mean, most of the things I should clarify this, most of the things that I talk about are not new ideas, I have found them from other places, and kind of pieced them together to write about the engineering culture specifically, but you can find a lot of literature on criticism and so one of the things I noticed though in engineering culture is that being critical about other people or about their libraries and frameworks is kind of seen as this badge of honor. There are these habits that I saw people having where they would really make fun of other people's work as though that was appropriate. And, at first, I was like oh that's just how things are done, we are going to make fun of this library, and I had this kind of a-ha moment about criticism when I met the creator of a library that we had used at my company, we had used it and it didn't work out for us and we pulled it out and when we were pulling the library out the engineers who were doing it were just, they would just rip on it, they would just sit there and like absolutely rag on this library and why it was like the worst library that had ever been written, and I had just met the creator at a conference the week before, and I remember sitting at that meeting going oh my god, this is horrible behavior, this is really mean, and this is not ok, why is this such a habit in engineering culture, why do we take it for granted that we can walk around being really critical of other people's work. It was one of those moments where I woke up.

16:48 Michael: Yeah, sure I imagine. And, you are probably thinking well this person was really nice and they seem smart, and then here we are just completely derating them sort of through their work, not directly but more or less, right?

17:00 Kate: Right. And, every piece of code is just one person's opinion about how a problem should be solved. And if you held me accountable for every opinion that I had ever had, like man that would be brutal.

17:15 Michael: Yeah it absolutely would for all of us I am sure. You know, just on focusing on the code part of it for a moment, I think two things, one maybe that library was written with different constraints, then it was trying to be put on the right and so it might completely nail some problem and it doesn't necessarily fit here and so should maybe a little hubris and like a broader picture of the library, we don't want to judge it, right, it doesn't make sense to do that, but just thinking like well maybe this was written under different pressure and for that pressure really solves it well.

17:51 Kate: Right.

17:53 Michael: Yeah, the other thing the other thought that comes to mind is we in the software industry I think pride ourselves on the fact that we try to make this a meritocracy, it's about the quality of what we do and I think you see that in a lot of ways, you see that in like hiring and experience like somebody who went to a bootcamp versus somebody who has a Phd if their work that they can demonstrate to you is very similar, those people are basically considered equivalent, right, because it's not the degrees you have or whatever, it's like what can you do- awesome, this is what you have to bring, right, and that's really a positive thing but maybe there is something about where because it's a meritocracy people feel like if they attack a thing like that, they are attacking the idea of it, and then like it's sort of disconnected from the real person, or the real feelings behind it, I don't know that's just, what do you think?

18:43 Kate: It's interesting, I think that we have internalized this ideology that we are somehow fair, that it is somehow a meritocracy and it's, it's not entirely true, right, we are more likely to criticize libraries that people have built when that person is not present, companies are still far more likely to hire someone who is a Phd and pay them more and believe that they have more potential over their lifetime as an employee than someone who comes out of a bootcamp, and so, it's interesting to kind of see these things and how they manifest, and one of the things I found is that you can really see the cracks in the system when you start to look at how people are treated kind of the less privileged that they have. A lot of these environmental factors that we talk about, one of the reasons that they hurt kind of marginalized groups more is that privilege is a shield, it's like armor. And the more privilege you have the more armor you'll have and so some of these little environmental things aren't going to hurt you and I am seeing this with my male friends, my boyfriend, my brother, right, we being in the same environment I would be having a very different experience than they were having. And, so you know, when it comes to things like criticism, it turns out that people are far more likely to criticize women than men, they have done a bunch of research on it, people feel much more comfortable, and we see this out in society as well, people are much more comfortable criticizing women's appearance, women's eating habits, like all sorts of things and this translates into the workplace, people are much more comfortable criticizing women and it has really negative effects because it turns out that all humans regardless of what they look like on the outside really hate criticism we really don't do well with it. As soon as someone starts to criticize us we go into kind of this defensive fight of flight mode we hyper focus on the criticism and the negative things we've been told, we are less likely to progress in positive ways and again, this is true across genders, across races and in one of my blog posts on criticism and ineffective goes through some of the research about how that happens to people but the biggest issue is if different groups are getting more criticism mostly because they have less protection then that's a huge problem, that's like a lot of subconscious bias going on right there and so it's really difficult for people who are receiving less criticism to see that other people might in private instances be receiving more criticism and kind of what those negative effects are.

18:43 [music]

18:43 Gone are the days of tweaking your server, emerging your code and just hoping it works in your production environment. With Snap Ci's cloud based, hosted continuous delivery tool you simply do a git push and they autodetect and run all the necessary tests through their multistage pipelines. If something fails, you can even debug it directly in the browser.

18:43 With the one click deployment that you can do from your desk or from 30 000 feet in the air, Snap offers flexibility and ease of mind. Imagine all the time you'll save. Thank SnapCI for sponsoring this episode by trying them for free at snap.ci/talkpython.

18:43 [music]

22:16 Michael: Yeah, that makes perfect sense to me, and I personally hate criticism, I respond badly to it, I mean, constructive criticism is maybe one thing, I still do not like it, I try to learn from it or whatever, but you know, one of my theories about work and careers is that we kind of go along more or less flat doing things and then we get inspired, about something at some point, and you kind of do this step function jump of like oh my gosh, I'm going to do this thing that I didn't think I could do or whatever. And you go and do that and to me, constant criticism sort of kills inspiration and I think inspiration is one of the things that really helps us grow.

22:58 Kate: Yeah, absolutely, and you are not alone, everyone like literally everyone hates criticism, there is no one out there and if anyone is like yes I love criticism and do really well with it you should be like, well, shut up. Like, we don't need critical environments just because you for some reason have figured out a way to not care about other people's criticism. One of the ways that I discovered this is back when I was coaching sports, so I used to coach JV girls water polo and swimming, I found that when I told the girls I was coaching what not to do, they completely shut off. They looked at me, and they had no idea what to do they felt bad because they had done something wrong, because when you tell someone what they are doing wrong essentially you are criticizing them, you are pointing out this flaw and I saw none of the behavior that I wanted, which is I really wanted them to be more aggressive, to go for things and to try harder, and instead I saw them just shutting down and so I switched all of my language over and I was like ok, I am going to keep yelling at them, but I am going to yell at them all of the things that I want them to do. So, keep your elbow up, keep your hips on top of the water, swim faster, I yelled swim faster a lot at them. As a result of that, I saw exactly the behavior that I wanted which is that if you tell people what to do, and you have good reasons for them doing it, they are likely to do it, and they are likely to actually be pretty happy and pretty excited about doing it and so there is a positive way to actually give people feedback and to motivate them in the right direction, and it generally doesn't involve telling them the things they are doing wrong.

24:39 Michael: That really resonates with me. And thinking of things like code review or discussing in a group sort of white boarding architecture considerations and so on I think there is a lot of ways in which you can make that positive as well. Instead of going this code you wrote here sucks, do you know how inefficient range is for this much data in Python 2.7 or whatever like why are you not using xrange or- you know, some stupid thing like this. Like, you could say like look, this is a really good code you wrote, but if you actually did this you could actually make it better int his way or that way, right, like it sounds small but I think especially if you are new, like you have been programming for twenty years you are like yeah whatever. But if that's your fist year, like you are talking about people coming into the industry and then leaving, if that's your first year you are getting into the industry and your experience is people criticize you all the time, like, ok, that's not fun.

25:32 Kate: Right, exactly, and also when you are new you can't make those cognitive leaps, so someone with 20 years of experience if someone goes your code is really inefficient, they would look at it and they would theoretically have all the tools and experience to go ok well, here is all the ways my code is inefficient, and someone who is new doesn't have those tools, so saying your code is inefficient, you are coming in with this assumption that they were somehow bad because they wanted to be bad, when in fact most of the time people are trying to do their best, and so if you are like ok, hey like I think that this would make your code more efficient, most of the time people are receptive to that kind of dialogue, it's not criticism, it's like I think your code would be more efficient.

26:14 Michael: Yeah, it's like mentoring, or support or something like this, which is I think really positively seen.

26:19 Kate: Yeah.

26:20 Michael: Yeah, so the first thing we should probably be on the lookout for get it out of the water category and into the more like hay there is some to do, is like criticism right, across the board in a lot of ways and how we can turn that on and say it positively. The other one is arguing, right, like argument culture like we are going to basically I think this sort of orbits around the meritocracy as well, right, my idea of how this problem should be solved or what to do next and your idea, they are going to fight and the winning one is going to become our application.

26:53 Kate: Yes, and of course the ideological fight between these two concepts is pure and it's completely based on the merit and the logic behind each of those concepts, right?

27:04 Michael: Yeah, maybe until it goes through human beings and has to come out with like-

27:09 Kate: Yes, exactly, until humans are involved and then it has almost nothing to do with the logic. One of the things I always tell new engineers and even new engineering managers is that being right matters very little with humans, so most of what you do is you spend time managing people's emotions, and dealing with egos, and argument cultures are really indicative of environments that kind of let people be too emotional, actually, in their discussions, which is funny because generally when people are telling someone they are being too emotional, that is criticism that's against women. I can't tell you the number of times that I have been very passionate about an idea and been told, "You seem really emotional right now, you seem very frustrated." And I am like—

27:57 Michael: That's horrible.

27:58 Kate: [laugh] Like, I do, I have emotions right now, I can name all of them, can you name yours, like and that's part of the problem is that we actually, we don't value emotional literacy as much as we should, but we have these environments that really allow people to try to express ideas and to win arguments, using a lot of emotional manipulation tactics, and aggression is one of them, arguments where you raise your voice, you use your size, and you yell at someone, you insult them, these are all like non logical emotional tactics to try and win an argument that have nothing to do with the merit of your idea and unfortunately you see those tactics again used against people who have less kind of privilege, and less defense, against them.

28:44 Michael: Right, and even maybe physical stuff on your side, like if you are a woman you are on average probably smaller than the guys, you may be yell less loudly, I don't know, and so just these are not necessarily nice match ups I guess. So you talked about some really interesting places and society where argument culture is deeply embraced; one was the legal courtroom area and what was the other one, I don't recall, maybe they both are the same?

29:18 Kate: Arguments are kind of tend to not to competition, which is embraced in the legal system that uses argument as a form of competition and sports, they don't use arguments but basically sports are the classic arenas for competition.

29:33 Michael: Right, and the big you pointed out was those have rules, right?

29:37 Kate: Yes, and the reason that those, those arenas are important to look at is that the goal of argument the distinction that I make and some people disagree with this distinction, the distinction that I make to clarify is that an argument is an exchange in which winning is the primary objective, and the discussion is a conversation in which the truth is the primary objective, and so, those can look different, so I could be having a very passionate discussion with someone, because there is equal trust on both sides, we are actually trying to come to a common truth, and that's a discussion, and an argument though is where one party wants to win, or both parties want to win. And the problem with winning being the goal is that people will engage in really bad behavior in order to win so cheating, lying, and that means that you need really strict rules around how people are allowed to argue, so the legal system obviously has a very strict system, with how each side is able to present its arguments, the types of words that are allowed to be used, theoretically how much they allow to attack or not attack people who are participating in the case, there is a judge who presides over it, I mean, there is a lot of rules around the system of arguing. Similarly in sports, you've got refs, you've got they have a little less policing than they probably should have but they have a pretty strict system of rules right, and people still cheat.

31:06 Michael: You have a instant replay and you can actually have like a television review of the thing like up close and super slow, yeah, and if just you break the rule a little bit like no, the little bit of dust was kicked up as they stepped on the lines so we know this doesn't count, or whatever.

31:23 Kate: And people are very strict about it, and even still you have deflated football controversy which I mean, I can't comment on what happened but like I mean there is still these massive controversies around cheating or lying or lawyers being unethical and so you know those rules have proven to be very important because even if it's only a small percentage of people who are willing to lie and cheat my joke about this is how many assholes does it take to ruin the workplace? One, it takes one. [laugh]

31:56 Michael: Yeah. One, maybe two depending how big the workplace is, but yeah, it's a very small number actually.

32:05 Kate: So you really need someone, one person, one two people in your proximity being really aggressive and being really kind of unkind and in the pursuit of winning to make it a really miserable workplace for a lot of people.

32:19 Michael: The major essence of that I think as you pointed out is that there is no or very limited regulation and monitoring of sort of these types of arguments, you just, you had a meeting for two hours, we've all gotten to the conference room and argued about how we would build the next app and then we decided.

32:40 Kate: Yeah, and if someone is winning and they are willing to be unethical then they are going to use kind of whatever weapons they have against you and it turns out that the marginalized groups in tech, there is a lot more things that can be weaponized against them, so you know, for women, the example is emotions, like when someone is like, "Kate you seem really frustrated," that's a way of weaponizing this idea that women can be inherently too emotional to be logical. That like emotions undermine logic, which is super funny because it turns out that you actually need emotions to make decisions so if the emotional part of your brain is compromised, you become incapable of making decisions. So every decision is emotional, period, whether you are a male or female or whatever. But it's a weapon that can be used against one group that isn't something that is used against the other group, and so you start to see these kind of like teared system of how fair or unfair it is for someone to kind of try to move up in that environment.

33:41 Michael: One of the things in a broad sense, I can say well how do we make this part of environments better, is like argue less, but do you have more concrete advice than that? What should people do?

33:55 Kate: Yeah, I would say like there is a couple of different things you can do, the first is try to have a cultural discussion, where the idea is finding the best solution for everyone, a lot of companies try to do this, they call it egoless programming, so you basically setup a system where you do actually have rules, and you reward people for discussing and acknowledging other people's ideas, for really bringing up data that supports their ideas and then you have to have some sort of system that detours or punishes people from using things like loudness and size and aggression in order to get their point, their ideas pushed through. Setting up rules around how you make decisions and how you communicate is not a bad thing, and there is a bunch of research out there on things like brainstorms, setting up brainstorm which is a certain type of discussion and then as you converge and make decisions kind of like setting up rules about how decisions are made, so that it's the same every time, and people understand how to operate within the system is actually I think healthy for everyone and it's just a good practice within companies and it would greatly reduce this kind of behavior, so we wouldn't actually have to worry about it.

35:02 Michael: That's way better than what I was thinking maybe hire a bunch of lawyers to sit with all your programmers to judge. So, the next topic that you brought up or the next point in the environment was about bringing people onto the team and this concept of team debt. We are all familiar with technical debt where we kind of rush through writing code, we make shortcuts for the sake of expediency and then our software requires this debt where it's kind of bad, it's something wrong with it but it was worth it at the time but if you do that too much it will sort of crumble down and you are in trouble; but what's team debt?

35:42 Kate: Yeah, team debt is the same concept when you build a feature there is this idea that there is a certain amount of work that needs to be done in order for the feature to be truly finished and if you ship the feature prior to all of the monitoring and all of the testing and kind of the all of the optimizations finished, then you have a technical debt. And that will catch up with you at some point. Team debt is the same idea that when you hire an engineer, or a team member in any department, there is a certain amount of work that needs to be done for them to be a fully integrated, productive, happy, functional member of this team and any amount less than that occurs as team debt.

35:42 [music]

35:42 This episode is brought to you by Hired. Hired is a two-sided, curated marketplace that connects the world's knowledge workers to the best opportunities.

35:42 Each offer you receive has salary and equity presented right up front and you can view the offers to accept or reject them before you even talk to the company.

35:42 Typically, candidates receive 5 or more offers in just the first week and there are no obligations ever.

35:42 Sounds awesome, doesn't it? Well did I mention the signing bonus? Everyone who accepts a job from Hired gets a $1,000 signing bonus. And, as Talk Python listeners, it get's way sweeter! Use the link hired.com/talkpythontome and Hired will double the signing bonus to $2,000!

Opportunity is knocking, visit hired.com/talkpythontome and answer the call.

35:42 [music]

37:20 Kate: What's really interesting about team debt is that it actually topples startups, it's not something that people talk about nearly enough, you know we talk about how the technology can go down and how our web applications didn't scale and there is not enough people talking about how team debt is one of these major things that can bring down engineering organizations, because if you can't scale your team of engineers what are you going to do, like I guess maybe optimize what you have.

37:50 Michael: Yeah I guess so, yeah, that's a really good point. That maybe is a sub specialization or sub point of this concept of culture, and you only hear about companies growing too fast and their culture comes unglued but it's one thing to say the culture has changed and we don't quite value this thing the same way we do, as opposed to the people who actually build the stuff, don't really know how to work together or how to collaborate or how all the pieces work in the system basically, right? That's bad news.

38:25 Kate: Mhm. Yeah, and one of the things I used to tell the girls I coached is that your ability to win is the sum of your talent multiplied by how well you work together as a team. So, talent is just, it's just a factor of summation but teamwork, that's a multiplication factor, so a team that's theoretically less talented could be the team that's theoretically more talented if they work together much better. And it can be a huge factor in the performance of the team, and so that's essentially what team debt is, it's this idea that your team is not functioning together enough to even utilize their talent. So if teamwork falls below one, suddenly what you have is a team where the talent of the overall team is actually being underutilized and that's a team that leads to high attrition, unhappiness because nobody likes to be less productive than they are capable of, I mean, it's not a fun feeling to be like I am totally not fulfilling my potential here.

39:26 Michael: Yeah, unfortunately I think there is a fair number of environments for people feel that way, like it just like you said, kills inspiration and it makes you feel like well this is definitely not a place where I want to stay because I go to work and instead of doing what I want to do and building amazing software, I am like can't get anybody too close this pull request for this feature I just finished. It's easy to view that like an optimization problem right, like well if we can get these people all just a little bit more efficient then we can get the synergy and then this is much more efficient, but the negative of it is maybe even more important, like that you kill the joy, basically.

40:06 Kate: Yeah, it does kill a team, everyone likes to be on a winning team, I mean, who really enjoys being on a losing team, I had a coach in college who was like at the end of the game the only thing anyone sees is the W or the L next to your team name. And I was like do you really need to tell a group of college athletes to win, I was like, nobody here likes losing, nobody here is like yeah, I think that losing today is a good option. And so you know, like people want to be on winning teams they want to be on high functioning teams and they want to be their best at least as far as I have seen and so it's the company and the management teams failing if they aren't able to put in place programs that really allow teams to function well and onboarding as a huge part of that because whenever you add new people to your team, the team fundamentally changes, you need to realign values, you need to make sure everyone is on the same page, so that everyone works together really well as a team. The reason that onboarding also has kind of a diversity factor is that when there is no onboarding, no official onboarding, people still have to get onboarded, it's just the thing that has to happen, right, onboarding is literally someone new coming onboard and being integrated into the team. And so, if someone doesn't get onboarded, they will leave the company. And, if there is no institutional onboarding, people have to figure out the way to do that on their own. And it turns out that people who are more like the existing group, have an easier time getting up to speed when there isn't any sort of official institutional onboarding, which means that in an industry that is mostly white and mostly male anyone new coming onboard who doesn't look like the existing group kind of falls by the way side. And this means in some teams this mean appearance, and depending on the team it can also mean that an introvert coming onboard of team of extroverts is going to really struggle to get up to speed because they are not like the existing group and so onboarding is kind of this, it's meant to be both the training program but also an equalizer to try to make sure that regardless of what someone looks like when you bring a new person onboard they have more of an equal chance of success in your company.

42:21 Michael: Yeah, and when you are part of that majority group, I think this is one of the places where the water, you know, what's water comes in, like well people like they come in and they just start working with us, like I don't know what's the big deal, why do we need to worry about this, but that's a really good point.

42:36 Kate: And you don't notice, so you know, everyone has their close friends, and a lot of times, I mean, it is easier to talk to my female friends about certain things, like our communication styles are just easier. We've been conditioned to speak the same way, we have similar interests, we have similar intonations, and it's one of those things where if you are the majority group, you don't really notice that someone else might be having a really hard time with kind of this communication style and this culture that you have that is really ingrained not only in your ideologies but also in like your interests and your communication style and so I've seen that in a lot of companies.

43:22 Michael: Yeah, well, I agree, it would be really easy to classify that as hey what's wrong with this new person, right, they just don't seem to fit in. Or something like this.

43:39 Kate: When in fact it's like they might actually be a great culture fit but it's just that they are a little different and so like there needs to be a little bit more work to make sure that the communication styles are leveled out and that they really get up to speed that people's hobbies and interests as individuals aren't too ingrained into the company as a whole I mean, I worked at companies where they loved to play video games, and video games are great but I am not a gamer and so I was like awesome, you spend a ton of time socializing on video games which means that like I am probably never going to fit in here, like what, I am not going to hang out with you and play video games, like that's just not- I am never going to fit in. And, whether it's a cross gender, or just like a cross bizzare interests, it's important to be like really cognizant of that.

44:26 Michael: Onboarding is sort of one part of like an overall set of processes within a company right, like how people interact, how they get raises, whether or not they are managers, whether or not they are sort of engineers, and you said a lot of these companies they have what you call the null process?

44:45 Kate: The null process, null process is one of my favorite things, it's like such a startup clishe where a lot of people worked at companies where they didn't like some sort of process or they came from a big company, and they believe that having no process is like a better solution to whatever bad process they experienced, and to try to convey this idea to engineers, I was like well, having no process is like having a null pointer, it is something that points nowhere, but it can still be misused and dereferenced, if it's dereferenced incorrectly it can point to garbage, right, and so no processes are often kind of a subset of bad processes, good process is really the gold standard. And good process actually my definition of good process is that it's light weight, it conveys the fewest number of steps necessary for someone to complete the process and it's just really easy for people to access and to understand and so one of the suggestions I give for a lot of startup processes is write checklists, checklists are an amazing way to just write down the steps necessary to get a task done, and to make them a lot more visible because yeah, no process, people still have to get things done. So by definition there is a process, it's just that everyone is doing a different thing to get this done and there is a lot of people who have no idea what to do and if you are really early it might be the case that you just haven't had time and that's fine but don't be fooled into thinking that no process is good process.

46:16 Michael: Yeah, it's kind of like hate is not necessarily the opposite of love, like apathy, that sort of thing, right.

46:23 Kate: Right, it doesn't make it a good process just because it's you are avoiding this thing that was bad.

46:28 Michael: Yeah, exactly. You talked about automating stuff too, like checklists are awesome because it makes it easy to automate humans basically, but if you could do things like automated pushes to QA so a new person come along make some changes and just say hey, here is my changes and it flows just like everybody else's, things like that would be really helpful.

46:51 Kate: Yeah, automating as much as possible, it can be hard to know what to automate, and so that's why checklists are good start and then if once like the checklist is really ironed out, because I imagine it you will go through some sort of iterations on how to get to the best process for something, if you can automate any of those steps away to reduce the number of things that a human has to do, that is always a best case scenario, humans are we are wonderful but we have a really hard time remembering things we overwhelm ourselves a lot with huge amount of complexity at our jobs and any time that you can reduce complexity and reduce the number of steps that a person has to take, that is generally a good thing.

47:30 Michael: Yeah, absolutely. And if it's something that can be automated and it has all these steps, right, like you are probably uninspired to do those steps, so if you could make that sort of increase the joy by automating that stuff obviously, that's great.

47:45 Kate: Yeah, computers are really good at remembering steps in a sequential order.

47:50 Michael: And they do it really fast.

47:51 Kate: I know, they are really quick. I love computers, computers are really good at that kind of thing and they are really good at remembering, whereas humans are really good at pattern recognition and subjective meaning. [laugh]

48:02 Michael: I think a lot of these concepts we talked about are really, I've been in a lot of companies and I think they are pretty broadly applicable, for lot of engineering teams, and so hopefully people listening out there can reflect on their version of water and see if there is something they can do to make it a little nicer.

48:20 Kate: Yeah, and I see kind of engineering process and engineering culture as iterative, you know, progress is it's iterative, it's imperfect, and it's incremental, right, so if again, if these diversity issues are death by a thousand papercuts, if you take away even just a small handful of papercuts that is progress, and I think that's a really important thing to kind of support and be positive about, you can feel really overwhelming when we talk about a lot of these issues and it can kind of turn to negativity and hopelessness and I would rather people felt inspired and encouraged to try to make whatever small differences they can make in their own companies.

49:03 Michael: Yeah. I think that's a great message. So one thing I wanted to ask you about, you know, we talked about the better logistics for canaries, there is a big push around the world in the US as well as like England and Australia to get computer science pushed farther ahead in the sort of education space to like maybe high school has a year of computer science or at least it counts like a year of math credit instead of doing something like geometry, my view on this is we would all be better logical thinkers if we solved problem through the computer science rather than by trying to prove axioms in geometry. So there is definitely room in the curriculum for it but if you view it through this lens of what we just talked about like do you have thoughts on that? Other than just hey you know more people get into programming, it's good, but- what's positive maybe what should we look at for in that space.

50:00 Kate: Yeah, I mean it's great, like I love the idea of logic in computer science being added to education early, I have done volunteering with like 4 to 12 year olds for the past few years and it turns out that you can start introducing logic pretty young and so I think those education initiatives are great I actually don't think that the pipeline problem is actually- a lot of people focus on the pipeline when they think about getting different groups into the industry and one of the blog posts that I am about to write is it's that retention is the beginning of the cross generational pipeline, so it's this idea that in the 1980s we talked about there actually used to be more like 20 or 30 per cent women in computer science, programs and out in the industry. If we use women as an example on this case, if women are unhappy, and they leave the field, what do you think that means for the next generation? Who is going to convince young girls to go into the field.

50:59 Michael: Yeah, not only it's probably an issue there that made them leave, it's probably worse, now that the women are not even there, right?

51:05 Kate: Right. And having a mom who is like well I wouldn't really recommend this field is like it's not a glowing recommendation for little girls, and my big theories about some of the problems is that retention is actually a really big deal, because the more people that you can retain, for an entire career, the more likely you are to kind of have this cross generational effect of they are going to convince their children or their nieces and nephews or you know, just people that they talk to to go in this field because they loved it and they've had a wonderful experience.

51:41 Michael: Right, there is you know, the people that you look up to, as you are growing up, you are like I'd like to be like this person or oh that person is great what did they do that you know, like seeing that path for you and somebody else matters and if you don't see that and if you are young woman, and you don't see that in any of the women around you like, well maybe it seems interesting I like computers but you know, that's maybe this actually is not for me, right, that could be a strong signal, and like you said, we are just taking women to be concrete, right, it could be race, it could be class, it could be lots of things.

52:16 Kate: Yeah, I do use women as an example but generally, it is true across kind of like the different metrics, or the different dimensions that we should think about these things. But yeah, I mean we do, we look at the adults around us even if it's a friend's parent, and we kind of try on what do we want to be when we grow up and seeing a positive example of someone who looks like you or has qualities like you is so important right now, most women in the field are what I call first generation of women they have been pulled into the field by men, so I am a perfect example, my brother convinced me to study computers. And, there is a lot of women in the field like this, and getting more what I call second generation women where they were convinced to go into the field by another woman who was really happy I think is just so important for the future of computer science and the future of diversity in our field.

53:12 Michael: We were talking about the sort of earlier computer science, I also volunteered at Hour Of Code, at my daughter's school I have three daughters, one of them is seven and we did an hour of Hour Of Code with first graders and second graders, third graders, fourth graders and fifth graders, all separate like we did seven sessions or something throughout that week, and certainly, in first and second grade there was basically no difference between the interest and the enthusiasm and effort and what came out the other side of the girls, the little girls who were programming, and little boys, right, but somewhere between there and now, like things get separated and I don't think they have to be, and so the more that we can take away those things that strip some of the people out of the industry I think will be all the better for us.

54:03 Kate: Oh definitely, yeah. And I think that like, you know, the media plays a big role in that and there is a lot of like messaging that I think is changing for the better around yeah, basically kind of how we package up these ideas for little boys and little girls you know, boys' and girls' toys, like why is that an important distinction.

54:23 Michael: Yeah, I think there is just a nerdy Barbie doll came out and that was like a big deal. We are not big into the Barbie dolls around here but I think I saw that somewhere.

54:33 Kate: Theoretic community five years ago now got a hold of the voting for the next profession for Barbie, and they voted to have her be computer engineering Barbie, and one of my friends bought me one. which I thought was hilarious. And, I used to give them to a few of the women I knew who were like joining the company or joining the industry, I would give them the computer engineering Barbie as a joke, I don't know why, because it's funny. And then they had entrepreneur Barbie which I also own, I call them my aspirational Barbies.

55:07 Michael: Those should be the same Barbie. That's awesome.

55:12 Kate: Yeah, I mean, computer engineering Barbie then became entrepreneur barbie and so-

55:16 Michael: Right, exactly. She's been five years in the place with all the cubicles and she got inspired. We know the story.

55:21 Kate: Because my goal when I was little was to grow up to be barbie not at all, not at all. But they only have a blonde one, I could never get into Barbie I am a brunette.

55:31 Michael: Barbies are little bizzare there is some weird studies about Barbies.

55:35 Kate: Barbie is so weird, anyways that's why we think Barbie is really funny because like I don't actually think encouraging little girls to play with barbies is good but then then had a computer engineering barbie and I was like I guess when I grow up I want to be computer engineering barbie.

55:51 Michael: That's funny. All right, so I guess maybe we'll leave it there for the environment stuff but I think what I really liked about your presentation was it had concrete positive actions that you can take, like I am all about people criticizing stuff and saying this is not good, this should be better, but if it often just comes with pure criticism, and I think it's not necessarily helpful to this course but I really liked yours because it was prescript

56:23 Kate: Yeah, thank you, and for anyone listening, I have done blog posts on all of these topics kateheddleston.com/blog and they go into a lot of depth on a bunch of different research that kind of supports the different points about why certain things are or are not harmful for different groups and so if you want more detail you can go there because we've talked about things at a pretty high level today.

56:45 Michael: Right, yeah, you have a lot of resources, a lot of references and studies to back that up and I'll link to all those in the show notes, and I will also link to your PyCon talk which is on YouTube, people can check it out. So, two quick questions before you go, one, if when you write Python code, what editor do you open?

57:03 Kate: Right now I use Atom, the new editor that was made by some of the GitHub folks and I used Vim plugins, so I use the Vim bindings. I used Emacs for a while in college but I got like I felt like it was going to get carpal tunnel from like all of the controls, which I know you can customize and change but then I switched to Vim and I loved it, it's just my favorite.

57:26 Michael: Yeah, that's awesome. I am definitely noticing the rise in the popularity of Atom so that's cool, I like it myself.

57:31 Kate: It's really cool, I like it, it's easy to use and it's like, it's an editor, it doesn't get away from the fact that it's just an editor, it just lets you edit your code.

57:42 Michael: Yeah, that's cool, and they have if you go to what is it, adam.io there is a cool little like futuristic video there, it makes it fun to think about it as well. Then the other question I often ask on the way out is there is over 75 000 libraries on PyPi, and we all have experience with different ones, and is there one that you are like oh this is kind of cool, I used this and maybe it's not very popular but it would be cool if people knew about it.

58:11 Kate: I am a huge fan of Flask, I really for like web applications I think Flask is just a really nice, you can pick the different Flask libraries that you want to use so you don't have to have everything.

58:24 Michael: That's interesting, so like recommending Flask is like recommending a hundred libraries.

58:28 Kate: Exactly. And it’s recommended in the idea that like you can pick and choose your libraries which is its own mindset but I really enjoy it because I like to build very service oriented web architecture and so for some services I need a lot less and for others I need a few more things. I really like kind of being able to like build your own web framework.

58:48 Michael: Yeah, yeah, I like that philosophy as well.

58:51 Kate: Yeah, and then the other library that I really like is I do a lot of work with like aws api, and I love kind of like the aws boto library, they have actually done a really good job with it.

59:04 Michael: Yes. Boto is good, I was using it just the other day for some s3 work, it's very clean, good stuff. All right, Kate, thanks so much for being on the show, is there kind of a final call to action you have for people?

59:18 Kate: Not really, I think we've covered a lot of different things.

59:21 Michael: Yeah, so maybe think about water, water in your environment and maybe one of the small steps you can do to make a change.

59:30 Kate: Yeah, I'd say that's the big thing, incremental change is still important change, I think we all know that is engineers that you spend a lot of time doing incremental changes and that's huge for culture and for engineering environments in the same way that that's really important for developing code.

59:46 Michael: Yeah. Awesome, well thanks for being on the show, it's great to talk to you.

59:49 Kate: Yeah, thanks for having me.

59:51 Michael: You bet. Bye.

59:51 This has been another episode of Talk Python To Me.

59:51 Today's guest was Kate Heddleston and this episode has been sponsored by SnapCI and Hired. Thank you guys for supporting the show!

59:51 Snap CI is modern continuous integration and delivery. Build, test, and deploy your code directly from github, all in your browser with debugging, docker, and parallelism included. Try them for free at snap.ci/talkpython

59:51 Hired wants to help you find your next big thing. Visit hired.com/talkpythontome to get 5 or more offers with salary and equity right up front and a special listener signing bonus of $2,000 USD.

59:51 Are you or a colleague trying to learn Python? Have you tried boring books and videos that just cover the topic point-by-point? Check out my onlne course Python Jumpstart by Building 10 Apps at https://training.talkpython.fm/ and learn Python in a more engaging way.

59:51 You can find the links from the show at talkpython.fm/episodes/show/55

59:51 Be sure to subscribe to the show. Open your favorite podcatcher and search for Python. We should be right at the top. You can also find the iTunes and direct RSS feeds in the footer on the website.

59:51 Our theme music is Developers Developers Developers by Cory Smith, who goes by Smixx. You can hear the entire song on talkpython.fm.

59:51 This is your host, Michael Kennedy. Thanks for listening!

59:51 Smixx, take us out of here.

Back to show page
Talk Python's Mastodon Michael Kennedy's Mastodon