Soft Skills Engineering - Episode 326: Good perks, bad code and paper shredder suggestion box

Episode Date: October 17, 2022

In this episode, Dave and Jamison answer these questions: ‌About a year ago I joined what it seemed to be the best company ever. It’s a pretty big, pretty successful company which ha...s been fully remote for decades. They have a great work culture where async written communication is the norm. There’s no scrum, no micro management, no crazy and absurd planning/guessing meetings, etc. Of course we also have some pressure to ship product, but nothing out of the ordinary. Salary is good, work life balance is awesome, I like my team a lot and overall people are awesome too, so this sounds like paradise to me. However, on the technical side, this is the worst careless outdated bug-ridden untested unmaintainable inscrutable ide-freezing mindblowing terrible wordpress codebase I’ve ever seen in my life. No linters, no formatters, the repository is so big you can’t even open the entire thing on your editor and you need to open just the folders you’re touching. The development environment is “scp files to a production server taken out of the load balancer”. Zero tests, manual QA by a team mate before merging, outdated tooling, outdated processes, css overriden 10 times because nobody wants to modify any existing rule, security incidents hidden under the rug every now and then and the worst part: any attempt to improve this gets rejected. My team laughed at me when I tried to write an acceptance test in my early days. Months later I can see how ridiculous it looks now I have a better grasp of the technical culture over here. I’m towards the second half of my career. So “learning” and “staying up to date” with the trends is not my priority. I really enjoy this company and love working here until the moment I open my code editor. I’m seriously thinking on starting to look for another job, but I have this feeling that wherever I go the code might be slightly better but the perks will be worse. Now I understand why we have these perks, otherwise nobody would be here I guess. Have you been in this situation, or maybe the opposite one? Not sure what to do at this point. Thanks! My team got a new manager about 6 months ago. While I’ve had managers all across the spectrum of weird quirks in my time as an engineer, this person has one that’s new for me, and I’m not sure how to handle it. He operates in a very top-down fashion, which isn’t unusual. What is unusual, however, is that he will insist that everyone on the team give him feedback on a given issue…and then inevitably just proceed with whatever he had decided beforehand. I take giving feedback very seriously, and spend a lot of time getting my thoughts in order when I’m asked to give input on something. Having someone request that and then immediately throw my input in the proverbial paper shredder is frustrating and a waste of my time, especially since the team and company are growing rapidly and there are a lot of these kinds of decisions that have to be made. How should I approach this? I don’t want to keep spending time and effort on feedback that’s going to be ignored, but I also don’t know a polite corporate-speak equivalent of “please don’t ask my opinion on this when we both know you’ve already made up your mind”.

Transcript
Discussion (0)
Starting point is 00:00:00 it takes more than writing slash slash to do in your code editor and letting github co-pilot fill in the rest of the comment and then doing that to be a great engineer this is soft skills engineering episode 326 i'm your host dave smith i'm your host jameson dance soft skills engineering is a weekly advice podcast for software developers who just want to delegate their entire life to AI models. I'm having a really hard time helping my three-year-old learn how to work. And is there some way I can use GitHub Copilot
Starting point is 00:00:35 to figure out what to do there? Oh man, that's brilliant. I'll write a function called teach three-year-old valuable life lessons and then see what it auto-completes in there. That's a really good idea to do. Become a billionaire. it's like then you just read it and you're like oh my gosh this is revolutionary i've got to get
Starting point is 00:01:02 going on this quick before someone else types the same exactly the same to do you know what it's going to do is github copilot's going to like start listing stock picks you know yeah oh my gosh and then they rug pull one day when enough people start using it to pick stocks and then short all of their picks and leave you holding the bag yes exactly that's kind of not what this show's about though kind of i mean just a little bit kind of is yeah should i thank our patrons go for it all right thank you to a one-time shout out for ellie glad and a shout out to these fantastic weekly shout out citizens yes yeah noah frazier luge kent c dodds taylor savin memester josh jenny kim owen shardle craig motlin i love mavis the stochastic parrot alice jost
Starting point is 00:01:54 no cheating land fair where i give up go go go that's pretty good shockton ohio patron.com.au we're hiring ira chan monkey face emoji jonathan king testing is documenting.org oladapo fadye will angel clean foot emoji ragnar nick hathaway travis brayden canes john grant cody sell nick cantar and philip john pasil thank you thank you thank you to all of this group um i think we just sent out some invites to our slack team for for folks that uh joined the the the supporter list so if you support us with any dollar amount on patreon you'll get an invite to our slack community which is is full of delightful folks and wise words it is full of folks and words folks and words delightful words and wise folk that's true you can do that by going to soft
Starting point is 00:02:49 skills.audio and click support us on patreon and uh if you contribute at just an astounding level then we will say your name or some word or maybe some not a word some sequence of characters yes before the show thank you so much we appreciate it you keep the show going all right do you want to read our first question yeah i do this comes from an anonymous listener who says about a year ago i joined what it seemed to be the best company ever it's a pretty big pretty successful company which has been fully remote for decades they have a great work culture where async written communication is the norm there's no scrum no micromanagement no crazy and absurd planning or guessing meetings etc of course we also have some pressure to ship product but nothing out of
Starting point is 00:03:31 the ordinary salary is good work-life balance is awesome i like my team a lot and overall people are awesome too so this sounds like paradise to me just setting aside the question for a moment i feel like we're about to be set up for something bad the end how do i get more people to join yeah however on the technical side this is the worst careless outdated bug ridden untested unmaintainable inscrutable ide freezing mind-blowing terrible wordpress code base i've ever seen in my life no linters no formatters the repository is so big you can't even open the entire thing on your editor and you need to open just the folders you're touching the development environment is quote scp files to a production server taken out of the load balancer
Starting point is 00:04:21 close quote hey it could be worse it could be ftp zero tests manual qa by a teammate before merging outdated dueling outdated processes css overwritten 10 times because nobody wants to modify any existing rule security incidents hidden under the rug every now and then and the worst part any attempt to improve this gets rejected my team laughed at me when i tried to write an acceptance test in my early days months later i can see how ridiculous it looks now i have a better grasp of the technical culture over here i'm towards the second half of my career so learning quote and staying up to date with the trends is not my priority i really enjoy this company and love working here until the moment i open my code editor i'm seriously thinking about starting to
Starting point is 00:05:12 look for another job but i have this feeling that wherever i go the code might be slightly better but the perks will be worse now i understand why we have these perks otherwise nobody would be here i guess have you been in this situation or maybe the opposite one not sure what to do at this point thank you whoo that was an awesome question that was like the best written question ever yeah you can really feel the despair yes but also the delight like this is a real dilemma yeah they laughed at you oh i'm just gonna write an automated test ha ha ha funny i mean if they laugh when you write an acceptance test what do you think they're going to do if you suggest hey why don't we rewrite this code base
Starting point is 00:06:01 yeah you could just pivot to accidental comedian as your main contribution to this team you will knock them out they'll laugh so hard they'll just lose their breath and pass out Yeah, this is interesting. A book that I really like called Kill It With Fire. It's about legacy system migrations, sort of. It's about a bunch of other stuff too. But it talks about this problem a little bit. And it's interesting that we're talking about this
Starting point is 00:06:33 on the Soft Skills Engineering podcast because there are a bunch of technical considerations that go into it. But we're not allowed to talk about any of those. And good news, those are the easy things. like the the the non-technical things of marshalling the organization like willpower so that this changes are are much harder than the the work to to enact the technical change i think well now that i just said that i'm like tasting it in my mouth is that true how does it taste
Starting point is 00:07:03 it's probably it's it's it's harder to harder to get started i mean it's going to take years to of work to fix this uh and that's harder than like getting people riled up i guess and keeping them going but have you ever seen a project this big get fixed i guess it depends on how you define fixed is fixed like it is as it would be if we started over from scratch and made all of the right decisions yes no it will no that that will never happen maybe that's a good thing to point out like what what does better look like here like what's a reasonable iterative improvement on what you have right now what if i suggested writing an acceptance test and they just like snorted instead of full-on belly laugh like that's that's improvement yeah
Starting point is 00:07:50 what if we are sync files to the production server i'm thinking you know i'm i'm taking everything into consideration here you've got a great job you're well paid the team is great the code sucks but you know it's like a shared enemy you can all just commiserate with each other boy this code sucks you know put your arm around someone's shoulder and just throw your head back and laugh and maybe having perfect code isn't actually an amazing objective or a super important objective anyway maybe just hang out and just enjoy it this code must make a lot of money if it's it must this badly and and they've built this decades-old successful company yeah on wordpress yeah now i'm trying to think like
Starting point is 00:08:39 can i somehow reverse engineer what company this is i hope not you just don't maybe it is word maybe it's automatic it is wordpress it turns out it's google google search is actually a wordpress website i'm thinking this company must make a lot of money but not that much money uh you know like mid-range money because if they made a just a crazy amount of money that would probably be an indicator that they have a ton of users and a ton of scale and this system would have fallen apart long ago and they would have had to been rebuilding at least parts of it over time just like the classic stories that you know uber and amazon and facebook where it's like they have to rebuild
Starting point is 00:09:21 things constantly for the next 10xing of of usage growth yeah this must just be a consistent money maker but not an exponential money maker huh but we're not really answering the question until you until you rewrite it all and then what it's just a more expensive money maker that makes the same amount of money everyone knows that elegant code equals hockey stick that's true you know you know what would really make this wordpress website make a lot more money rewriting it in scheme it's so elegant yes what if we used macros to can you imagine the domain specific macros that this thing could could house we're kind of dancing around a point here which is like part of the impact is on your morale yeah but like you said they do a really good job of
Starting point is 00:10:15 trying to offset that by by having other good things yeah and and part of what you need to do is figure out why they care why the company should care about i guess i'm assuming that the developers would like to improve it but they feel like maybe maybe the idea of improving things has been shot down too many times and they're kind of like they've given up by now but i'm assuming that they could they could be re-engaged if you have some credible plan that that has business backing to improve stuff but the the the way you do that is by pitching this as solving a problem that they care about and solving it in the most efficient way you seem to have this idea that this is a solvable problem what if it's not what if this is it like this is your life if you stay
Starting point is 00:11:05 here oh like i i'm kind of seeing i'm kind of seeing the question here maybe a little bit differently than you are that's because i'm a young whippersnapper you're laughing at me i'm like dave clearly we have to write an acceptance test for this company and you're like oh should i even say something that wasn't give up that's so true i mean how naive like i don't listen i mean unless you're the cto of this company i don't think you're changing it like they've they're they've got a decade you're fighting decades of precedent and probably hundreds of people who have who have left a wake of misery and uh really sad stories in their past to try to do what you're talking
Starting point is 00:11:48 about doing i think the option here is quit or just embrace the stockholm syndrome like i don't know if there's another option here okay okay i have a third path so there's like fix the system so that it is less horrible for for all the ways you define horrible you could also like it's like you need to craft yourself a suit of armor like you you build yourself tools it's not it's not like you're gonna fix your your put ci in place around the system to make it so that like formatting and linting and other stuff happens but you you need to like create a personal developer environment that like works around the crappy parts somehow for example if you care a lot about formatting you just have to build your editor so that it formats the entire code base
Starting point is 00:12:41 when you open it and then like unformats it when you close it so that you don't actually change the code yeah this will be an interesting computational problem because no formatter on earth can actually do that in less than a few hours based on what's just been described here yeah but again okay go solve that problem probably easier than solving yeah the problem of yeah of fixing the whole system there's an endless supply of really fun problems that are going to turn into great blog posts and just imagine the clickbait headline you know i ported es lint or whatever the wordpress php equivalent of es lint is i yeah i fixed php lint to handle the world's largest wordpress website code base yeah i mean your your your development environment is scp files to your
Starting point is 00:13:29 production server take it down to the low balancer so how can you use that as a vector for like continuous delivery right you have to build some kind of system that i don't know automatically pulls stuff out of the low balancer and scp stuff for you and then it like it just papers over the the madness i feel like i was really gung-ho about like here's how you marshal all the build the case and get it's not gonna happen yeah it's probably not i i maybe maybe just pick one thing though like you're not gonna you're not gonna change everything unless you work there for a long time but is there is there like the right combination of really painful and also not super expensive to fix that that you can improve just a little bit and that might be more tractable
Starting point is 00:14:17 than thinking like how do i take this whole system from something that makes me cry to something that makes me cry a little less yeah yeah yeah how do i cry less is much more tractable than like how do i how do i sing songs of exquisite joy yeah yeah when my editor opens i've created this spreadsheet that tracks the number of milliliters of tears that i shed each day yeah i just want to get drive down to zero trend down yeah a five percent year-over-year decrease in tears shed but also you have to account for like the growing cynicism exactly experience exactly i've become harder and harder and now i don't cry anymore my tears are more precious to me it's like dry out and shrivel up i mean listen you're talking i am the person who at work right now has
Starting point is 00:15:06 spearheaded and secured funding for and approved a a large overhaul of a big portion of our application and uh and even i don't think that based on this description that this is worth even trying to improve a little bit yeah it's a wordpress code base that an editor an ide can't even open it's so bad google solved that they wrote better idees oh anyway they did i i think you know i i'm not the kind of engineer that would want to work at a company like this i would quit just but that's my personality and i really think that you're gonna have to figure it out for yourself like because i think what you're actually asking is can i work in kind of a crappy environment with good pay but i just kind of drift into a clock punching mode that i don't really care
Starting point is 00:15:58 that much about the work i'm doing what will that do to my to my psyche over time hey and if you're the kind of person that can still be happy and productive and healthy in that environment go for it but that's not me like this would tear me up i would have to leave and i think i know people who would do fine in this environment but i'm not one of them yeah the fact that stuff is bad is not the scary part the fact that they laugh at you when you try and fix it is the scary part exactly there's there's messes everywhere but okay well my dreams are crushed question feels answered to me okay question answer should i read the next one please do this question is from an anonymous listener who says my team got a new manager about six months ago while i've had managers all across
Starting point is 00:16:47 the spectrum of weird quirks in my time as an engineer this person has one that's new for me and I'm not sure how to handle it. He operates in a very top-down fashion, which isn't unusual. What is unusual, however, is that he will insist that everyone on the team give him feedback on a given issue and then inevitably just proceed
Starting point is 00:17:03 with whatever he had decided beforehand. I take giving feedback very seriously and spend a lot of time getting my thoughts in order when I'm asked to give input on something. Having someone request that and then immediately throw my input in the proverbial paper shredder is a frustrating waste of my time,
Starting point is 00:17:19 especially since the team and company are growing rapidly and there are a lot of these kind of decisions that have to be made how should i approach this i don't want to keep spending time and effort on feedback that's going to be ignored but i also don't know a polite corporate speak equivalent of please don't ask my opinion on this when we both know you've already made up your mind oh yeah that's a tough one maybe you just haven't found the feedback that is just is so earth-shattering that it actually changes his mind what if you could say something like here's my feedback i'm gonna write you a check for fifty thousand dollars if you use this technology instead and if he goes nope and throws that
Starting point is 00:18:02 in the trash then you got a real interesting person on your hands well you know they cannot be bought for a mere fifty thousand dollars i guess just keep raising the price until you find the line and then when they say okay then you say i feel like there's a pyramid scheme somewhere where you need to go get or a ponzi scheme or something you need to you need to go get the money from other people i don't know how ponzi schemes work that's pretty funny is that the first time you've ever been asked to describe a ponzi scheme out loud yeah probably i asked myself too it's even worse uh how should i approach it i don't want to keep i mean i i know what i would do in this situation which is i would not give feedback anymore i would very quickly i don't
Starting point is 00:18:50 know if that's the right thing to do but i i would get really frustrated by this yeah and then the feedback would be like have you considered moving this pick button six pixels to the left whatever like if it if it was important politically that i participate in the process i would just make up some nonsense you would have some token feedback you could offer yeah but i i i would get pretty fed up with the like asymmetry of being asked to put a lot of thought into what could we do instead and then that being discarded right what if you just came up with really really bad ideas what would the the goal be i don't know just kind of a chaotic just see if if if you get called on it yeah i guess so like i i think there's some interesting questions here is this person even
Starting point is 00:19:37 listening to the feedback is he even considering like he's even evaluating its goodness or badness or is he just letting you have airtime uh so that he gives the impression of being a collaborative leader and then discarding everything you know because if you said something just really outrageous and wild kind of like a wayne's world situation when they're being interviewed on that radio show you know and it's like oh yeah yeah it's this person even listening at all because i think that would be fun to find out yeah if every if for everything they say that you say to them your manager strokes their chin and says hmm interesting i think we'll go my way no matter if it's like what if we what if we implant a memetic kill agent into the program so that users see it
Starting point is 00:20:20 it destroys their brains hmm good idea but interesting i think we will use uh kubernetes these instead though okay so so i would i told you what i would do which is give up but then what i would do next is is get fed up and then go on a crusade and then battle them and then probably quit after that that's probably what does the crusade look like what kind of things do you do oh just like i don't know i'd probably fight with them and say like not not in public in a meeting but i would i would definitely complain to them that it felt like they were asking for feedback and doing nothing and it seemed kind of pointless but at this point you're already on your way out the door is what you're saying yeah but i i'd be mad not like uh working towards a resolution
Starting point is 00:21:10 i'd be like what if you do those things in a different order what if you start with a private sit-down conversation where you respectfully tell the leader that before i get mad yeah i mean just you know i don't know just try it it feels so good to be motivated by righteous indignation though like oh man nothing feels better than to go on a crusade i know there's a lot of road rage that results from that sort of thing that's true yeah people do sometimes have bad outcomes from that yeah sometimes i i think here's what i think i would do they would they would ask for feedback in a meeting i would give it and they would say i don't think that i agree with that and i would say every idea that is
Starting point is 00:21:54 destroyed by the truth deserves to be destroyed by it or some like big like big philosophical statement yeah some some big flag planted in the ground we're gonna go at it talking to them is probably a good idea i wonder though if you i mean if this is the kind of person who discards feedback what happens if you sit down with them privately and say oh yeah they're like hmm an interesting suggestion but i think i'm gonna keep doing what i'm doing that's when you just tear out your hair i mean it's just like they're consistent yeah listen i listen to all feedback and i do none of it feedback is welcome i i welcome the oversight and it makes it makes us stronger and better and i'm not gonna do what you said
Starting point is 00:22:45 sorry i just want to be clear on exactly what i welcome though what i welcome is the sound waves of your feedback i just i appreciate the amplitude and the frequencies i do not appreciate the semantic content of your feedback and i will reject it i mean or maybe you do appreciate the semantic content in the way that you appreciate like a fine piece of of art yeah you just kind of and then you just keep walking experience it through the art studio to the next one yeah it doesn't and maybe it affects you subtly in some way yeah maybe right maybe years later you're like oh you're not like it's not like you look at that mondrian painting and they're like oh okay i do need to destroy all curved lines in my life correct okay i i will
Starting point is 00:23:31 change my desk into a field of tables it's not what it's for this person truly understands what feedback is for it's it's to wash over you that's right it's it's like an existential existentialism which i just used that word and i just have no idea if it applies but it seemed right i said yeah because i was hoping that you're gonna not say that you didn't know how it applies and i could just like nod my head just part of part of being present in the moment is like you said letting the feedback just wash over you um but i am just listen i'm just an observer in this journey i just watch i wonder if they like read some harvard business review article oh yeah ways to be a good boss like have an open door policy or something and just totally misunderstood this
Starting point is 00:24:26 there was an article that went around about jeff bezos about how when he is confronted with a decision with his group of leaders his lieutenants he would ask each person what they thought and then he would he would always go last so as to not like taint the group's opinion or bias the group so he would listen to each person's recommendation and then he would choose so i wonder in this case with your boss if it's um is this person actually choosing a recommendation that someone else put out there and it just never happens to be you or is it like i've heard the seven ideas in this group and I choose an eighth idea, which is uniquely mine. Yeah.
Starting point is 00:25:08 So maybe they're going first in this instead of last, is what you're saying. Essentially. Like, cognitively, they already went. Yeah. Now I just have to let all the peasants say their words so they won't quit. Yeah.
Starting point is 00:25:27 Let them get their little participation trophy. i don't know that i feel like we're being a little critical on the manager here maybe that's what's going on boy are we yeah i mean let's explore more earnestly what you said about just having a private conversation because the the question asker does mention i don't know polite corporate speak equivalent of don't ask me for your opinion if it's never going to matter yeah i mean and that's probably the wrong words to say maybe yeah what you do need to say is is the truth will win out and you're an enemy to the truth i think in these situations oh i always approach these situations or rather the aspirational side of me always approaches these situations podcaster day
Starting point is 00:26:11 yeah but for those those of you who are listening who don't have to work with me uh can just keep believing that i actually do good things once in a while but if i were advising someone which i am i would advise you to approach this situation from the business and the team's perspective. In other words, call out how the team can be better and how better ideas can come to the forefront if this person will actually stop and consider the feedback. And you know how I would start that is with a question. Rather than an accusation of, hey, you don't listen to my feedback, I would say, I got a question for you. How seriously do you consider the feedback that you get? And the context for this question is I've noticed that you go to great lengths to ask
Starting point is 00:26:55 everybody for their input but i've actually never seen you take any of the feedback and apply it you know and just kind of sit that throw that out there and and see how they respond that's probably how i would start the conversation and i have no idea how it would end that's that's interesting i was thinking of like centering it on myself a little bit of like i feel less motivated to give feedback because i feel like it doesn't happen and then it's and then it can be more i don't know maybe it softens it a little bit from like this is a this is a problem that i have or or that is not just all you but still lets you explore that space a little bit and and maybe your manager will participate and say oh i do never take your suggestion or or maybe they'll
Starting point is 00:27:37 they'll be like here's how to accept your place a little bit better let me let me coach you on on getting your trophy but it leaves a little more wiggle room which may or may not be a good thing yeah like you you ask for feedback and and i've i find it hard to give it because i i feel like it's not gonna matter yeah see but i don't you feel like you're putting yourself you're kind of setting yourself up for a risky response or a painful response which is all your ideas are bad yeah yeah because you're not i bet your manager doesn't say that but i bet they'll dance around it and then you'll walk out of that meeting going all my ideas are bad yeah it's a risk you could also talk about it as like uh i mean maybe it's not a your ideas
Starting point is 00:28:23 are bad thing maybe it's like a they ask for feedback when stuff is already in motion maybe maybe bringing it up the time earlier would make it more more the the substrate that you are working in is more valuable i don't have i don't have a problem with your way of being it's just a timing issue yeah yeah that's easier to tackle thank you for sharing your feedback i will not change any yeah this this would be really frustrating to me i agree now i'm racking my brain thinking do i do this i think i don't think i think when people ask me for feedback i'm a lot like this person the question asker like i i prepare way too much i'll often write down something like i'll i'll take the problem statement and i'll break it down and break it down to its first principles in a
Starting point is 00:29:09 document and then i'll have like three different options with a recommendation and they're just like oh dave i don't want to read this come on i just wanted you to tell me my idea was good oh and maybe that's what's going on and maybe that's the right answer is like oh good idea thank you that is actually that that might be true this they might be feeling a little insecure and maybe they want some validation and they say feedback but what they really mean is like support you know yeah i don't know yeah i like your idea better than mine which is get mad and then throw a fit and then quit yeah well i mean that works too yeah well no the joke fled my brain some joke about how there you wouldn't know because you wouldn't get feedback if it
Starting point is 00:29:57 was a bad idea i don't know all right have we answered this question i think we've uh we're close enough close yeah close enough uh what can people do if they want their own questions answered. Go to softskills.audio and click the ask a question button. We must thank you for all of the feedback. Sorry, I mean questions that you've given us, many of which we have not answered because there are many, but many of which we have. And we commit that even though the questions are growing at a rate faster than we can answer, we will answer them all somehow through economies of scale. I'm going to pass this on to my descendants. And then I just need to count of my family tree
Starting point is 00:30:36 expanding enough. Oh, yeah. There are possibilities for exponential growth there. Yeah. But then again, our podcast is pretty like exponential listener growth.
Starting point is 00:30:48 Yeah. The tree of family members answering questions has to expand faster. Yeah. Or we have to deliberately slow down the growth of the podcast.
Starting point is 00:30:59 Right. All right. I've got some things to do. Okay. Thank you so much for listening. We'll catch you next week. I'll see you in the next video.

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