Soft Skills Engineering - Episode 322: Cover blown and no one cares

Episode Date: September 19, 2022

In this episode, Dave and Jamison answer these questions: Listener Olexander asks, I was a tech lead on some relatively known project since the beginning for more than a year. I made sev...eral trade-offs with technologies and wrong decisions. I participate in some generic Slack organisations and met several users of my product. I haven’t told them that I was connected to implementing the project but sometimes shared some insights on how the product is tested and asked opinions about some of features of the product in comparison to the competitors. Now there is a person who continuously critiques the product. Sometimes the criticism is valid but sometimes is’s just a rant. How can I influence that person without blowing my cover? Listener Kieran asks, Hi guys! Loving the podcast from down under. I’m working part time as a dev while I complete my software engineering degree. It’s been fun, but there are almost no processes in place for development and not many other devs seem to care about improvement. Although I am the most inexperienced here I feel some of the devs do not care about the quality of the work as I often have to refactor some of their code due to it being buggy, slow and undocumented (still using var in javascript). I’ve talked to management about improving our standards. However, they brushed me off saying yeah some of the developers are stubborn. They are not brushing me off because I lack technicality as Ive been given an end user app as a solo project. How should I go about encouraging the team to improve our processes?

Transcript
Discussion (0)
Starting point is 00:00:00 Hey everyone, Dave here. Just wanted to let you know that at the beginning of this episode, you're going to hear some noises in the background from one of Jameson's adorable young children. Just wanted you to know that they won't last the whole episode, but you do get to hear from this unexpected guest on today's show. So apologies for the extra noise, but just know that it only lasts for the first few minutes. All right, enjoy the show. It takes more than rewriting get-commit authors to blame someone else to be a great engineer. This is Soft Skills Engineering episode 322. I'm your host, Dave Smith. I'm your host, Jameson Dance.
Starting point is 00:00:41 Soft Skills Engineering is a weekly advice podcast for software engineers of all shapes and sizes, especially those that like to take the Stalin approach to history. Can you, would you just have to rebase? How do you even do that to rewrite the authors? I don't know, but I'm sure it involves the dash F flag somewhere. Probably someone will say reflog, and then someone else will show up and say, actually, Git is really simple. It's just a directed acyclic graph, and then it has 5 million commands. You just have to learn the first principles and the 5 million commands, and then it's fine.
Starting point is 00:01:17 Yeah, and then it's obviously simple. It's a directed... I disagree. It's not a directed acyclic graph. it is a blame distribution system ah the distributed part is about blame yes yeah you you thought distributed meant where the data is stored oh no i i realized the other day that i i know how to use git like a person in the middle ages who doesn't know how to read or write knows how to sign their name i like learn the shapes and just like go through the same repetitive motions to do the thing but i don't there are people that
Starting point is 00:02:02 are fluent in it and i just watch them and wonder like what could you have done with that time you're like i could make a shape that looks like get rebase yeah yeah i know get rebase i know push i know pole i know stash stash is my friend i can like google how to bisect i don't think i've ever touched the ref log in anger oh i did it yesterday not in anger though in in sheer desperation for hoping i can find that commit that i apparently forgot to push yeah i guess i searched through the logs and stuff i don't know all right well that's not what this show's about no no no not at all all right doing this episode is sponsored by hired which is the best way to Quit your job and find a new one.
Starting point is 00:02:42 You will get more information about them in a minute. I'd like to thank our patrons this week who are contributing at a level where they get a shout-out every single week. They are Kent C. Dodds, Theodore Sabin, Memester Josh, Jenny Kim, Owen Chardall, Craig Motlin, I Love Mavis, The Stochastic Parrot, Alice Joss, Andrew Pollack, No Cheating, Lanfer, Plegleg, Gogorek, Nondropleg, Gogogogog, KoshoktonOhio, Patreon.com.au, We're Hiring, Ira Chan, monkey face emoji jonathan king testing is documenting.org oladapafadie will angel who does not have the stinky feet then who has the stinky feet nick hathaway travis sanders brayden
Starting point is 00:03:18 canes john grant nick cantar and philip john basile if you would like to join this crew you can go to softskills.audio and click the support us on patreon button and any contribution amount will get you access to our slack community and a very large amount will get you to be able to make us say whatever word emoji or safe for work phrase you would like on this show every week all right should i read our first question yeah let's do it okay this is from a listener named alexander who asks i was a tech lead on some relatively well-known project since the beginning for more than a year i made several trade-offs with technologies and some wrong decisions i participate in some generic slack organizations and have met several users of my product i haven't
Starting point is 00:04:02 told them i was connected with implementing the project but sometimes shared some insights on how the project is tested and asked for opinions on some of the features of the product in comparison to the competitors now there's a person who continuously critiques the product sometimes the criticism is valid but mostly it's just a rant how can i influence that person without blowing my cover ah that's great this is the other side of having a product that's widely used where there's a good chance that you know people who uses it who use it yeah and it's like it sounds great in in print in print in uh on paper like oh yeah i use this really popular widely known product or i sorry i built it but then you get to meet the users and they'll tell you what
Starting point is 00:04:47 they really think about it yeah some of them hate you but if they don't that's the beauty is if they don't know you did it then you get to hear their really unbiased opinion so i've struggled with this before i work on a product that is not super famous but it's certainly known and used and and very familiar to a group of people and some of them are very vocal about their feedback uh some of it's positive some of it's negative as feedback is and it's taken me a little bit to learn to pick the useful stuff out of it without just absorbing the frustration feeling sad because like that yeah there's there's no perfect product some there's no perfect people either maybe if your product is perfect the person who's using it is is damaged in some way that that will make
Starting point is 00:05:37 them frustrated at your product like just won't i don't know somebody will be mad at you yeah sometimes that anger can contain valuable information which is why you don't just want to block the haters or whatever but if you have like a good product team or product partner that collects that information maybe you could honestly maybe you could just say just don't talk to that person i i trust other people to to collect valuable feedback from users but if you do still want the feedback you you have to kind of learn how to take the the the hurt or criticism of of what you have done and therefore like what you are separate that from the information they're telling you about like where it's not working for them like i i don't know like i think there's a
Starting point is 00:06:23 there's a built-in conclusion or a premise here that i'm not sure i agree with which is do you actually want to stop information yeah like do you really want to stop this person from ranting oh well i i wasn't even thinking about stopping them from ranting that's true i was thinking like how do you still pay attention to them because one one option is just yeah you don't stop them ranting you also just ignore them you should i don't know mute them in your slack client or whatever you i don't think you can do that actually yeah but mute them with your eyes the way our ancestors did use your eyelids yeah also known as rant muters
Starting point is 00:06:57 um i guess yeah i guess what i was trying to express with that is like a yeah it's really hard to differentiate rants from valid product complaints sometimes you know and and you could certainly get obsessed with the rants and be like oh yeah i'm gonna go back to the code base and fix everything you ranted about you know yeah yeah and then you find out like things based on my perception of what people are most angry at right like based on the loudest ranter yeah just a poor way of prioritizing yeah and then what you find out is that that ranter is going to keep on ranting yeah and a bunch of other people will be mad because you did it in a way that you that only works for the ranter but actually didn't anyway now you have
Starting point is 00:07:37 nobody happy so yeah like i get that but on the other hand i'm like what do you really want to shut them down like it sounds to me like it's like you're saying listen you've you've given me some really good product feedback uh oh yeah and i'm not allowed to reveal that i work on this product right so hey man you've you've expressed some really good product feedback i'm sure the product manager wink wink would love to hear that feedback could you just remove all the crappy stuff you say just stop saying that part you're saying that that is an unrealistic thing to ask this person to do right i think so i think so okay they don't know right i'll bet you that they don't really realize that half the stuff they say is not useful feedback of course they also don't
Starting point is 00:08:21 know that they're speaking to the creator of the product so yeah this is like espionage it's like it's like james bond secrecy maybe okay maybe this person's a double agent maybe they actually are an employee of the company pretending to be a user and this is their way of trying to influence the roadmap okay i'd just be annoying enough i just had this vision of as an employee of the company it's actually an engineer and they're trying to convince you to focus on some of these tech debt refactoring projects that they've been asking for for years i can tell i can tell from the pixels on the screen that this code is definitely not well factored and you need to use more design patterns uh just from from the shape of the user interface i can tell that
Starting point is 00:09:13 they're using redis as a durable data store and exactly it's wholly inappropriate for that purpose as we all know yeah you could even make it really specific about like if you've got a pull request open that hasn't been reviewed or like some pet idea you've been shilling to a bunch of people inside and they can't they just write you off yeah exactly it's your sock puppet customer sock puppet the funny thing is you joke about how you can't really tell what's going on with the back end of the infrastructure from the front end but sometimes you really can you know like should you really be using java servlets in 2022 i guess if you use them in 2012 and then you didn't touch it since then maybe well yeah but i want to refactor oh okay yeah sometimes sometimes the feedback is
Starting point is 00:10:03 just like i hate my job and they make me use this tool like you know yeah it's it's not feedback you're going to easily process and and yeah when maybe i wonder if this person is influential maybe it's someone well known in the community and they're worried about like maybe they're going to turn people off of the product or or alternatively maybe it'd be a big boost if if i if i won them over somehow yeah like could you just say something nice about this product it would really help my bonus yeah my profit sharing bonus if that's the case then maybe you do reveal yourself and say hey i want to i want to address your concerns yeah and i guess that's maybe the premise in this question that we should we should hit head on which is is it a problem to blow your
Starting point is 00:10:45 cover like what what's the problem there why do you not want people to know that you work on this maybe because you'll be embarrassed yeah i i worked at walmart and some people hate walmart if i say hey i worked on this app then they might say tell me more about where you live so yeah exactly now i hate you yeah exactly yeah yeah i just i didn't used to hate you i thought you were great but man something happened in the last 14 seconds yeah i think that happened with one of the store employees once i was like picking up my medicine and they saw I worked at Walmart and were like, oh, cool, what do you work on?
Starting point is 00:11:22 And I said, oh, like their tech stuff. And then their face fell because they had just had this horrible day at work because some system that they depended on was busted. And I tried to clarify, like, no, no, no, that's not me. Like, look, there's other people. I'm sure I've caused you much pain other days, but today is not one of those days.
Starting point is 00:11:42 Yeah, yes, maybe you do reveal yourself to this person. It could be the kind of situation where you're in a Slack community that's like public and maybe it's against your employer's policy to reveal that you work for them. Maybe you're in a competitor's Slack. You can't out yourself or you'll be in trouble. Listen, I just need you to rant about this product,
Starting point is 00:12:05 not this other one. Yeah. I don't know if I've ever successfully influenced someone who I only casually know to be less ranty. Oh man, yeah. that's a really good point if you like to rant it is not an easily changed trait maybe you'll find a different thing to rant about but oh maybe that's it maybe that's it you need to find a topic that can really get this person going and anytime they start to rant about your product you just
Starting point is 00:12:35 boom yeah what are some common you gotta find like a suite of common triggers oh yeah like guido shot first linux user han shot first easy system d yeah system triggers rants oh yeah i mean depending on how far back you want to go you could just say the word sco linux i get people going 10 15 years ago i would have yeah it did not get me going i didn't i don't know that one in other words you're gonna have to go deep on this person's life and figure out what they hate had some really interesting feedback you have about this product but really what i'm interested it on is your opinions on the current political situation yeah and then boom what about what if you just drop the uh ludicrous display thing just pivot them to sports oh yeah did you see the that
Starting point is 00:13:21 ludicrous display last night exactly yeah it could work you could even do it with a slack bot yeah you could probably you could probably program a natural language machine learning model to identify like to classify all the statements coming out of this person in slack and when they get on a topic of when it's when it has like a high rant sentiment and yeah a subject that's got like the keyword of your product or yeah exactly then boom slackbot comes in did you see that ludicrous display last night yep foolproof that reminds me of the time that i changed our chat we i was working at a company that was doing some work loosely affiliated with the super bowl and i changed our chat bot so that every time someone said the word super bowl it
Starting point is 00:14:12 meant it replied did you mean superb owl and posted a different picture of the owl i thought it was funny and it drove one of my co-workers insane and he lost it in chat screaming at the bot and then i felt bad to which you responded the bot can't hear you unless you say super did you mean super bowel yeah this is so great yeah check in on that person did the person know you wrote the bot yeah i think so i think they knew so they were ranting about your product yeah they were they were that's a good point and i responded by removing my product but Yeah, killing the product. Well, there you go.
Starting point is 00:15:02 And with that, question answered. Yes, indeed. Delete your product. Shut the whole thing down. Wow, who knew that the solution to this complex problem lied or just was sitting right in front of you the whole time? Yeah. This is like you want to teach them a lesson, right?
Starting point is 00:15:23 You don't know what you've got until it's gone. You complain about this product. I think you're taking it for granted, and you'll learn that once it doesn't exist anymore when i shut it down yeah and then you hope that there's not an easily an easy replacement with a competitor exactly all right did we answer the question yeah i think so okay good luck hey jameson have you heard about the great resignation is it that charles dickens book wait no the entire population on earth has started taking our advice of quit your job oh yes that's right apparently we have achieved influencer status
Starting point is 00:16:01 we've been telling developers for years to quit their jobs and now we want to tell you how to do it we're ready to reveal the secret i mean you don't just walk out shooting finger guns yes well you do that first but after you do that there's a new service we want to tell you about called hired what is hired dave hired is the biggest ai driven marketplace that matches engineers with companies, it is a great way to find your next job. I've been watching this industry for 20 years with a keen interest on hiring in particular, and I've never seen anything like Hired. Tell me about what you're seeing. So I've interviewed about 150 people in the last year, and I am serious. Every candidate that's
Starting point is 00:16:39 come to me through Hired has multiple offers, and they're incredibly high, scary high, like 30% higher than other candidates. Is that before or after the finger guns? Yeah, both. But the beauty is, it's totally free for engineers, and we would love for you to go try it. Go to Hired.com slash SoftSkills to check it out. Hired.com slash SoftSkills. Quit your job the best way and check out Hired.
Starting point is 00:17:05 Would you like to read our next question? Yes, this comes from a listener named Kieran who asks, Hi guys, loving the podcast from down under. I'm working part-time as a dev while I complete my software engineering degree. It's been fun, but there are almost no processes in place for development, and not many other devs seem to care about improvement. Although I am the most inexperienced here, I feel some of the devs do not care about the quality of the work
Starting point is 00:17:29 as I often have to refactor some of their code due to it being buggy, slow, and undocumented. For example, still using VAR in JavaScript. I've talked to management about improving our standards. However, they brush me off saying, yeah, some of the developers are stubborn. They are not brushing me off because I lack technicality as I've been given an end-user app as a solo project.
Starting point is 00:17:50 How should I go about encouraging the team to improve our processes? I love that. I love the management response of like, yeah, they're stubborn. You are coming to them as an employee saying, I really want this to change. How can you help me change? And they're like, oh, gee, yeah, what a tricky situation we're in, huh? What a pickle. If only they weren't stubborn. Yeah, if only, yeah, man. Well, back to work. That's your job. oh man yeah although that is a pretty classic manager move of like i don't want to deal with this problem right now like yep it's just the way things are it's like it's like a little bit of empathy and uh now it's time for our one-on-one to be over a little bit of calculated empathy yes calculated targeted empathy exactly targeted tactical empathy deployment weaponized weapons
Starting point is 00:18:50 grade empathy yeah just enough empathy to get me out of here i also love that the example of buggy slow and undocumented code is still using var in javascript yeah now i feel old var was all we had back in my day it still works it does complete with hoisting and everything yeah so i have noticed that there are some places that produce software as part of their business output but they don't seem to have a culture of of like we we really do software development and care about the craft and it's not that they're necessarily on the other end of the spectrum of like we just yolo and throw stuff out as fast as we can it's more like they're they're companies that employ software developers that
Starting point is 00:19:44 are just they just show up they do their job they go home and and there's not a culture of engagement in in craft or or like meta work you know it's it's just it's it's pretty i don't know i don't know how to say it without sounding patronizing because i'm saying like there's these lowly people that don't care but like it's true there's some places that they write code and they just don't care and that's fine it probably makes money still but it's hard to change that culture from the inside especially as a super junior person yeah that's that's that's hard to agitate for i think i'm doing the thing your manager did like yeah man yeah tough what a tough situation you're in wow gotta go what about next week yeah i i okay here's what
Starting point is 00:20:28 i would do i would start with the the right where defining right is a tricky problem but the right intersection of like really small easy to implement and impactful there are lots of big changes you could you could imagine or changes that might take a lot of work to to make happen or that are far off from the way things currently work but if if they're not on board they being the other devs boy is it going to be a lot of work to go like from ftping files around to ci cd you know you're going to do all of that and they're going to be kind of dragging their feet along the way towards it but what if you just pick one tiny little thing like hey what if we you know what if we review our code i don't know that's also not very tiny what would a tiny thing be stop using
Starting point is 00:21:17 var yeah yeah stop using var yeah there you go problem left as an exercise to the listener yeah i think actually stop using var is a bad example because it doesn't matter at all yeah but you know you got to start somewhere you do have to start somewhere but ideally it'd be something that mattered like look the the only thing that matters is that i get to have a little more control over this team that's true well then then still you need to it's like you're training an animal you got to establish it's like trusting authoritative relationship you can't just step in there and stomp around you know oh okay they're wild beasts they don't respect dominance no it's more like they'll just run away
Starting point is 00:22:00 oh i see so you have to kind of these are yeah these are ground squirrels they can be tamed but by default they will they will run free they will run you have to get them used to handing marshmallows over to them exactly yeah and they're so cute and only some of them carry rabies and leprosy yeah wait where did we go wrong with this metaphor i feel like we might be off track the rabies is var okay oh boy this metaphor went just weird yeah i don't know i i start small that's my advice okay small with something easy to implement that you can point to and say look see see we tried this and it's better it is it is it can be challenging to make a business case or even make an engineering case to persuade people like this because
Starting point is 00:22:54 what you're saying is listen change the way you're working to be the way i want us to work and to prove that it's working i will tell you that i like it you know like it's hard to have like an objective metric at the end where you can say look this number moved up see exhibit a i want to do this right the metric is i like it the kpi is do i like it i'm gonna give you another thing that you shouldn't do which is you shouldn't start to harp on like pride in your craft you know like i don't think you will have much success by telling them listen you you don't care at all and you need to start you need to change to start caring about this stuff this is important because i think that'll like be likely to make them feel
Starting point is 00:23:46 defensive of this young person new to the company coming in telling they're all doing it wrong and that they don't care about their job yeah and i think that's a let's just call that the whippersnapper factor where you're coming in at a disadvantage because you've got this youthful energy that the old-timers might perceive as youthful foolishness yeah so you'll have to overcome that and the only way to overcome that i think is with hard hard object objective reality and boy can that be challenging when it comes to things like using var you know and it sounds like you do already have some processes in place you've got code review right did i read that oh yeah yeah that's in the extra detail yeah exactly so they have stand-ups they have code reviews this is something
Starting point is 00:24:35 we didn't read that was in the kind of side notes on the question so so it's not like this is complete wild west right so you're gonna i would say be very careful in what you pick to start and And I would submit, like Jameson, that VAR is probably not the hill that you need to take first. Yeah. But maybe there is something. Maybe it's like, hey, I've found an unobtrusive linting system that can warn us about bad syntax or errors or things that won't work in certain browsers before we push it or as part of our code review process. These things are unobtrusive. and so like some of the things i love is when you get like a little robot that's designed to comment
Starting point is 00:25:14 on code reviews to say things like hey you might want to double check this you're shadowing a variable here and it might not behave the way you thought or hey you've got an unused import here but it's like it's not going to hold up the review process at first right that's what i mean by unobtrusive and then people start to get used to it and go oh yeah that's handy you know and then eventually when people are on board with it then you can start making it block the review process to say hey remember that thing that's been giving us good ideas for the last couple of months why don't we just make that required and everyone goes yeah i'm okay with that so you kind of ease them into it one marshmallow at a time you could also target a recent painful
Starting point is 00:25:51 thing maybe there's an incident you just had yes or or or i don't know some task that went poorly because of using var i'm sorry i should not be so snarky about that about the var why are you so obsessed with var it's like all you do is rant about var yeah don't you know that i am free in my head i i like the inventor of javascript is on this call right now and just so upset no i'm just kidding oh i've been i've been the undercover inventor of javascript forever oh well you got a you got a fall guy then i'm offended someone else's name is is on the tin just offended that you don't like var no i do like var var is fine that's my point i'm i don't like starting with changing var to let as the big process improvement i had a point and i forgot what it was yeah start
Starting point is 00:26:48 with pain if if if you're not quite sure what kind of in a vacuum would be a good first thing to start with look around to see what is painful now and can you can you is there any change you want to make that aligns with solving that pain i like it did we answer the question i think my only other idea is to get one of those what are those boards that you wear where there's a sign on the front oh yeah what are those called like a strike placards i don't know what is a placard that's just a poster i don't know i don't know what they're called either so that's that's another thing you'll have to do is first figure out what they're called step one you want to vocabulary start start a you're starting a trying to win the the hearts and minds of people you're starting a
Starting point is 00:27:32 war of ideas and you need to deploy propaganda okay so so kind of protest outside of your office probably get some folks to come join you down with bar down yeah that's all i got i think we've answered it okay you hit the bottom of the well there that's what it sounds like when you hit the bottom of the well and it's bone dry all right what can people do if they would like their own questions answered go to softskills.audio and click the ask a question button and we just want to say thank you to everyone who has done that so many questions every week we love them all we collect them like little trinkets like little russian nesting dolls on my fireplace mantle we thank you so much for that keep them
Starting point is 00:28:16 coming thank you thank you we'll catch you next week We'll be right back.

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