Soft Skills Engineering - Episode 21: Giving work to interns and dealing with "dead weight" developers

Episode Date: August 8, 2016

In episode 21, Jamison and Dave answer these questions: What kind of work should interns be given? How do you handle developers who are dead weight? ...

Transcript
Discussion (0)
Starting point is 00:00:00 It's another great day on the Soft Skills Engineering podcast because it takes more than writing great code to be a great engineer. I'm your host, Dave Smith. I am your host, Jameson Dance. How are things, Jameson? Things are great. You know, Dave, I actually, we haven't had intro music this whole time. It's been so long. And, oh, actually, we had it that one time. We had the Diane Reams trumpet noises I made with my mouth.
Starting point is 00:00:23 Yeah, the lip trumpet. Yeah, yeah. I think that was way back in episode two. Yep. I wrote us a song. What? Yeah, I wrote us a little song, a soft skills engineering theme song, and I want to play it for you and for the listeners. Oh, my gosh.
Starting point is 00:00:37 Okay. I'm ready. I've got to move my mic closer to the guitar. All right. You can write amazing code. You can learn patterns and frameworks. But that won't help, you know. how to deal with a boss who's a huge jerk for that you need soft skills
Starting point is 00:01:09 soft skills engineering oh yes i love it so much oh thank you the audience just went wild i'm sure they did you know i i quit my job a while ago and i think i found my calling which is a rock star so is playing podcast intro music a soft skill um i think so i mean yeah it's probably a niche that i could specialize in maybe that was so good thank you uh tell us if you hate it it's not gonna be our intro for real probably because what i love it this is the first time i picked up guitar in like a year and a half as you can tell from from my expert playing so yeah you definitely have cordy finger on that c string i can my guitar is strung in colmac actually
Starting point is 00:02:06 so it's it's a little more comfortable on the hands that was so good that i just know there's like 10 000 software engineers driving down the freeway right now and they're all getting in accidents because they took their hands off the wheel to clap and none of them were in teslas they were pumping their fist to the beat oh my gosh that was so good thank you well thank you dave thank james and thank you for sharing your talents with us you're welcome happy to do so uh i want you to share your talents with us though with this question all right i will read our first question uh let's see um so the question is what kind of work should interns be given and a little more detail internships are starting about now uh well that's not really true where i
Starting point is 00:02:52 live anyway it's august this question's a little we we sat on it for a while yeah should new feet should they work on new features should they work on bugs uh what if they're difficult and they might get slow when you might slow down hitting a release date um should it be small and useful throwaway projects or manual testing documentation updating or just let them figure it out on their own what should interns do it's a great question it's a really good question and um they asked about manual testing or documentation updating which to me is like should we give them just the worst like horrible thing that will make them not learn anything and and feel like slaves and the answer is no to that i feel anyways i i think interns are like plants you don't want to leave
Starting point is 00:03:44 them in the dark just like stash them in a corner somewhere because they won't grow you gotta care for them and feed them and water them and then they will bloom into beautiful flowers interns are like plants you should put them in the dirt and pour water on them Yeah. Well, think about why you have interns. I mean, part of it is like you want work done and they're usually cheaper, although some Google interns probably make more than I do. But another part of the reason for internships is to hire people. You get them a chance to experience your company. And if they like it, then you'll be able to hire them on full time. And you already have this relationship with them. So that hopefully makes it easier to sell them on the idea. and if they have spent six months manually testing your crap and then writing documentation like heck no they're not gonna want to work there yeah probably true it sounds horrible so i remember a long time ago i was on a discussion group online and someone was asking this question hey on this version of linux how do i prevent the screensaver from coming on because
Starting point is 00:04:45 we have this display up in our like common area and we have some like product statistics on it and stuff and the screensaver keeps coming on and someone says don't you have interns just make them wiggle the mouse every five minutes yeah that's kind of the joke like oh they'll go fetch your coffee ho ho and like i don't know the the low man on the totem pole but i think that that does both you and them a disservice i think it it doesn't use the the opportunity quite well or quite so well um maybe to talk about this we can talk about i mean what do interns hope to get out of it why why are they interning somewhere resume fodder they want to put google on their resume right yeah i mean who doesn't i just put it on there anyway i've heard that works actually i
Starting point is 00:05:38 just read a blog post about some company that well works in the short term some company was was torpedoed by this guy who just said he worked at google so they trusted him uh and then he like ruined everything but he didn't actually work at google but but the first part of that story it was like a huge success yeah i got this great job yeah yeah it got his foot in the door perfect so i've seen companies do this a couple of different ways uh i think you have too jameson but the one the most famous company is probably joel spolsky's company fog creek software in new york city where they advertise for their internship positions and they specifically call out
Starting point is 00:06:18 that they will be able to work on new product and they take their interns, at least in some occasions, they'll take their interns and put them on a project that's like a brand new product and say, hey, you have one summer, build it and we want to ship it
Starting point is 00:06:28 and sell it when you're done. They did that with the Copilot product which was like a screen sharing service so that you could hop on your friend's computer and help them solve a problem even though you're in different parts of the country which sounds really basic but was pretty revolutionary at the time.
Starting point is 00:06:45 um yeah i think to some extent i think you'll get out of interns what you put into them and if you just throw them on crappy boring tasks that you don't want your air quotes real employees to do then they'll definitely feel it um i know that that's kind of the way things work in some industries like marketing or film or or these there are lots of industries where people are expected to kind of just go through horrible experiences to pay their dues and then they earn their way up to like a real position that actually gets paid yeah yeah yeah exactly first of all pay your interns oh yes that's i think it's pretty standard in software but it might not be everywhere it's not especially outside of software it's very very common which man that opens a whole
Starting point is 00:07:36 can of worms then let's not go there yeah yeah but anyways pay them and and then um hopefully you accepted them as interns because they're smart and capable and they just maybe don't have the experience of like a full-time hire but but they can do stuff they can figure things out and and i think if you ask a lot of them they can step up to it um one company around here in utah called mx they did this apprenticeship program it's basically basically an internship um and and they ended up accepting i think like five or six interns on on a team which is not gigantic and they put them all together on a project um a fairly important project too and and the idea was that they would grow and learn more if they had each other to rely on instead of just being like
Starting point is 00:08:24 stuck as the the person who gets all the crappy work on some team off by themselves and and it also avoids that problem where the work is divided among them instead of um the hard stuff is left for the senior developers and the interns get both the easy and horrible stuff yeah so they're saying that they give them one project they're all together and there's no other developers on the project i think i might be misremembering the details i believe that there's kind of a senior engineer that rotates through the project as an advisor and then i think all of the interns individually get an advisor um i don't think that person rotates so there is some oversight um but it's definitely their responsibility so the way we do it at higher view is we take
Starting point is 00:09:08 interns and we just put them on regular teams with the rest of the engineers and the only thing that's different between the work that we give an intern versus the work we would give another engineer depends on their work hours like sometimes we have interns who say well i can only work three days a week and so we wouldn't give them work that would require them to be like really responsive uh for you know monday through friday like if for example they need to respond to production issues we wouldn't assign a piece of work to that intern if they're going to be out of the office for a couple days every week uh likewise if they're going to be in there every day but they're going to go home at noon you know work like four hours a day or something
Starting point is 00:09:48 but other than that we give them any job uh any task we would give almost any developer we would give to an intern really yeah pretty much including things that touch production more ops and things oh well ops um i would accept that also kind of breaks the rule i said about being available you know our ops people all are uh on the on-call rotation so they interns really can't do that generally i mean i'm sure some could but not these sure the ones we've had that's that's the one place where maybe um if you're touching things that could affect production not not in a way that you're just deploying features but you're you're like if you're doing more of a devops culture so your developers do a lot more provisioning and and and mess with prod that's the
Starting point is 00:10:34 one case where i think a lack of experience could uh that's not a comfortable environment to make mistakes definitely not um yeah so i would be a little more worried about i would have want a little more oversight on interns if they're doing things like that but besides that i think the more responsibility you give them the more that they can grow yeah definitely and we only hire interns that we think have the potential to become full-time engineers with us so that means by extension that they pretty much are trustworthy with our code base and they can make changes and we have process in place to prevent any engineer intern or otherwise from completely tanking production you know yeah another thing i like about um just the idea of interns in general
Starting point is 00:11:24 is i've heard this said about junior developers too but i think that they can be canaries in the coal mine they can kind of reveal bad processes or bad code or things that are hard to understand that senior developers are experienced enough to work around so if it takes like 30 steps to ssh into some server and then set some config flag and then like if your deploy process is a pain experienced senior developers can figure it out and and still deploy and it might not bother them that much right yeah they might they might have some stockholm syndrome going on there but they can still do it and the intern will just be like i i can't even yeah i what is ssh how how to computer and you might say like oh those darn interns they don't know how to do all this stuff
Starting point is 00:12:14 but the fact that it's so complicated to do it should be a warning sign to you yeah or if some chunk of code is just so arcanely complex that only only dave smith the the greatest engineer in all the land can touch it the greatest ssh oh wait no you're talking code yeah this is more this is more along the lines of my code is art yeah a few episodes ago dave has created just this fantastic piece of art oh yeah that as part of the art work uh it's impossible to change and fragile look you need to understand the third time you call this function it's going to seg fault and that's this by design yeah that represents how in life sometimes we go through the same experience and react differently um because we ourselves have changed because your mood is
Starting point is 00:13:01 like a global variable yeah exactly yeah that can be changed by the other thread yeah and the intern's gonna be like how how to computer so i think if you create an environment where interns can be productive it probably means you have a good test coverage some some decent documentation you have a way to um uh spin people up on the dev team quickly and easily and i think those are all things that will pay dividends for the rest of your team too not just the interns i really like that concept of treating interns like a canary in the coal mine not every team gets to have new people join all the time and so they're not often accustomed to new perspectives but if you have a well-designed organization and process and good code base interns will thrive and
Starting point is 00:13:49 if you don't they will fail and that's just awesome visibility yeah i know that some projects have the readme that gets updated once every time a new developer joins like read the readme follow it and your job is to find out where it's wrong and then fix it so that the next time it's only six months out of date instead of a year out of date uh so we actually do that yeah no we we do that too and it's gotten a lot better it's it's been less out of date every time one other thing to take into consideration is that interns are often time limited, both, like I mentioned earlier, in terms of how many hours they can put in during the week, and maybe what times during the week, but also in terms of just total amount of time they're going to spend with your team.
Starting point is 00:14:36 You know, some interns come in at the beginning of the summer, and they leave before the next school year begins, like if, say, if they're in college. And so it's really important to pick work that they can either A, finish in that time frame, or B, hand off successfully. And sometimes that means that maybe some of your deeper design problems that need a lot of input and have long repercussions probably shouldn't belong to the intern and we have actually done that on my team even though we pride ourselves on letting the interns be a full participant we certainly do limit the amount of work or the nature of the work that they can get based on their time constraints yeah that makes sense to me but we actually take it so seriously that one of our interns
Starting point is 00:15:16 was uh one of our team leads for a while and he just rotated in did the job for several months did fine it was great oh that's amazing what does that say about management even a college kid can do it i love that story we actually had to see uh one of our interns was the ceo for a while it was great it was great met with the board he uh raised some money he got his golden parachute when the semester started he went back to school with a million bucks in his pocket even though the company sunk classic ceo move oh those interns and he still got us all coffee we gave him a hard time oh my gosh the the weirdest part was when he had to fire some guy
Starting point is 00:16:10 but but had to get him coffee first because he was the intern can i bring you some coffee you're fired well that's all i have on this one question answered answered all right uh i will read the next one okay how do you handle developers who are dead weight from an anonymous listener i have a question about how you handle developers who are dead weight my ex-manager recently turned developer, was a very cool manager, but is a not so great developer. We are both on the same team in a new project. What started as me helping him to ramp back up into the JavaScript ES 2016 world has turned into me doing two people's work because he just doesn't ever seem to grasp the concepts and needs constant handholding. I feel this is a particularly sticky situation because he has
Starting point is 00:16:58 always had my back from his managerial position. Any advice from the soft skills engineering crew? if he's literally dead you should call a coroner that's number one just a soft skill yeah just stab him right in the back just betray him it's a cutthroat world out there you can't get to the top without you can't you can't make omelets without stabbing someone in the back yeah isn't that how the metaphor yep and you stab them in the soft parts hence soft skills oh this is a really tough situation actually yeah here we have a pair of people who have worked successfully but the nature of the relationship changed and now they're not working successfully that's basically what happened here right yeah it seems like it
Starting point is 00:17:45 the people didn't change but their responsibilities changed yeah while we were talking about this we had a couple questions and one is um is this his first time as a developer or is he uh like returning to development because i think that would make a difference yeah like did he write some mean cobalt back in the day and yeah yeah versus i'm brand new to this whole development scene yeah is he rolling up his sleeves to show you young whippersnappers some some of his tricks that he learned back in the day i'm guessing not based on how it's wording let's assume that he is this is his first foray into development really that seems like an unlikely situation to me though i feel like it would most manager to developer for the first time like because how
Starting point is 00:18:31 would how would he become a manager that's an interesting question okay let's not make that assumption okay i mean you can make it i made it and unmade it okay that was easy that was good assumptions are easy to break here uh so jameson have you ever been in a situation actually i know you have um where you have someone who is not pulling their weight and you need to talk to them like a peer who's not pulling their weight and you feel like you should go talk to them about it um yeah i i have uh this was a quite a while ago um and it was horribly awkward yeah it was horrible and it ended up with them not working there anymore so i don't i don't know that there's much like advice to impart from that it was it was
Starting point is 00:19:22 more like they weren't a great fit and they kept not being a great fit um go ahead yeah i just i I've only had, I think, one experience in the last 15 years where I worked with someone who I felt so strongly wasn't carrying their weight that I actually wanted to directly solve the problem. And even then, I felt it was just too awkward for me to go and tell them. Yeah. I just didn't do it. I didn't talk to them about it. It's hard. And in this case, the situation that our listener is describing here, it seems even harder.
Starting point is 00:19:54 Because of their relationship. Yeah, like they had a good thing going. And as a manager, he totally took care of him. yeah and now he's like hey i need to tell you you suck at your job yeah but on the other hand james and i were talking about this before the show started it's like this guy had his back they have a good relationship so that should be a leg up especially since they had management uh a manager relationship right so this manager probably knows a lot of things about you that a lot of people don't has some secrets and you've trusted him so i wonder if that would actually help you to have
Starting point is 00:20:25 this kind of a hard conversation it also seems like if you have management experience part part of what i imagined you would have done is try and help people improve and get better at their job yep and so you might have some empathy for someone in the in that role saying like hey you need you need to get better things aren't going great because i imagine that's something you've done before yeah the manager and in fact he's probably keenly aware if he's been a manager there's a really good chance he knows what performance problems look like because he's had he's been responsible for them in the past and so he probably already knows and he's wondering probably wondering how you're responding to this whole thing this sounds like a situation where you need
Starting point is 00:21:08 to have a conversation yeah i i wonder if he's in the the the situation where he kind of knows something's going on and getting it out in the open would make things better because it feels pretty terrible to to kind of feel like you're failing and and either everyone's talking about it behind your back or they're just kind of silently resenting you but getting it out in the open could be helpful i think um one way to broach that subject is to have just to sit down one-on-one maybe you already have times when you can sit down and be alone and just ask how do you feel about being a developer so far you know super non non like directional that you're not leading the person to answer the question that way and just see if it comes up it just it very
Starting point is 00:21:54 well might yeah in my experience uh that question always means i think there's a problem are you aware of it what if what if it's just a casual lunch conversation and you're like hey you've been you're a couple months into your new role how's it going like what do you like it yeah i Do you like it is a much better way to say it. Yeah, that's better than saying, tell me how you feel about your performance so far. Like, oh, it felt great until you asked me that question. So again, there's a lot of context we don't have here.
Starting point is 00:22:28 If he has been a developer in the past, I think some of those skills can atrophy. And especially if he doesn't know anything about the code base, there's just a warm-up period or a learning curve i mean if if he was a new hire you would have some patience about he needs to figure out what the code base is and and what's going on and what our patterns are um so if if he's new to the code base and also has been out of development for a while and so isn't uh kind of up to speed you mentioned with es 2016 um it seems like you should be looking for progress not just absolute velocity right now and if you're not seeing any
Starting point is 00:23:14 progress that's a different problem then um he's he's improving but just not as quickly as i would like it's a good point another thing to do uh is to make sure that you're characterizing this situation correctly is it possible that this person isn't just bad or slow but rather has a different style than you maybe they go about solving problems more deliberately and thinking through things in like a depth first way instead of maybe you're like a breadth first style and so um you know maybe they just need to work through things in a different order than you're used to and so you're then characterizing them as slow yeah that's true however the question specifically says that he's uh what does he say um helping ramp back up okay he doesn't seem to ever grasp
Starting point is 00:24:00 the concepts it needs constant hand-holding so it's like if you're repeatedly telling this person the same thing over and over like yes the semicolon does have to go at the end of the line you know like maybe maybe this isn't a mischaracterization maybe it really is just they're just not getting it yeah and there's also some amount of uh i i can detect some kind of stress or pressure on this person because he says or he or she says uh i'm doing two two people's worth of work. And I wonder if there's some kind of deadline pressure or just if they feel like they're being held responsible for the progress of the project when they don't have a team that can work as effectively as they would like to. Yep. And that probably means it's above your
Starting point is 00:24:46 pay grade to deal with the problem. If your company is expecting you to deliver at a velocity of two developers, but you really only have one capable ramp developer, there's an expectations problem that maybe needs to be managed at a level higher than what you're talking about here. Yeah. So this gets to, I have a philosophical dilemma to propose to you. I have talked to people who feel like if you are going to kind of, I don't know, not complain, but say something that could possibly negatively affect a person to a boss, you kind of owe it to them to talk to them in person first so how do you how do you feel about that does he does does he or she have the responsibility to say like hey you need to step up i'm feeling all stressed out to this person
Starting point is 00:25:32 no okay in my opinion no because what so i think i heard this great definition of gossip the other day that said gossip is when you're talking to a person about a problem that they cannot solve oh i like that and by talking to the person who is the problem they can solve it now if the situation was reversed and you had a bad boss and you were talking to your peer about the boss's problems that would be that that would fit the definition and that would not be productive um but in this case yeah i think i don't think there's any problem going to the person before you go to their boss now do you owe it to them i don't think so i think in the case of a performance problem it actually is your manager's job to work on that man i'm just thinking about that
Starting point is 00:26:13 definition it's great yeah i like that one that was compliments of dave ramsey in case you're curious ah there's your source a fellow dave yes of course he would be smart of course with a name like dave yeah i i think the question of how do i deal with people who are dead weight in in the like abstract is kind of a quite a bit different from this specific question because there are all these complicating factors about your relationship and how roles have changed and stuff this is like a this is like the the hard mode version of this question it really is um you want to talk about the easy mode yeah i mean the easy mode is uh well first of all um was this a hiring problem like should this person not have been hired did did you feel like they would have been great
Starting point is 00:27:09 and it turns out that they just aren't as good as you thought they were when they were hired um and and if that's the case then i mean no man i feel just soulless saying this but um but in my experience there are some training and mentoring can help people and you definitely want to make sure people are in an environment where they can succeed and when they where they feel supported but but if you don't see someone improving even with all the support and help that you're giving them uh it's it's not your responsibility to like rehabilitate people or or uh transform their lives you know yeah at some at some point it's their responsibility to at least initiate that process yeah so so the i
Starting point is 00:27:54 guess the doomsday like ultimate solution is just to to let them go um and that's a con oh go ahead well what if you're not in a position to do that yeah so so that's what i was going to say that's where talking to your manager and raising the problem and just saying i it's they're not keeping up and i don't imagine they ever will um there are all kinds of other things going on uh you might not be aware of some stuff yep big big big point yeah so but but raising that to your manager is like one thing that you could do with the knowledge that hey this might end up with this person getting laid off so that's like a pretty uh a pretty weighty step to take i think one time one thing i've done in the past is i i will go to my manager and i will say i do not want to name
Starting point is 00:28:41 any names here because i want to protect the innocent but i want to share with you some behaviors that i've observed and i want you to help me judge whether these are significant enough to bring to your attention and actually identify the person so that they can get help improving or be moved out of the organization um and then you can go through the situation and the manager can say no no you're actually overreacting or they can say these are real concerns i need to know who it is so i can help the situation or they'll say oh are you talking about fred you know yeah and it's like obvious to them and maybe they're already working with fred you know that's actually pretty common i now i've been in management now for coming on a couple years and what i have
Starting point is 00:29:19 discovered is that oftentimes management knows a lot more about people's individual circumstances than their peers realize especially when there's things going on in their personal lives that are struggle and um and you just can't share those things you just can't be like yeah so and so is going through a hard time at home like that's just not something i can share so um you know you you have to temper everything you know as a manager against uh what you're hearing from their peers and so yeah sharing information can't hurt but you do have to be delicate about it and that's one way to try sure that makes sense it i mean i i mentioned mentoring and and providing an environment where people can succeed and it it is worth it to examine your own behavior and say like
Starting point is 00:30:06 have i have i done enough to help this person yeah definitely i've definitely worked at places where i've been guilty of just throwing people in the deep end and expecting them to perform at the level of someone who is both a talented developer and who's experienced and comfortable in the code base and technology that we were using and that's kind of unfair i mean people take time to ramp up they take time to learn things and and people take time to improve so they're i mean it's hard to know without knowing the exact situation but there's a lot that you as an individual can do to help people out totally agree all right that was a hard one yeah it was questions sort of answered good luck tell us tell us what happens yeah we would like
Starting point is 00:30:58 if you are comfortable yeah um yeah this seems like it could have an interesting conclusion stay tuned for the exciting conclusion speaking of exciting conclusions we have an announcement to make and i forgot to tell dave about it beforehand so i'm just gonna spring it on him is it that we got music uh no i wrote another song it's an exit song not an intro song no it's our website our website is live it's at softskills.audio i think did i even say that right yeah you did softskills.audio yeah uh you can tell that um we are professional web developers by the way that there is words and two colors three colors that i can see actually there's black and white and also some blue and some gray yeah and some gray that's true never forget about
Starting point is 00:31:49 gray it's a quadro wait quadrochromatic website it's kind of the new design thing yeah it's it's the next iteration of flat design it's non-skeuomorphic quadrochromatic uh i think the term is brutalist actually you laugh that's a real thing oh no no it is yeah it's actually really interesting if you google brutalist design brutalist web design uh so check that out it has some show notes. It has links to the episodes. If you're listening, there's probably not a lot that you haven't seen already, but it's an easy way to share the podcast with people before we had to just share tweets, but now we can point people to URLs for episodes. So that's exciting for us. Yeah. Yeah. It's really cool. Um, it's a pretty revolutionary website. Uh, yeah, I think
Starting point is 00:32:35 you'll be seeing a lot of medium think pieces about the tech we've used here did you hear about HTML where can people go if they would like to ask us a question and have us answer it on the air yeah they can go to our
Starting point is 00:32:53 twitter we are soft skills eng and if you can just send us a direct message or a tweet we will put it in our queue and get to it and answer your question and we would love to many of you have done this and we're sorry that we can't get to all of your questions but
Starting point is 00:33:10 thank you for them alright I think we're done talk to you next week cue up our exit music I put my guitar down hang on oh no I forgot I play Stairway to Heaven it's been too long there it is i have not tried to play that song in like eight years uh you can tell how good i am
Starting point is 00:33:44 it's impressive you got a few of the notes out there several of those notes were correct that's a pretty good success rate i'd say all right see y'all later thanks bye

There aren't comments yet for this episode. Click on any sentence in the transcript to leave a comment.