Tim Bourguignon 0:00
This is developer's journey. My name is Tim Bourguignon. Thanks for joining. Hi, everyone. Today on developer's journey, we have Rob Knapp here. Hi, Rob. Hey, thanks for joining. It's a It's a pleasure. Oh, excited to be here. Um, you're joining from the US. And it's kind of afternoon for you. It's already deep in night for me. But I'm glad you're taking the time. Um, just to start with you to introduce yourself and tell us how you came up to being here?

Rob Napier 0:40
Sure, sure. I, uh, I. So I've been a developer a long time now. About 35 years since my first program. And yeah, and right now, I'm an iOS developer. So obviously, I haven't always been an iOS developer, since I've been doing it a lot longer than iOS has existed. But, uh, but I'm an iOS developer. Now. I have security background, I've been assisted man. I've been all kinds of things. But right now, I think we got introduced through kind of a mutual acquaintance. over some things. I talked about music because I'm also an aspiring amateur guitarist. And that kind of kind of led to some ideas. I think so. About I've been, I've been thinking a lot about development these days, and, and how other communities act and how we might act. So

Tim Bourguignon 1:35
what what have you thinking be thinking about about this?

Rob Napier 1:38
Well, my biggest thing I found, and I was really, I spent a lot of time, bad about judging other developers about especially with new new people came came in, you know, I've been doing all this time I started when I was very young. And so I really had a lot of judgments about who was a good developer, and who was a real developer who was a, who was a bad developer, who should probably just get out. And, and, and really hoping to, you know, clean, I was going to clean up, you know, our industry by getting rid of the people who shouldn't be here. And then I, I started playing guitar, and I started hanging out with people who were much, much, much better than I was, and who'd been playing for decades longer than I had. And I suddenly found myself on the other side of this coin, where I was so thankful to have people who put up with me, and, and still invited me in. So that's been making, not just that I've been coming to, you know, rethinking that position for a long, long time. But it seemed to really capture a lot to me, that other communities are not nearly so dismissive. Of those who are learning as we sometimes are, we, I, well, I was laughing, I saw a I've seen all of these kind of think pieces on who's a real developer. Right? And do you have the right process? Are you, you know, do you know, the write out? Do you know, off the top of your head, the right algorithms? Can you write fizzbuzz? on a whiteboard? You know, go, um, you know, if you can't Well, that's not a real developer. If you don't know, if you don't know how memory is managed, that's not a real developer, you know, or if you can't build an entire web service without using anything more than jQuery? Well, yeah, you're not real developer. It's like, you know, like, Oh, well, you can't, you know, if you can't pay to play all your pentatonic scales, you're not real guitarist, you just Strummer. I'm, like, really?

Tim Bourguignon 3:42
Listen to the dial in three minutes. You know, I haven't

Rob Napier 3:45
No, no,

Tim Bourguignon 3:46
it's a verse short podcast. Obviously. It's three minutes. It's made by me, Ty flyer was one of the guests of the of the podcast route. is less is less episode is about the sentence or I'm not non technical. I'm not technical. Ah, it's absolutely absolutely this as well. But I know only HTML CSS with technical and this dilemma. You should listen to that. Oh, that's so

Rob Napier 4:17
wonderful. Right? Well, and that's, we I was just watching a wonderful, um, discussion on this about this woman had gone into investigating, mostly women who had been developing all of their own tools and sites and everything for one direction fandom. Mm hmm. But they were all a shame. They built incredible things. But they were all kind of shame because oh, you know, it's just a little CSS and I'm not really I'm not. I don't have a CS degree. It's like you're self taught on all this. You know, people like me. I mean, I was self taught for years. I mean, I was I was a kid playing around with computers and for years and years and decades. It was decades before I had my first concurrent program. Like I had a secondary thread. I'd been programming I think, 20 years before I colored my first object, right? And so people are jumping in go, Oh, you've got to know all these things. You've got to have functional programming and an 18 different frameworks or you're not. You're not any good. It's like, Well, some of us got a lot longer ramp up.

Tim Bourguignon 5:26
How do you react when you hear this?

Rob Napier 5:30
When I hear people say, Well, unless I used to be on that side, well, I used to be pretty. I was pretty dismissive of people who were just here for the money, right? It was just a job. And I was like, Oh, you got to really be into it. But today, I really do try to push back because I now I'm now in a position where I can write, Mom, I've written books, I go to conferences, I give talks, I'm, I'm fairly well respected. So there's nobody asking whether I'm a real developer anymore. So I get away with challenging other people about it. And when I say, Look, I don't pass whiteboard interviews. Um, it, it helps set the tone a lot better. I find a lot of people who are very ashamed of the things they can't do, and I go, Hey, I can't do those things either.

Tim Bourguignon 6:21
Did you see this? This thread started by by David Hanson. On Twitter about exactly this. This whiteboard interviews. Yes, yeah. easing. That was absolutely amazing. Yes. Oh, yeah. Yeah, all those people working for Google working for big companies say, Well, I don't pay either.

Rob Napier 6:42
I can't I forget this stuff all the time. Well, and that's the thing, you ask somebody suddenly, or write this little program? Well, but part of the setup is I need to start a program from scratch. Well, most of us work on big projects. I mean, if you if you're a real professional programmer, you work on big projects, you probably haven't created a new project from scratch in a long time. So even the basics of Oh, man, how do you set up the frameworks? How do you output to the screen? Or you know, you work on GUI systems or web systems? And they say, Yeah, right, this thing that outputs to the console, it's not that it's hard. It's just you haven't done it in, you know, nine months. And somebody's you know, jumping on you to do it. Right. This second there go, Oh, I just want to see how you think. While I stare at you?

Tim Bourguignon 7:33
And is there a way to see how people think without asking that kind of questions? Have you found one?

Rob Napier 7:41
Oh, certainly. Well, certainly, you ask them how they think. I mean, if you want to see how people think ask them. You can ask them about real problems they faced and re and especially if you're looking for people who have any who do have experience, right? Obviously, you have to take different tracks a little bit when you're dealing with new with, you know, very, very, very junior programmers. But if you're talking about somebody who's in their intermediate level, or even kind of senior Junior, you know, who's you know, who has a year or two of experience, they probably they have stories, and I always tend to ask for their stories. The other thing I like to do is to see how they think is I want them to walk through bugs that I don't know the or problems that I don't know the answer to. Mm hmm. Right. So I have this problem that's kind of facing me. I have one right now, I have two runners. And I want to keep track of when one runner passes the other, but they have to do it by 10 meters before it counts. And I'm and I don't want to keep sending it, they kind of go back and forth. I want to make sure that there's enough time before I say, hey, you passed again. And then ask, I mean, it's a problem I'm facing literally right this minute. So if I were interviewing somebody right now for the job that I'm in, it's a problem for my job. So if I were interviewing you, it would be a problem you would be facing to? Oh, boy. So I would say, I mean, it's not a it's not the hardest problem in the world. But hey, can we talk through this? How would you what kind of data structures would you use? What kind of attacks would you How would you attack this problem?

Tim Bourguignon 9:18
Mmm, hmm. You would help the candidate?

Rob Napier 9:21
Right? Well, because I don't know, either. Because I don't know the answer. I know some things I've tried. Um, and then that again, if the question is, how do they think how do they act? Well then give them problems that look like real problems. And then you can discover how they think a little bit. I mean, one of the problems I always have people go, Well, I just want to see how you think when you're programming. It's like, okay, but I think in the shower mostly. And so HR always stops our interviews, and nobody's like, okay, you can come with me, but That's how I think I don't I don't sit at a whiteboard with a marker. That's not what I do. Um,

Tim Bourguignon 10:08
have you practiced kind of practical interviews going on the real problem that your company is facing, maybe paying, I'm probably paying the Canadian as well, for it.

Rob Napier 10:18
So I I avoid. So I have been on the other side of that, and taking practical interviews, and I loved it. But it wasn't, I don't particularly like it if you're actually asking them to do real work. So for instance, in my current position, I was given a problem, a couple of orders of magnitude harder than the one I just described, it wasn't just runners, it was it was all about analyze, it was a very complicated algorithm that had already been developed. And they simplified it a little bit, so that they could give me a whole bunch of data and say, please implement a solution that implement that applies all this algorithm to this data. And they said, Take your time, you know, a week, two weeks, whatever you need, just, you know, not months, but you know, get it back to us. And I, I love that because it was a real problem. It was their real, it was their real problem, but but they'd already solved it. I mean, they already had this, I'm the one problem I have with taking people on an expecting, quote, real workout of them, it tends to privilege people who can do that. Um, and all of these, I mean, everything. I'm not gonna pretend here that there's any answer you can do. It doesn't privilege somebody. Um, but you need to be very thoughtful. Like, if you're asking them to come on, like, the worst is you asked them to come on as like a full time provisional. Right? That's really bad because they have to quit their other job.

Rob Napier 11:43
That's true.

Rob Napier 11:44
Right? So how's that supposed to work? I'm in the same. So again, I try to, I don't think I need weeks to learn if I if I can't figure out if you're going to work out. You know, in the interview process that that's on me, I need to learn to do it better. Um, rather than rather than ask people to, to, like I say, quit their jobs or anything. But what I was given wasn't so bad. I mean, yes, I did have to work off hours. But it was a problem that took several hours to solve. And they said, take a week or two to solve it. I think that you can definitely and they said, is that okay, is that they? They asked me if I felt that that was a reasonable amount of time. Um, so I think if you do all those things, then you can you can get there. Well,

Tim Bourguignon 12:36
you're probably not really in a position to to refuse that. But what's the icac? Do?

Rob Napier 12:41
That it's fair. It's fair. I mean, I am. And this is a difficult thing for me. You know, when I interview, I'm very senior. So I'm, I'm in a place to refuse things. And I had an I had a job. So I can always, oh, but it's harder, which is, again, why I think as the interviewer as the as the hiring party, we kind of have to bend over backwards a bit. Because you always have a huge amount of power in this situation. And you need to you need to be accurately thinking, How am I messing people up? And most importantly, in ways that mess me up, right, I'm trying to find the best candidate, right. So it's not just that I want to, it's not just that I want to help out this person, I want to just make sure that I'm actually checking for things I want. Right. So if I'm doing interview things that don't past what I care about, then I'm not helping myself. I don't get the right that I don't get the right developer. I'm

Tim Bourguignon 13:45
in for a client I work for, um, we did a lot of interviews, ramping up Scrum teams of the scrum teams. And we found a we found a quite good way that or at least that suited our needs, and we create ready really great teams. But in the end, there was one flow that we didn't see coming. And it was diversity. We kind of created a monoculture. And we ended up with white males 30 something some whiz kids some without, but pretty much the same. The same pattern there. Yeah. And I'm still I'm still not sure what created that in the way we we interviewed people. Probably a whole bunch of unconscious bias. And well, I'm not sure I'm not sure what I could have done differently to go there. Do you have any pointers here?

Rob Napier 14:43
Uh, so some things obviously, you you want to take a deep look at what you're doing. So I example that that I, it took me a long time to figure out I was doing wrong, and so stopped it. I used to be a system administrator and so on. He's always hiring sis admins for big enterprise kind of places, right? Very fancy places, and with lots of crazy infrastructure. And so I would ask them this question that I felt was very clever, I'd worked really hard on this question. It's like, how many computers do you have? How many work? And how many have a case on them? Um, and my answer is at the time, I think we're like, five, three and one, right? I had like, all these computers, none of them had a case on it. And by broken most of them, right, right, I had pulled pieces and everything else. And you know, but I had all these computers that were in various states of disarray. And I consider that great, because what I was saying is, look, look, we have this really complicated infrastructure, where you need to be able to pick up things really fast. So I need somebody who installs crazy versions of Linux on crazy pieces of hardware, right? And that's what I really want you to be able to do. But it took me a long time to realize that what I was really looking for people was people who had the same hobbies I did. Because really, it was true, we did need people who picked up new technologies easily. That was true, mostly. But the truth is, we desperately desperately needed people who, um, could close trouble tickets in a timely manner. Right, because we actually, we had a lot of trouble with people, you know, just the acts of managing trouble tickets. So we needed people who understood how to do that. And even more, we desperately needed people who could de escalate problems with customers. So we had, you know, various engineering teams that we supported. And we would get in fights with them all the time. And so what we really needed was to add to our culture, people who knew how to calm it down, how to give, how to work with engineering teams, and not make them mad. Right, but I didn't. And those were the skills that our team needed to be successful. But I wasn't interviewing for those, I was interviewing for people who put crazy versions of Linux on their crazy pieces of hardware, because that's something I was good at. So I guess where I'm going with all that is making sure when you look at the questions you're asking, Are you actually probing something that is very important and more important than all the questions you're not asking. Um, so why, you know, are you really just asking the question, in a weird way? Are you like me? And then amazingly, you get people who also look exactly like you. And they also have all the same strengths as you and all the same weaknesses. That's the thing, if you look for people with the same strengths, right? You go, they need to have my strengths, well, then they probably have your weaknesses. There, we get, we get different. We want diversity, not just because it's a good thing to do, and the right thing to do we want diversity, we actually really do want it. I mean, it's, you know, I think sometimes people get the cynical Oh, that's just business stuff. It really is an advantage when you have a wide variety of skills and backgrounds. That's, that really does help a team.

Tim Bourguignon 18:11
Yes, it does.

Rob Napier 18:12
As far as as far though, as dealing, how do you attract marginalized groups? My, my first the number one top thing is you have to go, you have to you have to actively do it, you have to go look, you have to try. I mean, part of it is Where are you looking? Right? Are you going out to people and saying, Hey, I would love for you to apply where you know, what groups? Are you going to? Um, where are you putting your your notices? And what words are you using in your notices? Right? There's been a lot of study on just the way that you word, it can often drive away various marginalized groups, particularly women, for instance. I mean, when you and well, although it's funny, because a lot of the things that I always read, oh, this drives away women as like, that drives away Me too. I'm like hackathons. I mean, I don't go to hackathons. Because the word hackathon, to me implies things that I don't particularly feel I want to be part of, and I feel too old to be part of that. All right, and they find Oh, that word also tends to drive away women. But like, say, it's not just it's all kinds of groups who was like, and you didn't and when I challenge people on that, they go, Oh, well, I don't mean that. It's like, okay, but that's how I hear it. And if you want me to come and for me, I'm just a white guy. So I mean, you you'll, you'll need to be reaching out but for groups that you do want to reach out to how they hear it is valid, right? The fact that you didn't mean it is not relevant. Hmm.

Tim Bourguignon 19:49
That's, um, it's, I see what you say is very, very, very interesting. It still feels like a trial and error, though. That You have to do something and adjust and see where it doesn't work out. And

Rob Napier 20:06
yeah, try to adjust from there. So Oh, but it will be well, and actually it will be because the other thing that you need is you'll need reputation. Right? If you are a shop that is entirely on 20, something single white guys, it's going to be very hard to get your first person who doesn't fit that mold. Oh, yeah. Right, you're gonna have to work really hard at it. And if you take whoever, if if you have a small number of people who don't fit your general mold, and you drive them out, you had better figure out why. Because I assure you, that people's talk, and you will have an even harder time in the future. So I mean, you're gonna have to do more than go out to the world and say, Oh, we've, we are we are looking for we're trying to improve our diversity. You know, nobody, nobody buys that. You need to be having a lot more, um, a lot more tangible details. And part of it is just money. You know, can you you may need to pay a lot. That's true. Um, and say, and I, I follow one person, she she always says, you know, just pay people more than they are than they expected.

Tim Bourguignon 21:29
I think tends to grease things on. Yeah. And help the process. That's true.

Rob Napier 21:33
Yeah. Yeah.

Tim Bourguignon 21:34
And I would like to to continue this discussion, using what you hinted before. So how we came to, to, to talk to one another, is through an article you wrote, he was titled, the conditional breakpoint.

Rob Napier 21:49

Tim Bourguignon 21:50
Um, so maybe maybe you could describe a little bit with what this was this article is about, and then kind of make the parallel between the discussion we just had about inclusivity. And how to get new people on board in this domain he describes.

Rob Napier 22:08
Sure. So there it there is a there's a guy, his name is James Dempsey. And within and this is the funny thing about the computer world. In different we have so many different, um, little subcultures. So within the iOS world, and particularly in the the apple general world, he is he's fairly famous because he is he is our rock star. Um, I mean, quite literally, because he's the he's a songwriter of songs about Apple development, working on the apple platforms, write songs about them, and they're published IV, you can go look up James Dempsey in the breakpoints, and you'll find his albums. And they're actually very good. They're good songs, actually, in particularly, they're good for most programmers. But if you're an apple developer, they're particularly they're particularly funny. And they are funny. Um, but he, he plays at various places, a particular conference that kind of tours around the country called you around the US called Coco calm. And he often plays there, he plays a number of other places, but he plays there often. And when he plays, he kind of kept he picks up people who are nearby who happened to be in town, and they practice a bit. And he calls, like I say, his, technically his band is called James Dempsey. In the breakpoints, there's no specific group of people, there is a specific group, but there's, you know, they're, they don't tour with him or anything. Um, they don't make that kind of money to just tour around and play these songs. Um, but so we'll bring people in, who have just practiced the songs a little bit, and they're called the conditional breakpoints. Mm hmm. Um, so it's just a it's just a it's just a funny name for them. Um, because because Xcode has the concept of breakpoints and conditional breakpoints. Um, so when I started playing guitar, that was kind of my dream was to be good enough to go play with James Dempsey. Um, partially because it was partially because I really loved his stuff, and partially because it was just, this is in, you know, in public, and good enough that you're not embarrassing yourself, right, and others and that others are willing to play with you, you know, in public in front of an audience. And it took me a while took me quite a while. But I finally asked, you know, to play and did just a few weeks ago, at in Chicago,

Tim Bourguignon 24:40

Rob Napier 24:41
And it was a lot of fun. It was a it was a it was a blast, had a great time and loved it. But what I what I really found about it got me thinking a lot about things like am I a real guitarist? Well, I've played in Public I mean, at what point do you say you're a real guitarist? Okay, now I'm a real guitar. Am I a good guitarist? Not particularly, um, you still wouldn't listen to me play solo by myself, you know that. And I think it's important that people recognize that there's a there's a level of reasonable humility, that there's a difference between humility and just being down on yourself. Right? There's faults, humility, humility, when you're just saying, Well, I'm not, I'm not any good, versus a recognition of your skills and knowing what they are and how they improve. Right. And, and, and that kind of honesty, I think, is very important. So I'm much, much better than I was a couple of years ago. But I'm still not, you know, a soloist guitarist. But I felt comfortable doing this. And I think what was more important is that you have somebody like James, who is willing to say, Yeah, come play with us. And he said, something that was really important to me. And it's the kind of thing that I want to see us do. I said, Hey, give me your give me all the song list, because I can go and practice them, right? Because you need practice before you go. And he said, yeah, here they are, it's fine. But I just want you to know, you don't have to play them all. If you don't feel like it. And you don't have to play all of the song, you can play a song and not play all of it. If it's if it's too hard, and I kinda was like, Oh, yeah, yeah, I know that I kind of blew him off on it, you know, it's like, Ah, you know, I'm fine. But I was, I hadn't been fine. He was totally right, I was going to go home, and practice every song. And I was gonna screw him up really bad. And I was gonna beat myself up pretty much every day for it. And he, what he did was he gave me permission to be a beginner. But still let me play. Right, he didn't kick me out. But he says, Okay, I get it. And and again, I look at that, when you have somebody coming in to your GitHub repository, you have some open source project, or you have a new project at work, and you have somebody coming along, and they brought their code. And they are a beginner, and they've been very upfront about that. Do we? Do we reach out to them and help them and pull even if in the end of the day is true, we may have to rewrite all of it. But how do we make them part of that process? Right, I'll just grab it from you and say, Well, thanks. But you know, this is useless. I said, You're still You're a real programmer, you made the computer do what you want it, it's all wrong. It's threat, it's gonna crash, right? But it what it does technically work. So you did you did something? So how can I help you get better? That's one of the things I look to, um, it's going to take longer, right, it'd be way faster for you just to fix it just to rewrite it. Um, but how do I actually mentor people and see that as something that is, is necessary? Hmm. One of the things with I do play, I play with another group who it's not in public, we just kind of get together and, and play all day, or, you know, play for hours. But they're all a lot older than me. They're probably 2030 years older than I am, um, are most of them are. But a lot of what they're doing is they're training the next generation. Right? We have to be asking the same question. If we only work with the best, we only hire the best. Right? If everybody does that, who's the next generation? Where are they going to learn? Some of the best things I've worked on, we hired mostly Junior people straight out of college, who seemed promising and didn't know a single thing. They were terrible programmers. But they were promising. They were bright. They were eager. They were mostly eager. That's what we want. And we taught them and we taught them how to program. And they became some, I mean, some of them didn't turn out so great. But all of them turned out really great. And they did it right, because I taught them therefore they did it like me, therefore they were doing it right. But But again, that's and again, that's the kind of the kinds of stuff where I see this in some communities, but um, but not in all of ours.

Tim Bourguignon 29:31
You said you said the word mentor. Mm hmm. Are you a mentor?

Rob Napier 29:36
I am right now. I actually had someone reach out to me. I mean, I am explicit mentor right now. Because I had somebody reach out to me and asked if he could work on a project of mine, an open source project, and that's been delightful. He's He's working so hard. And things that I wanted done that I haven't been able to get to. He's like, please, I would, I would want, I want someone to teach me? And, and so he I give him real assignments. I mean, they're not, they're not, you know, homework problems. They're the things I would do, but I don't have the interest to go do it. And that's been wonderful. In this case, however, I mean, it is he came to me, I didn't I, I don't know how you, I have had, I had been a mentor, as I've been in companies, where we had large development teams. Um, but uh, that can of course, be a little trickier. If you're in a fairly small team, that's mostly senior people. If, however, you have Junior people, and I did do this in one team, I was in that where we had a fairly large team, and we had a lot of junior people, we had very, very explicit mentorships. And I, that's one, I think that worked very, very well. Or you had somebody that you know, you were the person, this junior person was supposed to come to bugging you was part of the job. Because just saying, hey, it's okay to bug this person is a huge thing. Oh, yeah.

Tim Bourguignon 31:08
Is there a difference for you between mentoring? And how would you call that in English? God feathering, or being a godfather for someone.

Rob Napier 31:20
So if I understand the way I think of God fathering, and we use it, but we would never, not many people use it professionally, in English, but there's a kind of mentor who helps you with your career. And that's a different thing to me then helping people with their technical skills. Um, especially because I've seen people who are very good at one or the other, and not, and you're not necessarily both. Um, so I have worked with people, I mean, someone helping you with your career sometimes take somebody who's just literally older is, is sometimes more important that you've just been doing this career longer. And you've seen more? Um, and I've had some, I've had some decent mentors who say, don't do that anymore.

Tim Bourguignon 32:15
Which which one would be would be which?

Rob Napier 32:17
Oh, I mean, I bet I mean, a career mentor, I've had career mentors, like pulled me aside and said, Look, you got to stop sending emails like this. It doesn't matter their technical merit, you sound like a raving lunatic. And that was a credibly important thing. But that's, it's not something that just anybody can say to you, you have to build credit, because that just makes people mad. Um, and that though, can also just be friendship. Which, which I think is important that you have people who are willing to come up to you and say, hey, look, knock it off.

Tim Bourguignon 32:51
It should work this way as well. The difference for me the difference between between God feathering and mentoring, isn't him now, the decision who will become your mentor godfather? In the case of a mentor, my in my opinion, is you decide yourself, it's a godfather as somebody else does, and just never see it first.

Rob Napier 33:17

Tim Bourguignon 33:19
I've seen a lot of mentoring programs in companies, where where people are just assigned with one another. This friendship you spoke about doesn't really develop there on not necessarily not always, you have this this mentoring with people who can't stand each other. Yeah. But they will, they will not become friends. So it's different.

Rob Napier 33:45
And the really, really

Tim Bourguignon 33:49
successful mentoring, mentoring partnerships, I would say that is people who chose each other and really had kind of this, this, um, how could put that kind of dating approach to it, or started seeing each other and discussing a lot and at some point in the future made it official and say, well, we should do this more often than we should do this regularly. We should do this or Yeah, honestly, etc. But it became at some point and not from the very front, no, from the get go. So that's, that's the one thing I have

Rob Napier 34:26
seen there. I think, um, a lot of that can be driven from someone who is a bit more senior reaching out more proactively, um, and, and gently. Um, so I have had folks that I've overtime, tried to, you know, reached out to and tried and did not act tried to avoid acting to senior again without you know, giving advice without seeing too much the the uncle, you know, or seeming too much to be barging in, but where that can that and grow, sometimes people do jump, one of the troubles with mentorship kind of things is that you can jump ahead of where you really are that you can jump to this intimate relationship that you don't actually have. And again, a lot of this, I think goes to how do we help bring in marginalized groups. And that can be particularly bad there. Um, where you're, you're mentoring someone who actually has very different life experience than you do, and is facing very different kinds of problems. And so you may need to shut up for a lot longer. And just listen, um, until you have an idea and not even try to help for a while. That's I think sometimes the hardest I've struggled with, with things I would think of more as, as friendships where I am where I'm just the older one. But sometimes it's difficult to you hear their problem and you want to help them you want to help fix it. And really, what you need to do is just listen. Um, and then when you've listened for a really long time, you might have some ideas.

Tim Bourguignon 36:11
Just listen, Shut up. Shut up. Listen.

Rob Napier 36:14
Yeah, yeah, yeah. It's that that's hard. For programmers, because we just want to solve problems. We like the moment we see a problem, we solve it, you're done, right? Sometimes, it doesn't work that way.

Tim Bourguignon 36:29
I totally agree with you. One of my mentees, I had to bite my tongue for a few months, I asked a question, and didn't want to answer that. And really putting hints all over the place, but never answering it. And it was really so hard. I just wanted to answer them. It is so easy. Just, it's this week, but no, just shut up. Just don't say that.

Rob Napier 36:51
I was just Hi. I'm Laura Savino is a speaker in the iOS world. And she just, I just saw a talk from hers, where she talks about just in the teaching environment, not not like long term mentorship. So it just you're standing there trying to teach somebody, right. And you're and you are a good, you know, it's somebody in your team, right, and you're teaching them the new build system, or you know, or some new, you want them to use react framework or something, and you want to teach them how to do it, right, whatever it is, um, she says, you know, first off, you want to engage them, where they're actually doing things. Um, and that, that helps a whole lot. But the hardest thing is that when you do that, you then have to back off, and you can't just do it, right. And when you ask a question, if you ask them something to see if they understand what you just said, she said the rule is from teachers, you have to wait seven seconds before you can say another word. Right? You know, you ask a question. They're like, and they're just sitting there, it's like, but if you jump in with the answer, they haven't done anything. Now if you just let them flounder forever, then that's no good. But But, you know, she was like, the app camp for girls is this wonderful, wonderful. group who who does app, you know, like building iOS apps, um, is as a camp like thing. And that's what they do. They're, they're, all of their mentors, have to all women, mentoring younger woman, and they, they have this rule, they have to keep their hands behind their back. While they're, they're saying, you know, you're trying to connect something together for your app. And in in something like Interface Builder, which is all graphical. So you know, you have to drag things from one place to another. And so of course, you want to point like, No, you gotta keep your hands behind your back. And describe it, but they need to go to the through the process of finding things that you have to want the hardest things about being a mentor is letting the person being mentored actually learn something. That means we have to let them play a little

Rob Napier 39:06
so hard. Oh,

Rob Napier 39:11
it's been very, it's been very effective. And actually, that's a that's been a great program for kind of some of these things when we talk about helping people. I think one of the great things that was raised, it's like, one of the mentees there was remarking, she said, You know, when I run into somebody who had been at the camp, and I run into them, you know, six months later a year later, I don't care that they're actually I want them to still be a programmer, but I don't actually care that they're still a programmer, that the greatest thing to hear is, I didn't think I could build an app and now I know I can. And that's again, the thing when I you know, when I had somebody say you can come play on stage and play guitar on stage. It's like, I know somebody who actually knows what they're talking about set gave me permission. And with that we can do the same thing of just helping people believe that they can be a programmer. Um, and that's and that they're gonna have to learn. But they're, we're all still learning. So that's okay.

Tim Bourguignon 40:18
too, removing fear building confidence,

Rob Napier 40:20
building confidence. Yeah. And that and that, and that failing is part of it, that confidence, it's not confidence that you won't fail. It's confidence that even after you feel that you will fail. And that that's not the end of it. Right, that you will absolutely fail, your programs will crash, you will probably miss that you will miss deadlines, you know, you will have field bugs, things will go horribly wrong, your design will turn out to have been stupid. Right. And that's one of the things I liked about that Twitter stream of people saying that, you know, senior people saying, look, these are, tell me the things that you've done. And, you know, we all have, and that's okay. It's okay. It happened, but but to make it okay, we actually didn't have to let it be okay. So it means you can't be calling for people's heads. Every time a bill breaks, right. And I've been in teams like that, where the least little problem and like this person got me fired. They wasted 800 developer hours.

Tim Bourguignon 41:27
Confidence That You will fail, but it will continue. It will continue to be the end of it

Rob Napier 41:33
at the end. In fact, you'll fail many times.

Rob Napier 41:36
Yes, we have.

Tim Bourguignon 41:41
Great, great stuff.

Rob Napier 41:43

Tim Bourguignon 41:44
we're reaching the end of our time box. Have we missed something? Is there something you wanted to talk about? And we didn't talk yet?

Rob Napier 41:50
I don't think so.

Rob Napier 41:53
I think that was that's been my passion just recently, is just how we can get through this. And I don't know the answers to it. I don't know how we fix it. But I do think I have some ideas of how we like maybe move a little bit in a better directions.

Tim Bourguignon 42:08
I can assure you we can hear your patient. It's remarkable. Um, is there something on your place, something you would like to plug?

Rob Napier 42:19
So if you happen to be in San Jose, if you're an apple developer, then you may know about this little thing that happens in June, the Worldwide Developers Conference, the largest Apple developer conference, ever, um, and there'll be in June and I'll be speaking at cocoa calm. Next door. We actually Apple is is been so gracious this year. They are plugging other other things that are happening in the city at the same time. So I'll be in San Jose, speaking at Coca Cola next door. And I'll even be playing with James Dempsey. So even if you're not an apple developer and just happened to be in San Jose, in June and June, 1 week there, I think we'll be playing at right across the street from WWDC. Okay,

Tim Bourguignon 43:12
is there a different name for the conditional breakpoints that come in Come again?

Rob Napier 43:16
Uh, yeah, well, they're just breakpoints. Okay.

Tim Bourguignon 43:20
You might have some old become a

Rob Napier 43:22
brown day, but I made that may be a long time.

Tim Bourguignon 43:26
We have time to practice,

Rob Napier 43:28
practice. I mean, where can people find you? A Rob Napier dotnet is my blog and I write on a lot of these topics. And I'm on. I'm on Twitter, as co funny, which is a little hard to spell. It's Coco funny. But um, if you go to rob Napier dotnet, you'll find the things and I'm sure we can put a link here.

Tim Bourguignon 43:51
Definitely, definitely. Well, thank you very much for the discussion. That was great. Thank you.