Soft Skills Engineering - Episode 212: Turnover and self-inflicted complexity

Episode Date: June 1, 2020

In this episode, Dave and Jamison answer these questions: I’ve been working at a big software company for two years. Since joining, 10 people have left my team, which is more than 50% of my... team. Usually it’s the experienced developers who leave either for a different team, a different role or a different company altogether. The latest departure of a peer who I’ve been looking up to as a brilliant developer has been affecting my mood quite strongly. On one hand, I should be glad that I’m becoming a more pivotal member of the team, having moved up in the “seniority chain”. On the other hand, I’ve always believed the saying: “If you’re the smartest person in the room, then you’re in the wrong room”. Should I be concerned about this turnover rate? Is it considered normal? Why am I feeling different about this last departure than all of the previous ones? I am the tech lead on a team at a large tech company. One of the developers on our team has consistently struggled to meet deadlines and project deliverables. He frequently seems to invent his way into impossibly complex software problems. Additionally, he also seems to lack the ability to focus on a single thread, and tries to tackle diverse kinds of work in parallel. I’ve tried to help mentor and coach him, advising him to stick to one problem at a time and try to raise his hand and has for help before he backs himself into a hermeneutically sealed NP-hard problem — but I haven’t had much success. I wanted to see if you guys had any advice. Thanks a million!!! Actual study showing actual results that we actually linked in the show notes this episode: https://radford.aon.com/insights/infographics/2017/technology/q1-2017-turnover-rates-hiring-sentiment-by-industry-at-us-technology-companies

Transcript
Discussion (0)
Starting point is 00:00:00 it takes more than balancing parentheses to be a great engineer this is soft skills engineering episode 212 i'm your host dave smith i'm your host jameson dance soft skills engineering is a weekly advice podcast for software developers about the non-technical stuff that goes into software development unlike balancing parens i can only balance five parentheses because that's how many i have 10 fingers i just gotta you could say i could balance 10 but i don't know that algorithm there was a hilarious story in our slack community about this topic which is that a group of friends were doing a gift exchange where they could only give gifts that the other people would hate and one of them was taking a class in scheme and so the gift they received
Starting point is 00:00:48 was several printed pages of nothing but parentheses with a single mismatched paren. That's beautiful. It's beautiful. You could, this feels like a really weird targeted Instagram ad I would get or something like that. Like this beautifully framed, printed, just poster of unbalanced parentheses.
Starting point is 00:01:12 Just barely unbalanced. Yeah. People could stare at that for a long time. It's like the Y Combinator, but there's one missing paren so good well it's not what this is about nope should i thank our patrons i think you should okay thank you to the fine folks who are supporting the show at a level where we shout them out every single week thank you to braden canes dennis bogdanov evgeny sladkowski john grant luke bayliss microconfig.io nick hathaway nick cantar philip john basile ryan
Starting point is 00:01:39 real mccoy the agile ventures charity sean stanley tactical radio stephen armand lee taurus haruk travis and bin lock thank you to all those folks and everybody else who has supported the show you help keep us going you help pay for the expenses you help make our day bright yes and if you donate any amount of money by going to soft skills.audio and click support us on patreon we will invite you to our slack cult which is what we call our slack team because it feels weird to call it a team because we don't have uniforms although lots of cults have uniforms yes why have we missed this opportunity yeah it's really tongue-in-cheek though because cults don't say they're cults that's true so we're outing ourselves as not a cult i guess anyways we'll invite you to
Starting point is 00:02:19 the slack thing you can chat with fine folks hear these funny stories firsthand that dave just mentioned about uh balanced parents and i learned stuff i genuinely learned things from reading the discussions that happen in that slack it's really good yeah it's great i want to share a follow-up comment we got from a listener about the episode 209 about being a glue person on a team here i'll just read this ah it says regarding your episode about a glue person i had such a person on my team last year the team had two testers four developers a product owner and a scrum master but since the glue person left we have had fewer conversations and almost no non-work related conversations we had an after work discord channel but a week after the glue person left no one was there to talk
Starting point is 00:03:01 Since then, everyone from our team has transferred to other teams in the company or resigned. Whoa. Whoa. That person was literally holding the team together. Yeah. They were like a foundation person. Yeah. Or really, really good glue. Just like covered in glue. It is weird how changes to groups are not just, I'm trying to think of a way to say this that makes sense. Subtracting a person doesn't just subtract like one proportional amount of like conversation or camaraderie or something. Like they're not, I don't know how to say it they're not linear yes like the group dynamics change quite a bit definitely not one to one like one conversation unit to one person yeah and it could be for better for worse in this case
Starting point is 00:03:40 it sounds like it was for worse yeah sometimes when one person leaves the conversation actually improves yeah suddenly everything's great it's the anti-glue instead of it's one person unit better whatever that is yep cool thanks for sharing that yeah you want to read our first question i certainly do this is from an anonymous listener i've been working at a big software company for two years since joining 10 people have left my team which is more than 50 of my team usually it's the experienced developers who leave either for a different team a different role or a different company altogether the latest departure of a peer who i'd been looking up to as a brilliant developer has been affecting my mood quite strongly on one hand i should be glad that i'm
Starting point is 00:04:20 becoming a more pivotal member of the team having moved up in the seniority chain on the other hand I've always believed in the saying, if you're the smartest person in the room, then you're in the wrong room. Should I be concerned about this turnover rate? Is it considered normal? Why am I feeling different about this last departure than all the previous ones? 10 people in two years, more than 50% of my team. Yeah, that does sound like a lot. I'm trying to think through the past two years on my team. I don't know. I can't do math on the air. That sounds like a lot. So I did some research for actual information instead of opinions. And I found a link that we'll put in the show notes now we have to because i said we would okay this is a study by this
Starting point is 00:04:57 radford group that maybe if it means a thing to you you know who they are i don't know i don't know who they are i haven't dug into the sources of the data but they made an infographic so i trust it it says that the average yearly turnover in a software company is 22 percent 15 percent of that is voluntary seven percent is involuntary so voluntary is like you quit involuntary is maybe you die but most likely you get fired like literally hit by a bus yeah or laid off or whatever okay so 50 in two years sounds much higher than well no it doesn't actually sounds normal it's six percent higher than this study from 2017 that i haven't fact checked yeah i mean it's six percentage points but it seems within reason yeah i don't know like you're
Starting point is 00:05:45 in the ballpark plus or minus you're in the ballpark now if it's all senior people there there's a slightly different story there perhaps and this is company-wide instead of team-wide so i don't know maybe it varies from team to team so don't worry about it the end problem solved so so this is like people leaving the company yeah this statistic i quoted but the question asker is talking about some people leave to other teams or change roles and that's they're still in the company right so it's sounds like they could be doing better than the average if if enough people have stayed within the company but just moved to different roles there are some companies that really encourage internal movement like in general companies like it because they think that
Starting point is 00:06:27 it's an escape valve instead of someone quitting they stay at the company and you get to keep all that institutional knowledge but they still get some of the benefits of like change of scenery and right avoid some bad things that happen on their old team or whatever like so companies generally like it when people move around but i feel like i've seen some companies that every six months they'll just like blow up all the teams and scramble everything around like they they have some practices in place to encourage it not just say you can do this if you want there's like a clock that sits next to your desk that's like counting down certain number of months until you have to leave yeah or or like i feel like there's a whole genre of tech adjacent conversation that's
Starting point is 00:07:05 like rumors about big tech companies like rumors about fang companies a friend of mine who worked at google knows a friend who did this thing and then it gets repeated enough times and suddenly becomes enshrined but i've heard that at some of those fang companies engineers are very empowered to switch teams whenever they want they can just basically like go to a different team and start working on that team and it's sort of a i guess an incentive for managers to try and attract engineers instead of like allocate people from the top down so the point of all this is saying like it doesn't seem inherently weird that people would leave the team over a period of time yeah but it can it be a little disconcerting when you see it happen on your own team i think so yeah i
Starting point is 00:07:46 think i feel like i've been in the same situation a few times where there's someone who in my head knows everything they built everything they like this core essential part of the team and they leave and i think how will we function without them yeah sometimes it's also related to relationships i have with them like maybe i really like hanging out with them in every case though things have kind of been okay i mean there's still differences but i found that i often overestimate how essential people are yes to continued operation of a team how irreplaceable they are yeah and and people generally step up and there could be some rocky times but in general i've actually found that most of the time the team ends up better off when there's not this this person carrying all the load
Starting point is 00:08:28 for everybody else oh so you're referring to specifically the case where like a particularly high value team member leaves. Yeah. And I have counterexamples in my head, but most of the examples in my head end up spreading the responsibility out and empowering people to do things that previously were like inadvertently hoarded by this one person. I mean, in my case, obviously I'm a counterexample. Every company I've ever left just went down in flames within days. Several jobs ago, the company that I left, it lasted a few more months, but it drastically changed pretty soon after i left and i felt bad for all the people that were affected but there was a little bit of like a bump to my ego to think i was the cool guy that walked away from the
Starting point is 00:09:12 explosion yeah i dropped my tools and the machine broke down some people just want to watch the world burn yeah is it considered normal so should i be concerned maybe is it considered normal it seems normal ish why am i feeling different yeah that's a question i want to answer why do i feel different about this one i'm trying to think like was the person who left a hollywood celebrity you had some kind of star powered infatuation yeah did you call yourself a stan of that person wait what are you familiar with stan culture dave no oh this is gonna be another regular installment of jameson explains today's youth to dave yes so in the past you could be a fan of somebody you might like tina turner's music or something
Starting point is 00:10:02 okay nowadays being a fan is over you have to be a stan there is a eminem song where there's a character named stan who is like a crazy obsessed fan i think i haven't listened to the song in forever maybe murders them i don't know but he's like creepily obsessed with with eminem okay and that name stan rhymes with fan and kind of became co-opted to like obsessive fandom of somebody okay so like i don't know ariana grande has people who stan her it's a verb and a noun right of course of course it is and like k-pop stans they they exist people who just like love k-pop or love certain k-pop groups like is it considered a negative thing to say i'm a stan of so-and-so no it's it's like it's showing your devotion to that it's like this is how much i like it
Starting point is 00:10:53 sometimes people use it ironically too to say like standing these pickles i got from this jar or something i don't know not ironically who even knows what irony means i don't know what that word means you're not alone they use it hyperbolically but that's a that's a common form of interacting with celebrity today and so to bring it back to the podcast soft skills engineering where we talk about all the non-technical parts of your technical job yeah perhaps you are a stan of this person ah oh got it way to bring it back now the circle is complete yeah dave knows more about youth culture thank you i'm a big stan of what you just said uh i really want to hear i want to be a fly on the wall when you use this in a conversation with your daughters oh yeah don't
Starting point is 00:11:39 worry i've got i've got several teenagers who will be quite happy with my i'm sure accurate usage of their lexicon boy honey i really stand this grade you got on your on your music exam or something like that like okay i'll let you know how that goes anyway yes so maybe you were a big stan of this person i mean obviously you were yeah yeah i mean if you worked with beyonce and then beyonce left to a different company it would be understandable that that would affect you a lot boy you can't say understandable without stan i'm thinking that this might have less to do with the person who departed and more to do with the seniority vacuum that you're staring down right now that that is like about to engulf you it's
Starting point is 00:12:27 like all these senior folks have left and i'm starting to feel kind of heavyweight like all these folks that i used to depend on every day now it's me so they the question asker explicitly mentioned that if you're the smartest person in the room then you're in the wrong room that feels to me like they're not worried about can i handle the weight of being looked to for ideas or answers and more like am i learning if i am now pretty senior on this team i have no more mentors continue to develop yeah yeah i've found that my career often goes in cycles and there are kind of distinct phases where maybe i really gel with a particular person or particular team and then they leave or the team changes or something and then i work with other people and it's it's not
Starting point is 00:13:09 horrible or anything but it's just like oh this isn't quite the same as that previous phase but it's not always like that it's not every single second i've ever spent at a job i felt like oh there there's this brilliant mentor that i get along with really well and and just feel like i'm constantly learning from them but i think i learned stuff from those periods too it's just different things yeah you learn stuff from your own direct experience usually by making mistakes yeah exactly yeah like if you can't go ask a smart person what they would do in this situation then you get to figure it out yourself and yeah like you said dave you might mess it up but you'll certainly learn stuff you certainly will so you might have just entered a new phase of your
Starting point is 00:13:49 of your tenure there on that team you may have entered your chrysalis now yeah soon you'll be a butterfly before you were a grub it's the beauty of uh yeah why do why do we always talk about like caterpillar to chrysalis to butterfly why don't we talk more about maggots turning into flies that's the beautiful transformation that i want it's so beautiful the circle of life larva to mosquito larva developer to mosquito developer replaced junior and senior i think i think in this kind of a situation there is a temptation to kind of chicken little which is a reference that means run around like the sky is falling because all these people are jumping ship like the rats are
Starting point is 00:14:36 swimming away from the sinking cruise ship meanwhile you're left to rearrange the deck chairs on the titanic i don't think that's necessarily the case here you know there's I don't know. It's hard to say, but I would probably reach out to some of the folks who have left and try to get a sense for why they left this team. That's particularly easy if they're still in the company and they're willing to share with you. Actually, it's just as easy sometimes if they're out of the company and sometimes they'll be more honest in that situation. But I would probably lean into this newfound autonomy and say, look, I am becoming the senior person that these other folks can depend on. Now I'm going to flex these muscles and learn
Starting point is 00:15:12 how to be the person that more junior people need and having just been i'm going to assume having just been a junior person and more junior you are very well poised to empathize with these people and help them out so i think this is this is an opportunity in disguise it's also an opportunity to kind of try out some of your ideas that may have been harder to to do when there were other people that had a lot of seniority there yeah it's not i've even seen this where it's not like people will say no if you say hey can we do this thing it's just there's just like not room in the team's collective mind to consider trying ways of oh words please edit that out there's there's not room in the team's collective brain to consider other ideas if if they're just like really anchored
Starting point is 00:15:58 by a few senior people who think this is the right way to do things or don't even see a problem that you might identify right dave you said reach out to all these people that have left the team if they don't tell you then it might be you if nobody tells you why they left the team they say oh no reason you know other opportunities yes to work with not you exactly well have we answered it i think so good luck yep best of luck dave please read our next question okay this comes from an anonymous listener who says i am the tech lead on a team at a large tech company one of the developers on our team has consistently struggled to meet deadlines and project deliverables he frequently seems to invent his way into impossibly complex
Starting point is 00:16:44 software problems additionally he also seems to lack the ability to focus on a single thread and tries to tackle diverse kinds of work in parallel i've tried to help mentor and coach him advising him to stick to one problem at a time and try to raise his hand and ask for help before he backs himself into a hermetically sealed np hard problem but i haven't had much success i wanted to see if you had any advice thanks a million so okay time for me to talk about things i don't know on the podcast np complete is like isn't that some class of problems can be reduced to oh no it's the wrong show it's been so long since i talked about this it's very simple it's the class of problems that can be reduced to inverting a binary search tree on a whiteboard
Starting point is 00:17:31 in an interview context aha so there's something about like reducing problems to other problems that proves that they're also np complete yes this person has the opposite problem where they can reduce like p problems to np problems they can reduce like move this button around to like solve this traveling salesperson yeah yep so you have to find automatically the optimal way of placing this button by visiting all the different dom nodes in the best order or something like that that's right oh my gosh knapsack is the knapsack problem np complete or np hard i i don't remember i don't think so oh man i'm just remembering like cs 235 it's been a very long time yes yeah well sounds like they might be doing some resume driven development
Starting point is 00:18:22 oh actually maybe not this is this might be like thesis driven development puzzle usually resume driven development is more focused on like buzzwords and yeah yeah specific technologies than like what is the coolest most researchy way i can solve this this is like entertainment driven development yeah like yeah i know binary search might work but what about trinary search i just can't stop thinking about trinary search trees those are sort of like bee trees i guess right man i'm so out of my depth here i feel like i need to go crack open a book now so i can i can make sensible jokes about computer science topics instead of not sensible jokes about computer science topics have a nice weekend oh you know i will now so i'm assuming
Starting point is 00:19:12 that this person is relatively junior these feel like taken together these feel like problems of seniority like lack of focus on a single thing combined with like getting really rabbit hold into hard ways of solving problems that don't necessarily require those hard ways does that seem reasonable to you that they might be more junior oh yeah for sure quite possible so one answer is like time just they just suffer through the the consequences of getting rabbit hold on it's not just rabbit hold rabbit hold is like focused on a thing yeah they're like whack-a-mole hold it's the squirrel or the dogs in the movie up distracted by looking for squirrels yeah squirrel but if they were like inventing robots for each new squirrel they saw because they don't
Starting point is 00:20:01 just run over there they're like now i will craft the perfect technically complicated and very labor intensive solution for squirrel and then they go and like do another one yeah that's exactly right i think we have two problems here in my not so professional opinion i would diagnose two syndromes the first one is over engineering where you take simple problems and and find very complex solutions for them which some engineers just love to do and the other one is distraction which is not exercising discipline in staying away from other problems until you've solved the problem in front of you and combined oh scary do you tackle them in a certain order do you feel like one is worse than the other how do you handle both of them well i think the distraction problem is
Starting point is 00:20:46 probably the easier one to tackle because that can be done with yeah habits and just little mechanisms or maybe with a check-in process where you know and frankly this is something your manager is probably very aware of. Seeing that this person's having a hard time delivering, they're going shallow into many problems, but not going deeply enough into any one problem. And that will probably manifest in the form of weak delivery numbers or lower than expected output. And it's your manager's job to coach people through this. But over-engineering is harder. It is much harder, I think, to address when a person has a tendency to do that. Oh, man. I mean, almost the best thing you can hope for is to point out to them that there is a simpler
Starting point is 00:21:28 solution to the problem. But even then, I don't know if that helps them to jump to the simpler solutions in the future. It's also one person's over-engineering is another person's engineering. True. There can be a lot of context for what over-engineering is. And if you're relatively junior, maybe you've heard that like, I don't know, there's certain class of problems can exist, but you don't have the context to know that it only occurs in these like very complex systems under these really intense traffic loads and you just think like my little i don't know hello world echo server now has to handle back pressure or something right right so some of it could be well intentioned but based on maybe lacking some of the context or some of the constraints
Starting point is 00:22:12 yeah that might be one way of tackling this over engineering is saying like here are the properties that need to exist in the solution when you're done. And here are the ones that don't. It doesn't need to be resilient to like Europe going offline or something like that. But maybe it does, you know? And it's like, let's be clear about that. And I think in my career,
Starting point is 00:22:31 I could probably be accused of under-engineering most of the time. Like I lean towards simpler solutions that don't address future problems. And what that means is that a lot of times my software fails when new situations come about. But the funny thing is what I have seen from over-engineered solutions is that that software also fails because all of the things that actually happen to make the software fail are the things that they didn't anticipate anyway. And all the things that they did anticipate and engineered for never happened.
Starting point is 00:23:04 So anyway, the point is all software fails. It is hard to predict the real world. Yeah. Yeah. That's the part where I wonder if just time will grizzle this person, will make them realize that all this extra effort they spent on optimizing the assembly for the sorting algorithm didn't help them when, I don't know, somebody messed up the certificates in front of their site and it went down. Yeah, I think if you are this person's mentor, I think it is actually a great idea to do a retrospective on the last year of their engineering contributions and pull up code that they wrote and say, okay, you designed this system and you built this complex class interface so that it could be extensible. How many times was it extended? Just make them answer the question.
Starting point is 00:23:51 And sometimes they'll be like, well, zero times. and then ask the question, how much simpler would this have been if we had built a non-extensible solution because we didn't see a need for extensibility at the time? And just make them answer that question. Yeah. Questions can be really powerful ways to drive long-term thinking changes in people. Don't you think so, Jameson? Question mark. I'm sorry. I wasn't paying attention until you asked the question. hmm i mean yeah to me like one of the benefits i feel like i'm going in circles because i keep saying they need to just do more things but one of the benefits of experience is hopefully some
Starting point is 00:24:30 insight into when it makes sense to invest more and and harden things a little bit more and when you can get by on something quicker and it just really feels like they don't have that yet yeah six one problem in time try and raise his hand and ask for help yeah it seems like the problem is that they don't this this person on the team doesn't recognize even when they're doing this it's not just that they know like oh i'm gonna handle every single edge case or make this super extensible and customizable it's that they don't recognize that they're getting sucked down this this path right maybe maybe it's the same solution for both problems though i was gonna say that when you were talking about um this this problem of doing a whole bunch of work at once slowly
Starting point is 00:25:16 kind of parallelizing yourself too much one solution to that is have or or have more guidance or oversight on delivery and more regular check-ins and and more clear expectations on what you will be working on when and i think that sort of helps take care of the issue around over engineering as well by just adding some constraints say hey you don't have time to like make this super extensible class framework yeah because this is when we expect it to be done and and that might help it feels gross to say because you're kind of just like turning the screws on them to say hey i'm going to pressure you so you don't have time to think but maybe instead of saying you don't have time to think you frame it as you have time to think up front about the implementation cost of
Starting point is 00:26:02 the thing you're you're thinking of doing and think like does this match with the constraints or expectations. Yeah. The other thing I was thinking on this topic is I wonder if the reason this person is getting distracted onto many projects at the same time is because they're encountering blockers. And rather than pushing through the blocker or raising their hand and asking for help, like I'm latching onto that phrase raising his hand. And rather than raising his hand for help with the blocker, he's saying, okay, I'm just going to set that aside and work on something else until it gets blocked. And then before you know it, you've accumulated a pile of like five projects that are all stuck you just rotate through them as one of them gets blocked
Starting point is 00:26:37 yeah and then yeah i have seen that happen before yeah i mean it's it's fun to go work on things where you can actually make progress and it sucks to go and like un unstick blockers because usually blockers mean i have to reach out to some other team or i have to get buy-in from some leader or i have to write some documentation like things you know things that are not as fun as cranking out the rockstar code yeah and maybe that's what's happening i mean you could impose a limit on work in progress that's the thing that teams do sometimes on their process because for the reason you described like it's it's really wasteful to have a ton of work in progress at the same time you're not getting any value from it you get value from when you deliver stuff so maybe yeah maybe
Starting point is 00:27:19 that's another alternative yeah isn't that the kind of the kanban thing yeah kind of the heart of the kanban all right well did we answer the question indubitably okay great undoubtedly great what can people do if they are blocked at work and want to go ask us a question instead of making progress they can go to soft skills audio click ask a question if you find any bugs on that page then you're now blocked from asking a question and you have another task which is to fix the bugs you can give as much or as little detail as you want we will get to all of your questions eventually before the heat death of the universe yes we really appreciate it they keep the show going please share the show with folks if you like it too we we we like talking about this stuff but
Starting point is 00:27:59 we also like knowing that other people enjoy it too yeah all right we'll catch you next week

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