Soft Skills Engineering - Episode 340: Productivity lulls and code review showdown

Episode Date: January 23, 2023

In this episode, Dave and Jamison answer these questions: A listener Daniel asks, How do I handle periods of time where I am just not productive as I used to be? I’m talking about peri...ods of several weeks. For example, when your kids are ill all the time (daycare fun) or you are down because of XYZ. How do you turn not really constructive feedback into useful feedback? I have a difficult time dealing with PR reviews from a specific colleague. They have a way to push my buttons somehow, it’s like even when they are actually right, the way they approach the subject or how nit picky their comments are just make it hard to take the feedback or start a healthy discussion. It prompts me to become confrontational. I know it’s not good to react like this, but I don’t feel comfortable talking directly to them about it to try to smooth things out. I don’t think its personal as I’ve seen this kind of comments on other people’s PRs too. I am aware this might be me being overly sensitive, but its like every time he is the one reviewing my PR I get the feeling of “oh, not this guy again” and need to mentally prepare for his comments. I’d like to find a way to take the core of the feedback that might be useful and kind of ignore the rest that might feel dismissive or opinionated, and I thought you might have some tools for this. The main reason I care about it is that this reflected badly on my latest performance review, as I had stellar feedback in general and the only improvement areas were that I should learn how to deal with mistakes or negative feedback better. I am aware it can be a weak point on me , but I know that a big part of that comment from my manager comes from my interactions with this specific colleague.

Transcript
Discussion (0)
Starting point is 00:00:00 it takes more than using a linter in your cicd pipeline only to realize that it was only pretending to lint to be a great engineer this is soft skills engineering episode 340 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 like how to convince your linter to just be better turns out all of your build tools that check code quality are actually symbolic links to yes do nothing successfully yep it's my favorite news everything's fine no yes actually outputs a why and what you want it yeah and it never ends what you what you want is the true command yes true do nothing successfully false do nothing unsuccessfully oh man if you don't know what
Starting point is 00:00:56 i'm talking about or what jameson's talking about uh go on your linux command line and type man yes and man true they're pretty good isn't there uh hmm hang on one second this is really important by really important i mean not important i swear at one point i heard that the square brace was actually a a program yes a sim link to the test program it is now built into most shells but there was a time like for example if you used busybox to compile an unembedded system there was a time when the left square brace was a file that was a symlink to the another file that was a command called test truly shell programming is the best programming and the closed square brace was also something i'm trying to remember oh yeah the closed square base was a argument to
Starting point is 00:01:48 the open square brace program that it would ignore just to make it look good on the shell like it was symmetrical which is pretty funny computers rock that's not what this show is about no we got pretty deep there but we're gonna come back we're gonna come back and i'm gonna come back by thanking our wonderful patrons yes thank you so much to andres realis connie lee valentin at datafold santa hopar noah frazier loge kent c dodds jenny kim own shardle craig motlin i love mavis the stochastic parrot alice jost land fair pullig i gave up go go go kashokton ohio patreon.com.au we're hiring ira chan monkey face emoji jonathan king testing is documenting.org oladapo fadye will angel agner that's a good one it's it's a good one i appreciate it every time
Starting point is 00:02:39 nick hathaway travis sanders braden canes john grant bartek tatkowski cody sale nick camtar and philip john basile thank you thank you so much thank you we appreciate it and we show our appreciation in lots of ways one of the ways is by inviting you to our slack team if you go to softskills.audio and click support us on patreon you'll get an invite to this team where you can type any ascii characters that you wish the other way that we thank people well you can do way more than ascii by the way just don't want you to feel limited i don't want to overwhelm them yeah okay okay anyway the other way that we thank people is i actually have a morning ritual where every time i put my left sock on i think of the name of one of our patron patreon contributors i've
Starting point is 00:03:23 been doing that for years when you take the sock off do you expel the name yeah i can't remember any of the names you know what i do if you look at the video you will notice this delightful giant stuffed cat and i i name that rotating after our our patron contributors nice my kids are very confused by what to call it what's the name this day father do you want to read our first question i do this comes from a listener named daniel who says how do i handle periods of time where i am just not productive as i used to be i'm talking about periods of several weeks For example, when your kids are ill all the time, parenthetical note, daycare fun, or you are down because of XYZ.
Starting point is 00:04:11 And that XYZ gets me down too. Those domain names are so expensive. You down because the top level domain of, hang on, this is important that I Google. Are you checking to see if XYZ is a valid? No, I know it is. i swear it got a bad rap for being very expensive i've never looked it up all right i gave up i got part way through looking it up and then gave up persist yeah you're just not as productive as you used to be jameson yeah usually i quit
Starting point is 00:04:48 what do you quit exactly are you talking about your job your whole job yeah usually yeah usually this is typically the end of each of my jobs is like i enter the doldrums i'm not productive yeah and i just can't get out and i feel bummed out and i'm probably burnt out and i'm probably feeling depressed in some way and trying to deal with problems in my life by quitting my job and then the excitement of having to scramble to survive and get a new job distracts me from those problems for a while it's just like you're you're you're a thrill seeker you're an adrenaline junkie it's just a very weird way of going about it no yeah maybe i'm not anymore well i haven't done this in a while okay i mean some people go and they go skydiving jameson quits his job
Starting point is 00:05:37 without any future prospects puts himself in a life or death situation his very survival is on the line that's like when you bring the ingredients to make a parachute on the sky on the airplane yes here's your sewing machine canvas and thread and rope we're taking off in five minutes i've never felt so alive until the end then you have felt more alive then there is yes there was a point in time where you felt more alive i have felt more alive in the past when i was alive yeah i don't know if we're talking about the same thing though because some of this is talking about life circumstances which can be kids being ill it turns out there are all kinds of life
Starting point is 00:06:31 circumstances though can be any number of things i feel like those are kind of separate separate situations that i would try to handle differently for example like one one life circumstance could be that a new season of your favorite tv show just dropped so i'm not as productive as I used to be for weeks. Yeah. It's going to take me a while to get through this ticket. Well, what do you think, Dave? I don't know. I feel the ups and downs myself as well. It does happen. I am one of the least self-aware people that I know. And by that, I mean that my own mood is usually not apparent to me. I have, I have come to learn that when some people are grumpy or frustrated or happy, they can quantify that and they can articulate that
Starting point is 00:07:25 clearly. And it's in, I guess it, it, I don't know. Is that like you, Jameson? Are you able to identify yourself that way? Like when you wake up in the morning, you're like, I'm in a bad mood. Yeah. For me, I find out that I'm in a bad mood when people say, are you okay? and then i go oh i guess i am in a bad mood it's just not it's not something that is like a metric that's in the forefront of my mind you know my mood level so for me i notice the productivity drops but they don't bother me as much because i i generally don't know how i feel so i guess i guess one technique is bliss yes i guess one technique to handle the periods of time when you're not as productive as usual is to become unaware of these things.
Starting point is 00:08:15 Yeah. I don't know how to do that. That's a pretty self-aware description of how you are not very self-aware. Well, it took me 40 years to come to that understanding. So that's how I know. You would have known at birth if you really had this figured out. so i i have some suggestions that are divided into two categories and the first category is stuff's going on in your life maybe you are sick maybe a loved one is sick maybe your basement flooded like mine did twice last week we've had a lot of rain here yeah there's there's something going on that is not that that demands your time and attention outside of work And for those situations, I have found it most effective to talk to my coworkers and
Starting point is 00:09:03 my manager about it. There have been times where I am maybe unwilling or maybe it's something a little more private, so I don't want to go into details about exactly what it is. Like, I can't believe you just admitted that your basement flooded on this public podcast. I didn't say what it flooded with, so. flooded with meth juice yeah so so um people are generally reasonable and good news about life is that it's hard for everybody yeah it turns out so yeah most likely your co-workers have gone through something that
Starting point is 00:09:46 has affected their ability to dedicate their time and focus to work. So there's probably some more understanding for it if you address it public or openly, I would say. At least acknowledge it, right? Just hide it. Yeah, exactly. Yeah, yeah. I have this thing going on and I'm going to be less available between these hours for this many days. And I would first talk to my boss about it and say, is this okay? Do you have any concerns here? Any suggestions for what I can do to lessen the impact there? And if they're okay
Starting point is 00:10:15 with the uh the kind of time bounds that you put around it then tell your tell your team and people that expect to work with you if there's somebody you i don't know collaborate with often you don't want to just not be around and have them wonder like what is happening to this person that's right and these days there are some things that they will wonder that they did not wonder a few years ago namely did you get a second job yeah very timely we we just talked about that yeah yeah and i i am i'm telling you i've been in multiple conversations where that very question comes up i think one of my team members is working a second job you know i just can't explain their unproductivity any other way it didn't occur to us that maybe their basement flooded i yeah their
Starting point is 00:10:59 second job was bailing out their basement yeah it's a lot of work to drink up all the meth juice but so there's some kind of built-in like courtesy and understanding there is kind of a limit to that which gets a little uncomfortable right like if you're if you're around less for a couple weeks that's pretty pretty easy to work around in the most case in most cases if this is like a chronic thing if it's going to be months or years then there might be legal remedies some countries have like carve outs for disability or leave of some kind or your company might have some kind of policy usually those involve some amount of of pay reduction or like there's some trade-off it's usually not like just go on vacation forever and we will pay you for yeah exactly i'd like that
Starting point is 00:11:55 option please yes yeah but there is a uh yeah there's this fuzzy period of like a couple weeks you'll be fine and then longer than that it gets tricky and you have to start you probably need to have some uncomfortable conversations about like what the company needs out of you and if you can meet those needs long term yeah and like you said jameson there's a lot of reasons why someone could be less productive. But the one that I'm zeroing in on in this question is that you are just down because of XYZ. And I'm reading into XYZ to mean just stuff, life. I'm just not feeling it right now. The motivation is low. I sit down to code, but it's just not cranking out of me. I'm easily distractible. That's the one for me. It's distractions that suck me away from my job
Starting point is 00:12:47 more easily than if I'm super engaged and excited. And in those situations, I think it's the most important that you are willing to talk about it, at least to someone. Because in my view, what's happening in that situation, watch out, I am a space psychologist. So I'm about to drop some space psychology on you here, which is that the reason you are unproductive in those circumstances is actually subconscious. There's something going on subconsciously that is making your productivity levels lower. And the only way to counteract that or to do it earlier than it would otherwise naturally happen is to move that into the conscious realm. And the way that I do that is by talking about it to someone like a trusted confidant, a mentor,
Starting point is 00:13:31 a friend or spouse or something like that, who can talk you through it. And then what ends up happening is that turns into action plans where you can actually do something about it. And they might say, yeah, you know what? You should take a day off or you should go ride your bike. You should go exercise you know whatever like here's some ideas and suddenly you're now actively working on the problem instead of just kind of sitting there as a just kind of waiting for the problem to be done you know it's like waiting for the rain to stop yeah so that's been that works for me and i think they'll like the last thing i'll say on this topic is that it's it's good to be aware that this is a common occurrence in the human condition that not every week will be peak
Starting point is 00:14:11 performance week. And also not every week will be bottom performance week. So just because you had a bad week doesn't mean that all the rest of the weeks are going to be bad. And the fact that you had a bad week will help you recognize that what the good weeks are, like what they actually look like, what your productivity potential is in any given week. So hold on to it. It's okay. It's not the end of the world. You'll be fine. Happens to everybody. Just bounce back and don't let it turn into a multi-week drag out i like that that might even apply on earth maybe i mean yeah let's get orbital and then we'll talk okay i've found sometimes that a change in work circumstances can help kick me out of the the blahs by which you mean a new job maybe i well yeah that's the
Starting point is 00:14:56 extreme form but i mean like yeah like new new projects i don't know maybe switch it switching teams is a pretty big deal, but less of a big deal than a brand new job. Learning a new technology. Yeah, a different tech stack or I don't know. There's a range of things you can do at your current job to kind of change the kind of work that you're doing. And often that helps if it's sort of a passing thing that doesn't have like a deep underlying cause. You want to know the biggest one for me ever? What? Two and a half months ago, I started a new job. And that wasn't the big thing. The big thing was
Starting point is 00:15:36 now I go into an office and I work with other people three days a week. And it's been a huge boost to my productivity. I didn't realize over the last four years, I've been working remote, full remote since pre-pandemic. And I didn't realize that for those four years, I was just slowly deteriorating. It awakened me and now I work 60% in person and it's awesome. like i'm never distracted when i'm in the office it's like i don't know there's something about having people around that creates this like really nice accountability system that works great for me and i'm happier with it you know so that that works for me it doesn't work for everybody in fact some of my team members are just like i will never come into this office
Starting point is 00:16:17 i'm like okay that's fine but i like it did did you choose deliberately or were you asked to come into the office you chose well it was part of the it was a known it was it was known by me before i took the job that it was required to be in the office three days a week for this role and i was i was actually looking for that because i had come to the realization remember how self-aware i am like on a scale of one to ten i'm like a one it took me four years to realize that remote work was getting me down huh you think i would have figured it out because in the first year i would travel every quarter and spend the week with my team and those were the best most energetic most productive weeks and then i'd go home and just be like i'm unproductive
Starting point is 00:16:59 I don't know why, though. Actually, I didn't even know I was unproductive. It took me four years to figure that part out. I've been working from home for longer than that. Now I wonder, did I just forget what it was like? And then especially the pandemic has taken away the in-person get-togethers. So I haven't even had those meetups for the past few years. Oh, man, that's true.
Starting point is 00:17:21 Not everybody needs that, I'll say. In fact, a lot of engineers, I think, are just happier without it, without the in-person work. Yeah. And I'm fine with that for my team, but not for me. Yeah, makes sense. Well, should we go on to the next question? Yeah, let's do it. I think I would very much like it if you would read this one.
Starting point is 00:17:39 Then I will. I want to do things that make you happy, Dave. I know. This is from an anonymous listener who says, how do you turn not really constructive feedback into useful feedback? I have a difficult time dealing with PR reviews from a specific colleague. They have a way to push my button somehow. It's like even when they are actually right the way they approach the subject or how nitpicky their comments are
Starting point is 00:18:00 They get hard to take the feedback or start a healthy discussion I become confrontational. I know it's not good to react like this But I don't feel comfortable talking directly to them about it to try to smooth things out I don't think it's personal as i've seen these kind of comments on other people's prs, too I am aware that this might be overly sensitive, but it's like every time they're reviewing my pr I get this feeling of oh No, not this person again i need to mentally prepare myself for their comments i'd like to find a way to take the
Starting point is 00:18:30 core of the feedback that might be useful and ignore the rest that might feel dismissive or opinionated and i thought you might have some tools for this the main reason i care about it is that this reflected badly on my latest performance review as i had stellar feedback in general and the only area of improvement pointed out was that i should learn how to deal with mistakes or negative feedback better i'm aware it can be a weak point of mine but i i know that a big part of that comment from my manager comes from my interactions with this specific colleague aha i see negative you're getting feedback on your code reviews it's coming across really strongly negative and not just you know not just what's the word i'm looking for it's
Starting point is 00:19:08 negative in the sense that they want you to code differently but it's not just negative it's like it's personal it's like you are a bad person and i hate you and you should feel bad and apparently you're so the question asker's reaction is strong enough that their manager noticed and called it out in the performance review which means you know it's it's probably happened enough and it's been high enough magnitude that they called it out yeah have an idea that feels like kind of a workaround but might help which is some agreement on expectations for how you communicate feedback in poll reviews on a poll request in code reviews those words i'll have to find the article i dug it up a while ago i think i mentioned it on the show before but
Starting point is 00:20:01 there's a company that has this this system of ranking like importance of feedback by by default when you at least in github when you type your feedback everything is a comment right it all looks the same right and and it's not all the same so all the same sometimes it's like a cool neat thing i noticed or sometimes it's a you have this glaring hole in your design that will cause a huge problem so the system is is to give like tags to these different categories and i think the how many categories was oh there were like five i don't know the number matters that much there were there were 19 simple categories it's very straightforward yeah but this one was based on uh like rock sizes so it was like pebble and then i was like grain of sand
Starting point is 00:20:49 did it start with a grain of sand please say yeah probably yeah dust particle yeah they did not one silica atom but the way that might help is there could be some of this feedback that the feedback giver feels strongly is really important that you take and there could be some that is like their opinion that you know it comes across pretty strong but really they they won't put up a huge stink if you don't follow it or or really they don't think it'll have a huge impact if you don't follow it right and even if they don't think this having this system can encourage them to categorize it this way because if every single one of their comments is like mountain right per n needs another space here like no it isn't mountain i only do mountain we have everything from single particle
Starting point is 00:21:47 of dust up to mountain and i only use the mountain yeah mountain flip the variable names of the inner an outer loop from i to j vice yeah you know what i mean so this is kind of a not kind of this is definitely an indirect solution because you're you're completely avoiding like talking to this person about it and becoming more stoic and stalwart in the face of this feedback that is upsetting to you but it might be good for your team there could be benefits there especially if if this same interaction is happening with this person and and other people it's also possible that you can just talk about this and then like it doesn't happen or it doesn't work or right everybody does it but this person they don't even notice they're like yeah it didn't even help
Starting point is 00:22:40 that's that's the thing you could try i'm just thinking of failure modes for this approach and like one way that this goes bad is you're you're sitting down with your team and you're presenting this system for how to how to convey the strength of each comment on a code review and um the person in question the other person that's causing all this grief to you they actually propose an alternative system of communication for how people respond to code review comments it's like oh crap right back at me yeah no or in the presentation they raise their hand and say mountain i think this idea is garbage and we shouldn't do it totally i've i've been on the receiving end of negative you know strong overly strong language
Starting point is 00:23:28 in code reviews which i think is how i would summarize this overly strong language that you feel is it like overly certain like it feels like yeah that's how it was for me they're saying like this this is bad and you're like no that's a stylistic choice that i right disagree with you know like i've known a couple of people who have given me feedback like this that i thought you're you're using words and tone that convey that this is extremely important and extremely bad and must be fixed but when i look at the actual recommendation it's either not right or not that important you know like i remember i i got feedback once that in java you know you're uh geez it was like you know change your order of operations on your and condition here because
Starting point is 00:24:17 this one is more likely to happen more frequently so it'll make your and condition go faster and it'll run faster and those are the ones that really bother me because it's like oh really you think it'll run faster did you go ahead and and take the pr and run it locally and benchmark that code or did you just say yeah that looks like it'll run faster to me like that that one always bothers me because i'm like it's intellectually late i feel like it's intellectually lazy to accuse someone's code of being slow when you haven't actually timed it you know yeah it's like saying you know the zero the zero to 60 on this car is so fast i've never driven one or no one's ever measured one but just look at it you know yeah it's so fast looking sleekness of its
Starting point is 00:24:52 lines i know look and it's red there's a guy named fayesh lev igorov i think is his name who's worked on i think he's worked on dart for a long time but he used to give a lot of talks about performance in javascript when the the like jit stuff was was fairly new and i remember him saying is the compiler smarter than a table like you should ask yourself this question every time you look at a benchmark in his cool russian accent uh-huh what do you mean by table well like i don't know think of that order of execution thing like a not dumb person could say well maybe the compiler could figure out which thing is more likely to oh right put that first exactly exactly it's like oh well someone wrote a compiler so anyway yeah so that always got me and i've known two people in my
Starting point is 00:25:38 life who have been this way and i found out i just over the course of years i it just occurred to me that their communication style is just a little different and they don't actually mean to come across this way and so i learned slowly to take those comments as how they were i hope intended and not as these like daggers to my heart, you know, that attack my very self. And that's called developing thick skin. And frankly, that's a valuable skill to have. And I think that's something that people, especially in software engineering, can benefit from. Yeah. So you're talking about specifically the ability to not take it personal and get confrontational about it.
Starting point is 00:26:18 Don't get worked up. Like, just don't worry about it. It's like they wrote what they wrote. Now you get to choose how you're going to feel about it. And there will be a default feeling that you might have to fight. Man, here we go. I'm doing psychology again. What is this? It's crazy. But well, I have a technique for how I deal with this. So that technique is I follow a pattern whenever I receive feedback. And the pattern is step one, thank them for writing the feedback. And this, when I say thank you for sharing that feedback, it just immediately, I don't know what it is about my brain, but it immediately changes the mindset from I'm going to defend myself to I'm going to thank you for taking the time to put in the work to help make our code better.
Starting point is 00:27:01 Thank you for putting in the time to give me this feedback. Then I respond with, if I have counterpoints or whatever else, I can communicate that back to the person. But I always start with thank you, even if it's really strongly negative. It's like, whatever it is, they put the work in to do it. So you should thank them for that. And side benefit, your mindset might change to be a little bit less defensive. So that, that could help with your reaction. If, if the problem is mainly kind of the, the, the other person, the, yeah, well also, well, it's always the other person. It wouldn't be our question asker. If you are able to successfully act on the feedback can either like resolve it or not or whatever like get get your stuff through but the feelings
Starting point is 00:27:50 are are the problem that can help i feel like there could also be a problem beyond that where it's like i am very offended and attacked and now we have to like battle it out over yeah which what the order of these stupid things is in the and clause or whatever and and you will do that more calmly but you still have to do that if they're really going to stick to their guns right you still have to actually address their concerns is that what you're saying yeah yeah like you might be more calm about it and not get worked up so i think at some point you will have to either say okay i give in or right i have look i convinced you you're wrong or i disagree and feedback right like i'll just change my code yeah yeah like the passive mode that's true and i think so this is
Starting point is 00:28:34 actually harkens back to your previous point jameson about how the the reviewer should take the time to communicate the level of importance of their comment. And if they don't, then you can ask them and say, okay, I've heard your feedback. I understand it. I want to make sure I understand how important this is. Are you saying that you'll block this PR until this is addressed? Or are you comfortable with this shipping to production? And I promise to create a JIRA ticket that will sit on the shelf and never get looked at yeah yeah that's so good if we address this in a follow-up pull request that will never happen that's right anyway yeah that's a good point yeah calling out explicitly like do you want to use your veto on this because you don't get infinity of these
Starting point is 00:29:21 yeah you don't get right you become the person who just blocks everything for exactly because because i think if you keep your eye on the outcome that you're going for and the outcome that you're going for is working code in production that produces the value that you want which is usually for an end user or customer or whatever it is. And so if you stay focused on that and don't get sidetracked by my code has to go to production as is, because that's not the objective. The objective is a useful feature being built or useful bug being fixed or whatever it is for the end user. So keep that person in mind and then find the best path to that outcome. Yeah. Figure out the right thing to do. I think that's what that advice was.
Starting point is 00:30:00 Easy. easy peasy maybe that should be our new quit your job is do the right thing do the right thing think of the outcome that you want and then do the things that will get you that outcome yes when you have two options laid before you choose the one that will lead to the outcome you want that's great it's the perfect advice if if you have more than two options keep removing options that won't lead to the outcome you want until you have two until only one remains and it's the one that gets you there that's induction baby start with a base case yeah all right have we answered the question i think we got pretty
Starting point is 00:30:41 close it's a tough situation and i'm tempted to go into the topic of can you change other people yeah me too no you can't okay no this person is unlikely to become less confident yeah they may choose to change themselves eventually but it will not be because of something you did there i've seen that happen too do you know what will change them dave uh no sharing this show with them no and not this show as in like listen you're the bad person in this question i want you to listen to all the i want you to be called out but like expose them to soft skills engineering watch as their life improves as they absorb positive energy and develop their space law degrees and just i would say watch them as their life slips into a slow
Starting point is 00:31:35 but obvious spiral of doom where they become less productive at work more obstinate more misanthropic and eventually they stop listening to this podcast and get back to being happy well they just uh applied the do the right thing methodology incorrectly then yeah clearly unless that was their goal i guess anyway yeah okay ah question answered what can people do if they if they want their own questions answered dave go to soft skills.audio and click the ask a question button and remember when you go to our website the first thing you got to do is say what is the outcome i'm going for and then just look at all the buttons on the page and click the one that will get you to that outcome once again once again the advice works you can fill
Starting point is 00:32:17 out that form and we want to say thank you to everyone who fills that out each week we love reading your questions they are very very good frankly they are question fuel they are fuel it's a metaphor it's a metaphor they like they they fuel our passion and desire to keep doing the show oh very true yes shoveled into the the furnace the flames growing ever higher the steam of wisdom heating up. Way to pull the metaphor and really just let it go. That was awesome.
Starting point is 00:32:49 Flowing through the pipes of the internet, the series of tubes. All right, let's get out of here. Thank you for listening. We will catch you next week.

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