Soft Skills Engineering - Episode 285: Staying technical as a manager and skill over seniority
Episode Date: January 3, 2022In 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)
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
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
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.
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.
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
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
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
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
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
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
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
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
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
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
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
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
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.
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
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
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
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
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
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
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
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
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.
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
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
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
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?
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
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
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
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
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
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
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
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
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.
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
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
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
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
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.
