Soft Skills Engineering - Episode 285: Staying technical as a manager and skill over seniority

Episode Date: January 3, 2022

In this episode, Dave and Jamison answer these questions: In the past couple of years I transitioned from a freelancer, to a full-time software engineer, to a product owner, to a manager of a... small product development team. Due to the relatively rapid changes, I feel I have not had enough time to go particularly deep in my knowledge and experience with any of these roles. I’m currently focusing on developing the soft skills needed to be a better manager. I have this nagging feeling though that I should still be developing my technical skills. But in the grand scheme of things, is it still useful for a manager to continue to develop technically in order to provide useful input/guidance on technical decisions? Or would it be better to leave the technical decision-making to the team and instead focus purely on building up the team, supporting members in reaching their career goals, and improving processes? Thanks in advance for your thoughts! Hi! Love the show and recommend it to everyone, even if they’re just asked for directions… I’m the Front End Lead at a fast growing startup. I really want to start delegating more, so I decided I’m going to appoint a front end tech lead on each of our teams. I already have my tech leads picked out, but….. My problem is with one of the teams. The person most fitting for the job is a very talented, yet very junior developer. This team also includes a very senior developer, which I believe is not fit for the job at all. But the senior developer is looking for a promotion. I’ve consulted with my managers and they think passing over the senior dev is basically forcing them out of the company (or at the least, making them a very disgruntled employee). Right now i’m holding back my decision just because of this. Please help me! Thanks :-) Show Notes https://www.lesswrong.com/tag/paperclip-maximizer https://www.decisionproblem.com/paperclips/ https://charity.wtf/2019/01/04/engineering-management-the-pendulum-or-the-ladder/ https://charity.wtf/2017/05/11/the-engineer-manager-pendulum/

Transcript
Discussion (0)
Starting point is 00:00:00 it takes more than making code golf an official code review step to be a great engineer this is soft skills engineering episode 285 i'm your host dave smith i'm your host jameson dance soft skills engineering is a weekly advice podcast for software developers about all the non-technical stuff that you need to do such as i keep forgetting what code golf is this is like minimum number of characters in your program to achieve the outcome yeah in this case the non-technical stuff that is important for the technical career of software development is knowledge of the rules of golf a silly game yeah try to try to do the thing in the fewest possible characters yes yes i've verified that your fix indeed closes this critical security vulnerability
Starting point is 00:00:49 but unfortunately you used 37 characters and the limit is 36 so you're gonna have to like jam some functions into arrays and then eval something and i feel like the answers are always do really bad things to make your code short you're gonna have to introduce about seven more vulnerabilities to fix this one but yeah now as long as the uninitialized memory actually points to this stack pointer then yeah oh man then this will work in 17 characters it's better than where we are now so let's ship it yeah here we overflow the buffer that we deliberately set up to be the wrong length earlier and yeah there's probably some wild stuff i've never gotten into code golf what's the other code basketball what would you call
Starting point is 00:01:43 code where you're trying to make it as long as possible java like you want you want to score the most points yeah basketball doesn't have that many points so is there some sport where you get like millions of points it would have to be some 80s arcade game yeah code galaga or pinball yes code pinball isn't it true that pinball has just an obscene amount of points It's like, oh, I hit this hammer a few times and now I've got 7 million points. You know what it could be? It could be Code Cookie Clicker.
Starting point is 00:02:21 Have you ever played those Infinite Idol games? No. Or there's one called Paperclip Optimizer or something like that. Is that Universal Paperclips? It probably is. Paperclip Maximizer. Oh, I don't know that one. I don't know that one.
Starting point is 00:02:35 No, that might be the source of the analogy. Okay. yeah but i think i think you described paperclip ai game yeah universal paperclips yeah there you go that's a great game but that's that's a plug for that game that is just an incredible game you should all play it so we do code universal paperclips where you try trillions and yeah increase the number of paperclips you generate by orders of magnitude until you fill the whole universe with paperclips and you've consumed all matter you kind of spoiled the spoiled the game there but oh really well that's like the analogy it's from oh yeah well
Starting point is 00:03:10 i mean that's what it is but it's just you don't know that when you start playing the game and then it's like oh my gosh or do you maybe maybe that's the twist maybe i just seeded a a fake ending right of course you did and you'll never know until you finish it the goal of the game is actually to produce 15 paper clips that's it it's totally uninteresting wow that was easy all right i'm gonna add links to paperclip maximization stuff cookie clicker is another version though where you try to make a lot of cookies okay and for some reason that one sucked me in for a couple weeks i don't know i feel like i look at these and they look really boring but then there were just so many things to click in cookie clicker i just had to keep clicking them
Starting point is 00:03:57 yeah i had to i want to talk about our wonderful patrons that make this episode in the show possible thank you so much to andrew pollock the yeet your job podcast every sturt soul ian walter aaron duna kashokton ohio cameron hall ira chan monkey face emoji jonathan king testing is documenting.org fizzbuzz influencer oladapofade karen sveinsen will angel ragnar hardison nick hathaway travis sanders dennis bogdanov brady and canes john grant i bought winrar nick cantar and philip john basile thank you to all of you heroic individuals who subscribe at the patreon level or contribute contribute at the patreon level where we shout you out every single week in the podcast if you join this group or if you contribute any amount of money then we invite you
Starting point is 00:04:41 to our slack team where we just had a holiday party which i missed because missing out on scheduled group events is my love language as an introvert but i heard good reports that's so funny i just got to do it again today i got to cancel a thing and this wave of relief flowed over me boy you could like this could be like a therapy program for you where you schedule you have you hire someone oh yeah i could just sign up for a bunch of stuff yeah they schedule fake events for you to go to they never existed but you don't know that and then you just don't go like you like an hour before the event is scheduled someone cancels it and it's not your fault it just gets canceled hey bad news about the artisanal butter tasting festival it was closed
Starting point is 00:05:30 due to using margarine instead of butter and then they were found out it was a huge scandal they thought they could sweep that under the rug but nope yeah that's a really good idea okay this episode is sponsored by hired the best way for engineers to find their next job and we'll share more info about hired in a few more minutes jameson you want to read our first question for sure this is from an anonymous listener who says in the past couple of years i transitioned from a freelancer to a full-time software engineer to a product owner to a manager of a small product development team due to the relatively rapid changes i feel i have not had enough time to go particularly deep in my knowledge and experience with any of these
Starting point is 00:06:14 roles i'm currently focusing on developing the soft skills needed to be a better manager i have this nagging feeling though that i should still be developing my technical skills but in the grand scheme of things is it still useful for a manager to continue to develop technically in order to provide useful input slash guidance on technical decisions or would it be better to leave the technical decision making to the team and instead focus purely on building up the team supporting members in reaching their career goals and improving processes thanks in advance for your thoughts hmm should i get more technical huh i have so many thoughts about this i don't have any jokes though traditionally we start with the jokes yeah although sometimes we also the middle
Starting point is 00:06:51 and end is also jokes and so that's true it's hard to know i just want to say stuff there's a couple good blog posts that i link to other people regularly let me pull them up really quick They are by charity majors who we had on as a guest Several years ago. I think we've had three three or four guests one of the illustrious few Here it is engineering management the pendulum or the ladder and then she has another one called the engineering manager pendulum and I think the thesis of her posts are basically that there's kind of a sweet spot where some people end up where
Starting point is 00:07:29 They swing back and forth between senior individual contributor roles and engineering management roles of kind of like an engineering team not not climbing up into the layers of middle management and her argument is both of those roles make you better at the other one if if you have this deep technical experience as a senior ic or individual contributor then you'll understand what your team is saying or experiencing a lot better than if you don't have the tech skills and if you spend some time managing you understand kind of the business demands on on the team and the those incentives in that environment a lot better and it can help you deliver more as an individual contributor and and in her mind a lot of people stay there and
Starting point is 00:08:12 kind of swing back and forth without moving up towards becoming the ceo of the universe whatever is at the top of the ladder yeah that's at the top yeah so the point of me mentioning this is that it doesn't have to be a one-time fork in the road you could be an engineering manager you could move back to an ic role later you could swing back and forth or you could commit full-on to one of these pads if you want but it's not impossible or wrong to say you know management's been great i want to move back into this ic role i want to build stuff and don't want to worry about performance reviews and well still worry about them but only worry about mine yeah i don't want to worry about being on the other end of the performance review yeah and just one i want to
Starting point is 00:08:54 get the review not give the review that's right i just want to be on the crying end which is the receiving end yes unless it's just the most meaningful it's it's just a moment of human connection so deep that it causes you both to shed tears right as you as you sob and your manager says exceeds expectations you're getting all choked up yeah and that's why i am honored to present to you i promised myself i wouldn't cry all right i've set the new bar for performance reviews yes i do not cry with joy yeah something's gone wrong so okay so so you're saying you can swing back and forth if you need
Starting point is 00:09:45 yeah that's kind of that's not really directly answering the question though that's just a big tangent because i'm excited about these blog posts and i've been recommending them to a lot of people lately so they popped into my mind one way i like to think about this question is take it to the limit, the extreme. Take it to the limit in both directions. So let's maximize your technical skill on one side and on the other side, drive your technical skill to zero. Could you be an effective software development team manager with zero technical skill? And I think the answer to that is pretty clearly that you would be a poor manager. You could probably manage, but if you just have no idea on the technical side of things, you probably can't do nearly as good a job. So I
Starting point is 00:10:24 know do you agree with that jameson i think so there's a swath of problems for which you will either you either won't see them until it's too late or you will just have to trust your team and your team might not see them or or might be wrong about them or i don't know yeah and you won't know if they're wrong yeah you'll just be kind of shuffling stuff back and forth between your team and the other parts of the org that's right you'll become kind of a paper pusher you know just you provide status reports outward and commands inward and hope that everything works okay so that's i guess that that would be probably i would say that's a bad path is to go down to zero technical skill on the other hand though let's say maximum technical skill let's say like you are the most
Starting point is 00:11:04 technically skilled member of your team and also the team manager is is that a good thing or a bad thing i don't know if it's a good thing or a bad thing but boy is it common is it i think it is Yeah, I think it's the default way people get started in engineering management often. Is that they were excellent individual contributors? Yeah, you're the best engineer and we need somebody. So congratulations or not, depending on whether it's a lateral or upward move at your company. Your question, though, is like, would that person be a good manager? Yeah.
Starting point is 00:11:38 I mean, they could be. They could be a really bad one still. I wonder if it's, I wonder if a typical human brain is capable of being extremely skilled technically and extremely skilled managerially. I think the answer is yes, because I would, I would like to believe that's how I am. That's right. Obviously, obviously. There's certainly a time constraint where if you worked as an engineer, you, if you work as one, hopefully you're pretty regularly strengthening your technical skills and doing activities that make you a better engineer. If you're an engineering manager, you are not. And you're
Starting point is 00:12:13 relying on built up momentum and past experience, but you are not developing new experience at the same rate you are as an individual contributor. Some people still manage to contribute heavily as managers. It's hard to do a good job at both. And most people I've seen end up swinging away from contributing as much individually. And then their technical knowledge sort of decays, I guess. like you remember the principles you don't learn the new technologies as well you maybe learn them at a high level that you need to write slides about them or whatever yeah but you're certainly not in the trenches uh experiencing the effect of this new pattern on the code base and and so so i feel like people that stay in management generally tend towards becoming less technical
Starting point is 00:13:00 not because they get worse necessarily but because they stop getting better and they also stop keeping up yeah and i do think that there are two dimensions of technical skill one of which atrophies and one of which can be strengthened in a management role which are that there's kind of the low level technical details like oh did you know you can save yourselves from having to type those hard brackets in this case if you just use this other syntax kind of low level details did you hear about that ludicrous new javascript framework that's exactly what a ludicrous display yes like that or to give another example in that same category things like you know i know this api like the back of my hand i know there's 17 different function calls and i know what each
Starting point is 00:13:41 of them do intimately all of that is kind of this low level category but then there's another category of skill that i think a lot of software developers actually don't work on by default because they're so focused on these little low level details which is more systems thinking boy There's a million subcategories here, but systems thinking is composed of stuff like process optimization, but also architecture and design and resiliency and operational efficiency and cost and all these other things that go into building a software system that maximizes value for the investment, which is a totally different skill set from, I know this JavaScript API really well. you know and i and i think really excellent managers start to flex those muscles a lot more than the low-level details about oh don't call that function call this function instead do you think you need some of those so our question asker is asking do i need to keep developing my technical skills explicitly they don't they don't really say that they wait i have not had time to go
Starting point is 00:14:43 particularly deep in my knowledge they do kind of say that they feel like they they might not have enough of a background. Yeah, because they've gone shallow in a lot of things, right? So my answer to that is that you absolutely should, as a manager, improve your technical skills, but probably not on that low level stuff that I described a minute ago. You should be focused on bigger picture things that will make your team more efficient. Things like language choice and technology decisions and architectural decisions and things like that. And the reason I say that is because I think most managers will need to complement deficiencies among team members who just don't think about that stuff very much you know sometimes there'll be some people who do
Starting point is 00:15:19 but it's usually not one person's job to do that unless you have a pretty big team where you've designated kind of principal architect kind of like an architect yeah for the team yeah exactly but that's i don't see those very often especially at small and medium-sized companies and so it falls to management to to do that i think usually do you think you can do that without the low level day-to-day experience using the thing yeah i think you can because because there's always this stereotype of the kind of clueless and there's a word i can't think of right now pointy-haired boss the clueless manager who yeah who doesn't have the context just swoops in and says we will use technology x yeah because and then there's some reason like maybe they know
Starting point is 00:16:03 the salesperson right right or won a programming contest with it back in the day what i lack in technical skill i more than make up for in decisiveness i always think of that you mentioned it on the show a while ago you pay me to read or to lead not read exactly so i i think that even if you don't have a day-to-day contact with these like low-level programming tasks i do think that you can go really far by reading a lot of documentation and experiences of other teams and stuff. You know, I think about things like AWS infrastructure, for example, like you can develop deep skill reading so much literature online that both AWS has published as well as a bunch of other teams to get a sense for how things work and what's good architecture and
Starting point is 00:16:50 good solutions for your company's problems. So even if you're not writing, you know, say JavaScript code using Whizbang Framework X. That's a really good point. I do spend a lot of time i spend a lot of time writing prose and a ton of time reading technical content both code and and other stuff my time writing code has basically gone to zero but yeah still swimming a lot in the technical stuff right and you're using your foundation to be able to understand all that documentation well sometimes sometimes i'm just confused by it but that's good because here's the thing i will tell you people who don't have a strong software development foundation will jump into that documentation and they will not understand when they will not recognize when
Starting point is 00:17:37 they are confused and they will they will sometimes come to false conclusions by misinterpreting the content of that documentation whereas you i think probably have a strongly developed signal for when something doesn't make sense to you and when it does and so as you're reading along you can say all right, this stuff doesn't make sense. I'm going to categorize that in an area that doesn't make sense. Instead of saying, oh yeah, I totally get that, but your ideas are wrong. Yeah. I will accept your good interpretation of how I'm smart for being confused. I think it's true. Allow it.
Starting point is 00:18:08 I think it's true. Thank you. Well, have we answered the question? I think so. Although I haven't heard you come down with a strong yes or no on this one. I think I will. So they specifically asked better to leave technical decision-making to the team. Yeah. Yeah. And, and I think you kind of mentioned this. I don't think you can just say, Hey, team decide what, like what language to use. Like you, there's a spectrum where one end of the spectrum is the manager decides, and some people do that and whatever. There's also the
Starting point is 00:18:35 other end where, Hey, team decide, but you, you have to, no matter which end of the spectrum you're on, you have to provide some context and, and guidelines for the team. If you just say, Hey, we need a new language, pick it, please. Then they will have a hard time making the best decision for the product or the company it'll be heavily weighted by what people think is cool or it could be i guess heavily weighted by what people think is cool but if you know hey we have six months to build thing x that needs to meet these performance constraints or not meet them maybe performance isn't a concern then then you can provide those constraints and then make sure that the thing that is picked either by you or the team or some combination meets those and you
Starting point is 00:19:17 should absolutely be able to do that as a manager i agree you shouldn't have to crank out features though yeah but technical decision making yeah i think you should contribute heavily to that 100 with you okay well i answered that question i didn't i don't know if i answered the rest of the questions that we kind of drifted along but we'll call it good hey jameson have you heard about the great resignation is it that charles dickens book wait no the entire population on earth has started taking our advice of quit your job oh yes that's right apparently we have achieved influencer status we've been telling developers for years to quit their jobs and now we want to tell you how to do it we're ready to reveal the secret i mean you don't just walk out shooting
Starting point is 00:20:00 finger guns yes well you do that first but after you do that there's a new service we want to tell you about called hired what is hired dave hired is the biggest ai driven marketplace that matches engineers with companies, it is a great way to find your next job. I've been watching this industry for 20 years with a keen interest on hiring in particular, and I've never seen anything like Hired. Tell me about what you're seeing. So I've interviewed about 150 people in the last year, and I am serious. Every candidate that's come to me through Hired has multiple offers, and they're incredibly high, scary high, like 30% higher than other candidates. Is that before or after the finger guns?
Starting point is 00:20:38 yeah uh both the beauty is it's totally free for engineers uh and we would love for you to go try it go to hired.com soft skills to check it out hired.com soft skills quit your job the best way and check out hired do you want to read it dave yep here comes our next question this is from an anonymous listener who says hi i love the show and i recommend it to everyone even if they've just asked me for directions. Yeah, how do I get to the old motel? Well, go to softskills.audio. Queue up the podcast for your drive, then go left on Main Street. All right, the question continues. I'm the front-end lead at a fast-growing startup. I really want to start delegating more, so I
Starting point is 00:21:25 decided I'm going to appoint a front-end tech lead on each of our teams. I already have my tech leads picked out, but my problem is with one of the teams. The person most fitting for the job is a very talented, yet very junior developer. This team also includes a very senior developer, which I believe is not fit for the job at all, but the senior developer is looking for a promotion. I've consulted with my managers, and they think passing over the senior dev is basically forcing them out of the company, or at least making them a very disgruntled employee. Right now, i'm holding back my decision just because of this please help me thanks so a bunch of assumptions here one is that tech lead is a promotion i guess well maybe not maybe it's easier to get promoted
Starting point is 00:22:08 if you're a tech lead though you you can demonstrate more impact or at least we could assume that it's perceived as a promotion by this one team member yeah senior developers looking for a promotion forcing them out of the company or making them disgruntled you didn't include this information, but it would be very useful to think about why the junior developer is a good fit for the tech lead role and why the senior developer is not a good fit for it. If the senior developer is interested in the role and they're not going to get it, they should absolutely know why. Just not giving it to them and then not explaining it will for sure make them disgruntled, where if you don't give it to them and explain it, it only maybe will make them disgruntled. They might
Starting point is 00:22:51 disagree with you but they at least will know what happened instead of seeing a bad thing happen to them and interpreting it in in the most nefarious way possible yes it's a good point it sounds like there's managers and front end leads and you are not a manager so there's some stuff to figure out about how to deliver that feedback and who gives it but either way this very senior person should know why they were passed over or maybe if they get it why what the concerns are and what they need to make sure they're doing like hey we're going to give you this role we're worried about you failing in this way can we keep an eye on that can we make a plan to to address it or something like that yeah and maybe some of the concerns are just not addressable in the short
Starting point is 00:23:33 term to de-risk promoting this person i mean kind of reading between the lines i'm just assuming that the concerns are all brilliant jerk style like very very senior very technically experienced but maybe not good at communicating or working with people or something like that yeah could be that feels like the shape of this maybe not though or or it could i mean another explanation could be that the person's been around a long time but is really not that great at the job at basic technical stuff too hmm yeah that's true just say very senior but not like awesome and those aren't the same thing necessarily. Yeah. So I really like what you said, Jameson, where if this person wants this job and the company is not willing to give it to them, you really owe it to them to sit
Starting point is 00:24:22 down and explain why. And what I would say is, look, here are the, let's just say five requirements for doing this job well. We have concerns with you on these, let's say three requirements of the five. Here are examples of things we've seen you do that give us these concerns. And we would like to work with you on closing these gaps so that you can one day earn this position if you want it. And then I would kind of set up a growth trajectory with them or a plan to say, hey, how are we going to close these gaps and get you to a position where you can have this job? And probably that's going to take a while, but at least then you can say, this is what we're looking for from you if you want this job. And then you don't even have to mention we're moving on with someone else
Starting point is 00:25:05 for the job right now but i do think you owe it to them to do that even if you weren't appointing someone else right now i'm holding back my decision because of this so that's bad holding back on the decision and just waiting unless you're waiting for an event to happen it's just making it take longer yeah so so you should try and come to a decision and make it happen pretty soon i'm going to ask another question that i don't have the answer to which is why is the very talented very junior developer the person most fitting for the job what qualities and attributes do they have that make them a good fit? And if you decide to make them the tech lead, then that can be part of the messaging. Say, hey, we appointed them a tech lead because of
Starting point is 00:25:45 their beautifully dyed rainbow hair or whatever it is. I don't know. Telling people why stuff happens helps them understand it better and tell better stories about it. So it might help avoid some disgruntlement. The other thing you have going for you is you work at a fast growing startup. So presumably this will not be the end of new tech leads being needed right yeah exactly sometimes that makes competition for for promotions or advancement pretty fierce if they seem limited yeah this is this is my one opportunity and i didn't get it so i'm out of here right but if you're hiring all the time if you're growing all the time then you're going to need to support that growth so that can be part of the message to the senior dev yeah that's a good good thing if you
Starting point is 00:26:31 think it's the best decision though i mean it sounds like you you think it is the best decision so you should do it you're basically forcing them out of the company yeah that's a that one is interesting i guess the question is do you want a tech lead on this team and do you specifically want this junior developer as a tech lead on the team more than you want this person at the company yeah you should probably answer that question because it sounds like they might leave yes that's the answer uh yeah i don't know you got to figure it out based on the cost of them leaving Maybe they maintain some critical system or they are the glue for a lot of other people or something like that. So the cost will be very high.
Starting point is 00:27:08 Or there's some morale issue and them leaving will be a critical blow to that. But it does feel, if I project two possible futures, one future where you make the senior dev the tech lead because they were going to quit if you didn't and they're not going to be very good at it. And the other future is you make the junior dev the tech lead and the senior dev quits. it feels like the problems are more easily resolvable for picking who you think the right tech lead is versus picking someone who you know is wrong but you just don't want them to quit yeah assuming you're correct at least yeah that's tricky calculus which is also that's a good question like how how certain are you that you are right right you could apply like a coefficient to the risk on the on the scenario where they leave and so you could say how much do i want this junior
Starting point is 00:27:55 dev to be the tech lead compared to a 30 chance of this other senior person leaving and you got to assign numbers are you getting two numbers and then you pick the bigger number is that how this works yep whichever one's bigger that's what you pick okay cool yeah i think this this could be pretty useful for answering all the questions that come in from now into the future we'll plug it into our formula and the answer is bigger for this or the number is bigger for this answer we call this spreadsheet driven decision making yeah and it can never go wrong the numbers but i just did what the numbers said i would check your assumptions with a couple other people to make sure that you're not missing anything glaring that yeah it does seem like this junior person is is a much
Starting point is 00:28:39 better fit for the role because there's lots of ways for bias to creep in maybe you had a bad experience with the very senior developer and so you kind of subtly prefer not to put them in this role even though you're not consciously thinking that or something but if i were you i would try to gather more information try to make sure that the cost of them quitting is not exorbitant and and that it doesn't seem wildly wrong for me to to make this decision and and then i would just go ahead with it awesome i almost said pull the trigger but i work with someone who has taught me to avoid using violent metaphors in language sometimes i didn't look up what the alternative for pull the triggers but they have like feed two birds with one scone instead of kill two birds
Starting point is 00:29:26 with one stone that's awesome riding a tired horse i think that's that's another one instead of beating a dead horse or uh oh man yeah wow yep now what they didn't say though is that the trigger is actually connected to a petting machine that pets a beautiful cat and makes it purr activate the tickle machine pull the trigger on the tickle machine why is this why is it normally a big green button but here it's a trigger shaped like the handle of a gun that's so weird i don't know they just decided to cross hair on this thing okay we answered it yes we did clearly yes we fed many birds with fewer scones yes what uh what can people do if they want their own questions answered go to softskills.audio and click the
Starting point is 00:30:20 ask a question button where you can fill out our form and we always have to say thank you so much to everyone who has written in questions we will eventually answer them all we appreciate you we will catch you next week I'll see you next time.

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