Soft Skills Engineering - Episode 133: Herding Linter Cats and Surviving Until Severance Time
Episode Date: November 19, 2018In this episode, Dave and Jamison answer these questions: How can I make my team be more proactive and go out of their comfort zone more? I recently started a new job as the team lead fo...r a team of four developers. Each developer has their own pet things that they keep themselves busy with; one likes to configure linters, another has a long-running project they keeps to themselves, and so on. We have been tasked with a new, high-priority project which involves new technology and would require everyone to pitch in. So far, though, that has only happened when I’ve directly asked someone to do something. I absolutely do not want to end up in a position where I have to tell people what to do. How can I make them realize that this new thing should be their top priority, even if that means going out of their comfort zone? TLDR: My role and product are moving to a different country. I don’t want to relocate. I have to stick around at least another 3-4 months to get my redundancy package. In some ways this is great as I’m pretty unprepared for interviewing right now. On the other hand, this is terrible because I’m pretty unprepared for interviewing right now. How do I keep morale up, for me personally and the wider team during this period?
Transcript
Discussion (0)
It takes more than great Ruby PROC object skills to be a great engineer.
This is Soft Skills Engineering episode 133.
I'm your host, Dave Smith.
I'm your host, Jameson Dance.
Soft Skills Engineering is a weekly advice show for software developers about non-technical
topics.
I feel like the shtick is getting old.
I don't have anything new to say about all the new technical topics.
I don't know.
PROC objects.
Ruby.
The thing.
Yeah.
Should we just dive into our wonderful patrons?
Yeah.
thank you to matthew woodwicks agile ventures charity zach grannon michael green david jackson
nick cantar and sean clayton they are all donating at the level where we thank them every single
episode thank you as well to other people who are donating you help support the bandwidth and
the stickers and to pay for my air conditioning when my cpu fan just spins and heats up my whole
house you just reminded me i got a whole backlog of stickers i need to get on here so if you've
I've asked for stickers and haven't gotten them in the last couple months.
I'm sorry.
Yeah, but thank you.
If you want to join this illustrious group, you can go to softskills.audio and click support us on Patreon.
And if you have more time than money, you could support us by coming to my house and addressing and stamping envelopes full of stickers.
Yeah, I guess we'd have to calculate an hourly wage.
That's worth a few months of Patreon-ing.
All right, should I read our first question?
Please do.
Okay, this comes from a listener named John of Finland.
John says,
How can I make my team more proactive and get out of their comfort zone more?
I recently started a new job as a team lead for a team of four developers.
Each developer has their own pet thing that they keep themselves busy with.
One likes to configure linters, another has a long-running project they keep to themselves, and so on.
We have been tasked with a new high-priority project which involves new technology
and would require everyone to pitch in.
So far, though, that has only happened when I've directly asked someone to do something.
I absolutely do not want to end up in a position where I have to tell people what to do.
How can I make them realize that this new thing should be their top priority,
even if that means going out of their comfort zone?
Jameson, I didn't know you worked for John of Finland.
Why, are you saying he's complaining about my love of linters?
I think so.
i think you got to go with subliminal messages if you don't want to tell them what to do
but you still want them to absorb the information see if you can like um install an editor plugin
that'll like flash every keystroke will just flash a single frame of like a list of okrs or
like the summary slide from the powerpoint deck of i don't know or you're like trello board or
whatever that's so funny um you can tell them what to do without telling them what to do
yeah maybe you could do it through scent somehow and then you could just pipe uh smells through
the office oh it's like a pavlov response where you yeah condition i think so yeah like the smell
of apples is like database migration speed or something
why do i suddenly feel the urge to just go and refactor some ui components
boy i do love cinnamon though
oh man i don't know i don't know if there's a way you can tell people what priorities are
without saying here are the priorities you just really got to back into it you know maybe you
could tell them all the things that aren't priorities and then they'll have like process
of elimination winters no i guess you wouldn't want to do that because that's like telling people
what not to do yeah but i mean yeah yeah you could yeah i think i think that's true you could
just do negative reinforcement everything they do that isn't the priority just just kind of
you kind of look grumpy yeah just shake your hand you pushed another linter config
huh yeah i get really just really passive aggressive about it um i think that's going
to be the title of my management book passive aggressive leading with strength really passive
aggressively or something so you pushed more linter configs uh what do you do when you're
getting paid it feels like the core the core conflict here is like i don't want to boss
people around i want to support some amount of autonomy but also there are these high priorities
whether they're coming from me or so it sounds like this is coming from someone else someone
else has said like this is really important please do it yeah and you're trying to figure out how you
don't boss people around but still get the important thing done right yeah that's that's
what i'm getting here it's like i just want my team to know what to do and do it of their own
volition without me having to spell it out yeah and sometimes you have to spell it out i don't
know oh i forgot one other solution which is um if you lean hard enough into the linter setup
you could pop you could maybe get something that'll just auto generate the project
like tweak linter config until it builds out all the features of the product it's like
oh yeah it'd be a very specialized es lint configuration with yeah then 100,000 lines
run check style and check check style config will generate your whole application no check style
will only pass when the application is finished. So like it runs tests.
That's like a, that's so much worse than test-driven development,
linter-driven development.
Linter-driven test generation, test-driven development.
All right. Why don't you tell us the right stuff?
Well, I think a lot of leaders are afraid of coming across as the iron-fisted dictator,
and they just really want their team to know what they know have the priorities they have
and focus on the on those priorities and get it done without them having to drop the hammer you
know yeah i feel this conflict all the time where i'm torn between being accountable for the team's
output and not wanting to dictate to them exactly like you type this thing you drop that work on
this thing yeah yeah so what do you do like how do you how do you come across as a non-dictator but
still actually get the business objectives met i feel like you have to i think the team is probably
looking for priority from you i mean how are they gonna know what to work on so i think part of it
for me was realizing like it's not just oh big bad jameson telling everybody what to do it's it's
like giving direction and a lot of software developers love to solve problems but i don't
know not all of them love like finding the the right problem to solve that's kind of like a
different more product focused skill set so i don't think it's a bad thing at all to say like
my role as team lead is to clearly communicate priorities i don't think that's it's not even
like what you have to do to get it done i think i think it makes the team work better in general
it's not like a purely negative thing so some of it was just a mindset mindset shift for me
a mind shift yeah a set mind the uh i feel like the other thing was figuring out a way to balance
these things where there can still be room for bottom-up uh developer ideas and and they're the
ones that are closest to the code and the day-to-day technical feeling of of working on stuff so they
know the most about like tech debt issues or i don't know things that things that don't directly
map as easily to business objectives so i feel like you kind of have to negotiate both of those
at the same time and say like we have this big important project to work on help me prioritize
help me be aware of all the other issues so i can work to prioritize them with this big important
project if it really is like a crunch time or something though you probably owe it to them to
say like we just have to pause on that for a little bit for these super important business
reasons but but the i guess the point of what i'm saying is you can make them feel heard and make
them feel empowered to participate still beyond just being like assembly line workers pulling
tickets off the queue and cranking them out to build this product. You can have them give input
into the priorities while also setting clear priorities. Does that make sense? Oh yeah. I
really like what you just said. All those things. Why thank you. Yeah. I had another thing I was
going to say too, and now I have forgotten. Oh yeah. Okay. So I was going to add that even the
most extreme diehard linter aficionado knows that these kinds of projects are really a means to an
end and they are not their own reward as a you know if i'm adding a linter to a project i'm doing
it presumably so that it's easier to extend enhance change bug fix in that project right i don't just
do a linter so that i can have this well maybe i was gonna say maybe i don't just do it for the
satisfaction of sleeping well at night knowing that my coat is tidy but uh you do it i think
i think there's some of that honestly i think the other thing about linters is it it gives you a
giant long list of errors that you can methodically and like predictably go shrink yeah it's like it's
like fake work that feels really productive yeah like there's a there's a nice artifact
that signals completion and i and i've been in this trap not necessarily a trap but you know
two jobs ago, I worked at a company that I showed up and they had like 8,000 linter errors when I
started. And I remember I just took a couple of days and I just hammered through them so that
we could get them to zero. Because once you're at zero, now the team can move a little bit more
confidently. Yeah, going from zero back to 10 back to zero is much different from staring at
8,000 being like, well, 8,010. Yeah, exactly. Probably fine. Exactly. And then you can have
rules, right? That say you can't check in code if you introduce any new linter errors, right?
So anyway, I really did that. And frankly, I think it benefited us quite a bit. But the only benefit that it gives is the ability to develop the product for the business and your customers. It's not about the linting itself. And if it is about the linting itself, that's a trap. So your team, I think, might be stuck in a little bit of a trap here where they have put the cart before the horse and they think that these things are the priority.
And to me, that says that you haven't done what Jamison suggested, which is clearly communicate what the business priorities are and why they're important in such a way that the team can get behind them.
Yeah, I think I think if you couch it as like, here are the priorities, you have your pet projects, help me see how that contributes to the priorities. Like, if, like you said, if it is helping us develop faster or reduce our bug count, or like, build cleaner UIs, or I don't know, there's some, there's got to be some benefit. Yeah, you have to figure out some way to show that instead of just saying, like, but I like linting.
Those are famously hard to quantify though, right? It's like, if we have a functioning
linting system, maybe we can shave 20% off of our development time. It's like,
how will you ever quantify that? And so I think sometimes it just comes down to a matter of trust
on the manager or team leads part to say, I will carve out X percent of your time to be able to
work on these things because I feel like that probably strikes a good balance of mostly of
getting the team velocity up, but also of giving you something to really dig into that you're
passionate about yeah although when i said that last thing i suddenly felt bad like is your team's
work really all about making the team members feel good about their work or is it about accomplishing
a business objective on behalf of your customers i don't know oh i've got a meta answer to that
question which is you know if you ignore your team's satisfaction then eventually they'll leave
and then you can no longer meet your business objectives so yeah i mean that kind of makes
it sound like you're just throwing them a bone though like okay do this do this other thing so
that you'll be happy doing like the important work that you don't like as much and that might be true
sometime but ideally it would all work towards that shared priority yeah i think it's fair to
expect that sometimes people might disagree with the priority and say so linting is a pretty uh
interesting example because it's like very technical very specific and like you said dave
it's kind of abstract how to quantify that into some business metric or goal but say there's
they also john also mentioned someone else's pet project and maybe that's like a user-facing
project it's just like unclear what the value is and how that fits in yeah um i literally can't
remember what i was gonna say next that's happened to both of us i think i i think i was gonna say
that it's easier yeah yeah okay so they they might have different opinions about products
priority or something and say like no the thing i made that's super important um and how do you
resolve that when it's not just like but i like linting it's like this project that i am working
on i believe is important so i would like to keep working on it but see that's a debate that needs
to be had there should not be these hidden priorities that get decided because some
engineer in isolation thought it would be a good idea you know this is a business transaction
transaction is not the right word this is a this is an investment and your work is an investment
in future business goals and so that should be out in the open and should be reconciled against
all the other goals i think yeah if so how do they get from the position they're in where they
don't want to tell anyone what to do to a position where work is more aligned around priorities and
values because it sounds like it might be kind of wild westy right now yeah maybe this wasn't a
this this wasn't part of how they worked before or something yeah it sounds like maybe it's too
bottom up and not enough top down yeah or i mean i don't even know if top down versus bottom up is
the right distinction but there's clearly disagreement about what people should be
working on and how much i don't know alignment is that a vague businessy word that describes
what is missing here if it comes from below and people are all agreed that still seems fine but
either way it seems like that's missing where everyone's kind of pulling in different directions
yeah fair point so what do they do do they just come in and crack down and say like you know that
linting thing you like stop it stop it's bad do this other thing instead i think what needs to
happen here is the team you need a mechanism that makes it visible to the team how they are
contributing to the business goal like there's a clear business goal here it's says you know john
says it's high priority um how does the team know whether or not they're contributing to that
Because some of these projects might contribute indirectly, but without the visibility to see how their code contributions or linter configs or side projects actually contributed to that goal, they won't know if they're actually working on the right things.
And then I think as a team leader, you have to constantly reinforce and communicate what the progress is toward that goal.
And it sounds like those mechanisms are just completely lacking in this team.
Yeah. Have you heard about OKRs, objectives and key results?
I've heard of them, but I've never worked at a company that has them.
We've been talking about them a little bit on my team recently. And it seems like it's kind of a mechanism to solve this problem where each level kind of aligns around what objectives are important and then bubbles them up and down between those two levels. And one of the points is they should be measurable in some way. So it wouldn't just be like launch this new project. It's like, I don't know, save customers X amount of money or something like that.
Yeah. But there's some goal that you're measuring some kind of numbers or metrics against. And then
it's pretty easy to see, like, did the number go up or down because of the work that you did?
I still feel a little bit confused about how directly every thing that someone does can be
mapped to a number. But I think the broad point of like, you should be able to tell if you're
progressing or not is kind of served by that framework. Yeah, I totally agree. And my company
does that as well. But we don't call them OKRs. We just call them goals. But sure, you know,
there's a lot of constraints on what makes a goal a goal. And what I've found is that rather than
mapping each individual task to the goal, you report a team's progress on meeting the goal,
say on a weekly basis. And then you'll detect if the entire team goes off track, you know,
or if, you know, a sizable segment of the team starts working on things that don't contribute
to the goal because the goal will stop moving, you know, or the status will stop moving. And so
I think at the team level, that's about the right unit for tracking these things.
Yeah.
You sound reluctant.
Well, I don't know. I think I have a lot to learn about OKRs because I still feel like
they operate in this world where every action has a number attached to it. And I don't think
that describes the world very much. Yeah. Yeah. I've never seen those dots connected at that
fine of a grain, at that fine grain of a level. So they kind of came from, well, they came from
a few different places, but they came to prominence out of Google. And supposedly they do a pretty
good job of that at Google of like, you have to measure first before you can even start on the
work i see like get a baseline before you start yeah i think saying like well at google we did
this is kind of a cop-out though because it's it's a unique company in a unique situation and
yeah i don't know i've talked myself back down to apathy and uncertainty what do they actually do
i think one thing you can do is say like we need to come to some agreement on what our team's
priorities are yeah and this project is super high priority and we should be working towards it and
work that is not towards that needs to be um like weighted accordingly absolutely if you're not
working on this you should have a compelling justification for why yeah for sure and i think
as a team lead it's your job to help your team understand why this priority is what it is so if
you you know sometimes you don't understand why it was just handed down to you but it behooves you to
find out why and then share that that's a great point with your team in such a way that they can
actually rally behind it and yeah yeah it's it's a much different story to say like we're doing this
thing to deliver this amount of value for these reasons versus like some vp said do this or you're
in trouble yeah or or no answer at all because that's kind of what people infer of like okay
yeah i guess it's just rolling downhill to you yeah do this and if you don't well you can figure
out what'll happen yeah well did we answer the question probably not all right i'm gonna go back
to tweaking my linter setup all right good luck all right okay i'm gonna read our next question
I hope you will.
It is from an anonymous listener, and they gave us a TLDR.
Thank you.
I appreciate that.
My role and product are moving to a different country.
I don't want to relocate.
Here's all the rest of the details.
I have to stick around for at least another three to four months to get my redundancy package.
In some ways, this is great, as I'm pretty unprepared for interviewing right now.
On the other hand, this is terrible, because I'm pretty unprepared for interviewing right now.
How do I keep morale up for me personally and the wider team during this period?
oh you have three months to fret until the fat check comes your way it says at least another
three to four months so that sounds even worse sounds like you don't have a date yeah that seems
weird huh to get my redundancy package but does this mean that you have to just keep working at
the same company for the next three to four months plus and then they'll give you a check
that's how i interpret it and then they'll fire you that sometime yeah three to four months from
now their job is being eliminated and they'll get some severance well that's interesting because
typically it's like you get severance because you're being fired without any notice now and
so we're paying you to help bridge you to your next job whereas here it's like you get the best
of both worlds you have three to four months to brush up on your interview skills find another
job and we're going to give you a big check on your way out i i feel like i've seen this at some
places where they'll they'll offer like layoff packages or whatever sure but usually it's like
leave tomorrow i don't know i've seen i've seen the opposite of this i've seen retention packages
where they say if you stay at least x amount of time we'll pay you a bonus like after an
acquisition or something but i don't think i've seen where you have to stay a certain amount of
time and we are going to lay you off and we are going to give you a big check on your way out the
door that's kind of nice it does it does make me wonder like what the business's motivation is for
telling you sometime in the next three to infinity months your job will be gone like what are they
hoping maybe they're inferring it from news announcements or something but it just seems
like what would you expect besides everyone would just stop working yeah like yeah and you gotta
kick it into the finish line before you don't work here anymore i don't know yeah that's yeah
if i were this company i would probably not advertise that that was the plan yeah don't i
mean i feel like that's how it usually goes it's usually a surprise because they want to like
squeeze more work because they don't want this exact situation of people's morale going into
the toilet yeah well nevertheless this is the situation you're in and we have answers boy do
we ever how do i keep your morale up uh it sounds like you don't have to like what are they gonna
do lay you already redundant i don't know this just feels really weird to me i feel like some
part of me would kind of just like keep working because that's the deal but i feel like i would
also not feel the same pressures yeah around performance and output and like you okay here's
what you could do you could use this as an opportunity to try and shake things up right
if there are unspoken truths that you can't utter because you might offend someone higher up right
now's the time to say like hey your stupid idea is stupid to to the like vp of engineering or
whatever but you don't want to the thing is you can't quite do that because you don't want to
jeopardize getting fired before your time is up and maybe miss out on your redundancy check yeah
i don't know this is really weird i feel like if you get fired there's often some kind of check
so you're saying maybe you could get the check today instead of waiting three months by doing
something really stupid i'm not saying try and get fired i'm just saying like the long-term
consequences are are gone basically because you're going to be gone anyways so what would you do if
you had no if there was nothing stopping you if you weren't worried about like um appeasing someone
or not shaking things up or like playing.
I'm not saying do illegal or unethical things.
I'm saying there are just cultural norms
or like ways things work
because no one has the energy to like push stuff through
or I don't know.
Things you were afraid to do before.
Yeah, yeah.
Things you were afraid to do before,
you can try those now.
All right.
Like the really audacious wild things
that you don't think will work,
but could be really cool.
I mean, and they can't be too audacious
because you only have three months.
so I can't be like start this giant new project
but just like I don't know
I don't know what specifics to give here
I honestly can't think of anything
that isn't like be selfish about this time
like time to polish up your tech skills
and use things you're interested in playing with
and like yeah I don't know
this is a really weird situation
yeah I mean along those lines
my idea was go buy a copy of
Cracking the Coding Interview 6th edition
150 programming problems
that you might see in an interview
Lock yourself in a conference room with a whiteboard and a marker and get to work.
Put them all in your product.
I've always wanted to do topological sorting here.
Detecting cycles in a linked list is now a core feature.
Yeah, like this just seems so bizarre.
Like, so I feel like some people will just be intrinsically motivated to do good work
to try and deliver stuff.
And some people will be really demotivated by this.
And I don't think I can make a value judgment and say, like, this company has told you your
job is going to be gone.
You owe it to them to really just like up your productivity in this time.
Like, if you want to, then sure, just keep working.
If you're feeling really bummed out, then it's kind of some time to explore and play.
Sounds fun.
Either way.
Yeah.
I do think that for me personally, it would help if I could latch on to some tasks that
could realistically be delivered in that time period and give me something to distract myself
from the fact that i will be leaving and focus instead on delivering something by a deadline
and i think i would take my mind off of the the drudgery of just passing the days until that
fateful moment when your redundancy paycheck comes i'm trying to think about tasks that people who
are leaving or me as i've been leaving have left half done and i feel like they just never it's
pretty common that they just get dropped like half of the work done and then someone leaving
is often the same as none of the work done so i think that's good advice if you want to actually
accomplish stuff that you gotta shrink it down yeah scope it down maybe focus on documentation
that you've been putting off for the last five years you know i mean that is one thing you could
focus on is a successful transition now your your job and your product are moving to a different
country which means they're not going to have access to you quite possibly might be in a distant
time zone might speak another language and so maybe now would be a good time to create some
great documentation that you wish you had had when you started on the team yeah yeah that's a fair
point making the handover easier that's kind of like an empathy thing for the other people that's
and and that might be a more realistic motivation than like make sure you squeeze the last drops of
blood out of yourself for this company yeah before they cast you aside i can tell you what not to do
though i've got a i have a couple of ideas of things you definitely don't want to do that will
make you miserable the first one is don't count the number of days every day until your severance
day comes well they can't because they don't know how many days there are so that's fine
the other one is don't constantly recalculate the taxes that will come out of your severance
package trying to estimate what the net amount will be what okay why would you have to recalculate
because you forgot just to like see if it see if it changed you're like well i didn't write it down
now i have to recalculate it okay uh any other any other things to avoid i would try to figure
out like i would try to figure out what the date's gonna be and then i would try to figure out
what kinds of things could jeopardize you from getting that final package and avoid all those
things yeah i don't know what they would be i think it's a great time to start looking for a
new job oh yeah i mean they've told you you don't you aren't gonna work there anymore so you have
time on your side, which means you can afford to be choosy and you can interview with lots of
companies knowing that you have plenty of time before you need to accept an offer. Yeah, you can
cast a pretty wide net. That's a good point. Now, I think if you interview today and you happen to
get a fantastic offer from a company you like, they might not be willing to let you string them
along for four months before you start. So, you know, you might want to interview at companies
that you are less likely to be to want to work at at first. And then after a month or two, you've
got all your practice under your belt then go for the companies you really want to work for
i mean you could just leave too if you get another offer you could but then you might
miss out i've seen redundancy package whatever that is yeah yeah so this this could be an
opportunity to try and negotiate some financial incentives to do that too oh yeah you could you
could ask for a signing bonus that's like a reasonably normal thing in some parts of the
industry and often it's also used to justify giving up things that you're previous yes so
if you're giving up a severance package sometimes it's stock too but like if it's a severance
package you're giving up you could just say like i need this to leave right away or i could come
in three to infinity months so if you want me here sooner then you can do this to make it yeah
that's a great idea i mean all i think what you would say there is i'm going to be giving up x
amount of money by coming now so can you help me cover some of that yeah this is just so alien to
me because i always quit when i feel bummed out so the idea that someone would say like in three
months you're gonna not have a job anymore stick around you'd be bummed out immediately yourself
useful until that i feel like i'd be like well i'm gonna see how long i can not go into work
push the limits of the vacation policy yeah i don't know i don't think i would do that but i
think more likely is i would just leave it would depend on the financial circumstances i guess too
and those are very different for everybody so well good luck yeah good luck i hope things work
out well i hope you get your severance and you end up at a great place and life is just all
incredible for you for the rest of it for the next three to infinity months of your life yep
all right what should people do if they want their own questions go to softskills.audio and click
ask a question you just fill out a simple form there thanks so much to everyone who has asked
questions we just can't possibly get to all of them but so many of you have and you keep the
show going we really appreciate you how can people support the show jameson there are a couple ways
you can tell people about it tweet about it i don't know important podcasts say go review us
on itunes so we'll copy them you could do that you can go to our website softskills.audio and
click support us on patreon if you would like to contribute financially you can also leave comments
about the episodes on that website and we check them and read them and often they're much smarter
than the things we say that's true if you want the goods wait isn't it that happens on the radio
right like you hear someone saying something you're like what are they talking about they
don't know anything this is like the internet version of that where people are like they said
what and then give us kind but smart things from their experience there's been a lot of good ones
where i'm like oh yeah of course should have said that yeah nobody's mean i should be clear no one's
yelling at us. But it's nice to hear
other people's experience about similar topics or
issues. And I think with that
we'll just catch you next week. See ya!
