Soft Skills Engineering - Episode 133: Herding Linter Cats and Surviving Until Severance Time

Episode Date: November 19, 2018

In 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)
Starting point is 00:00:00 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.
Starting point is 00:00:18 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
Starting point is 00:00:30 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.
Starting point is 00:01:06 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?
Starting point is 00:01:33 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,
Starting point is 00:02:06 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
Starting point is 00:02:44 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
Starting point is 00:03:37 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
Starting point is 00:04:19 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
Starting point is 00:05:03 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.
Starting point is 00:05:42 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
Starting point is 00:06:28 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
Starting point is 00:07:11 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
Starting point is 00:07:56 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
Starting point is 00:08:44 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
Starting point is 00:09:30 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.
Starting point is 00:10:30 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
Starting point is 00:11:29 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
Starting point is 00:12:13 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
Starting point is 00:12:59 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
Starting point is 00:13:39 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
Starting point is 00:14:19 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.
Starting point is 00:15:02 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
Starting point is 00:16:03 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
Starting point is 00:16:33 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
Starting point is 00:17:16 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
Starting point is 00:17:54 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.
Starting point is 00:18:28 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?
Starting point is 00:18:50 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
Starting point is 00:19:29 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
Starting point is 00:20:01 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
Starting point is 00:20:47 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
Starting point is 00:21:34 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.
Starting point is 00:22:10 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.
Starting point is 00:22:23 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
Starting point is 00:22:37 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
Starting point is 00:22:54 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.
Starting point is 00:23:19 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.
Starting point is 00:23:44 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
Starting point is 00:24:10 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
Starting point is 00:24:49 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
Starting point is 00:25:28 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
Starting point is 00:26:09 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
Starting point is 00:26:43 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
Starting point is 00:27:25 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
Starting point is 00:28:07 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
Starting point is 00:28:42 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
Starting point is 00:29:18 issues. And I think with that we'll just catch you next week. See ya!

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