Soft Skills Engineering - Episode 322: Cover blown and no one cares
Episode Date: September 19, 2022In 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)
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.
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.
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
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.
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
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
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
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
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
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
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
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
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
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
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
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?
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.
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,
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
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
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
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.
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?
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
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
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.
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
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.
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
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
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
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
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
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
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
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
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
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
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
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
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
coming thank you thank you we'll catch you next week
We'll be right back.
