Soft Skills Engineering - Episode 390: Fixing typos and Cassandra
Episode Date: January 8, 2024In this episode, Dave and Jamison answer these questions: I’m a backend engineer at a large non-public company. I noticed a bunch of our emails and website riddled with typos. I can not cla...im that it is metrics impacting or impacting business, so I get that teams always deprioritize, but the overall feel just irks me. Many of these come from a CMS I don’t have access too, so it’s not like I could offer to help with code even if I wanted. When things like this are not in your space, any advice on how to up overall quality? Possibly Mute Senior Engineer asks, I’m currently a senior engineer in a really small startup, and I’ve been here just long enough that I’m deeply familiar with our flagship product in multiple areas - infrastructure, the guts of the business logic, our deployment patterns, our most common failure modes, etc. Unfortunately, I have to be involved in every project and pick the application up off the ground when it dies. As a result, I’ve become spread very thin, and I have to cut corners just to stay afloat (or I am specifically directed to cut corners to meet a deadline). Frequently (because of all the corner cutting), we run into two situations that really tick me off: I see bad thing on the horizon, talk to my team about it, am ignored, then bad thing happens and I get to have a crappy day fixing it I recommend a basic best practice, we don’t use it and do some coat hanger + duct tape thing instead, thing breaks, and I get to have a crappy day fixing it. I’m very tired of being on the wrong end of the consequences of our own actions. I pour so much into this job, but I feel like I need to go get my vocal cords inspected, because it’s like my teammates and my manager can’t hear me when I talk about the things we’re doing poorly that lead to bad outcomes. Quit my job? Or is there an easy way to deal with this situation that I’m just missing? I feel like I’m screaming into the void every time I have these discussions and get completely blown off with “oh that’s not important right now” or “oh that terrible thing could never happen”. Thanks in advance!
Transcript
Discussion (0)
it takes more than marking incidents as resolved with a message that says why it's christmas day
to be a great engineer this is episode 390 of the soft skills engineering podcast and i'm your host
james adance i'm your host dave smith and soft skills engineering is a weekly advice show about
all the non-technical things that go into the technical field of software development
and i also watched the muppet christmas carol recently nice we can't have an incident it's
christmas yeah why it's christmas day and you do still have an incident but
you get a cooked goose delivered to your house too
this is my sev one cooked goose
your goose will be cooked after this yeah metaphor dave do you want to thank our patrons
yes big thank yous to chase w norton type hero.dev never is not just a crater on mars with a flamingo
emoji i like chicken i like liver miyamix miyamix please deliver trash panda the computer science
book.com valentin at datafold santa hopar kent to see dodds jenny kim owen charlotte craig
mottland the stochastic parrot patreon.com we're hiring ira chan monkey face emoji jonathan king
webtau awesome end-to-end testing will angel ragnar travis braden canes john grant the
unsettling nature of not knowing and nick cantar if you'd like to join this illustrious crew to go
to softskills.audio and click the support us on patreon button where you can contribute
an exorbitant amount of money to support our lavish recording needs and production costs
and we'll say your name on the show every week if you contribute enough and any dollar amount
will get you access to our Slack community
where you can join and chat with like-minded people
who actually have pretty good advice for each other.
They do.
I learn a lot from them.
There's also a small chance
that if you make the number big enough,
you will overflow something in Patreon
and then they'll give you money.
And if it didn't work,
you can just make the number bigger and try again.
Until you find that.
Until you find the number.
or have gone broke please don't do that please feed and shelter yourself it's over
contributing to the podcast but we appreciate it dave should i read our first question i was
hoping you would then i will fulfill your hopes now this is from an anonymous listener who says
i'm a backend engineer at a law at a large non-public company i noticed a bunch of our
emails and websites is riddled with typos i cannot claim that it is metric metrics impacting
or business impacting, so I get the teams always deprioritize it, but the overall feeling just
irks me. Many of these come from a CMS I don't have access to, so it's not like I could offer
to help with code even if I wanted to. When things like this are not in your space, do you have any
advice on how to up overall quality? Oh, yeah. Big company makes this one really fun. Yeah.
Oh, boy. It's possible you're the only one who has read these emails.
oh yeah it is yeah you meant it mentions emails which like you said jameson most people don't
read it's kind of interesting thinking about all these different marketing teams generating
generating emails and then spam detection teams categorizing those emails and then putting them
into a place where no human will ever see them and then the large language models summarize them
we get filters and yeah it's it's an arms race i guess oh man uh they say it's a large non-public
company and then they mention emails so i wonder are they marketing emails are they internal emails
if it's if it's externally facing i feel like it is easier to say hey this will make us look bad
to people who might pay us money even though it's not directly customer impacting if it's
internally facing no one cares it might make you look bad your career might be slightly impacted
you meaning the originator of the content yeah this would bug me it would bug me if i saw a
bunch of typos but also i'm sure i've sent out a bunch of stuff with typos yeah sometimes i read
things i've written in the past and i just shake my head in shame yeah i shake my head in shame
when I read things you've written in the past two days. I don't know. What should they do?
Well, I mean, the part about this that really makes it challenging is the fact that it's a
big company. And when I worked at a big company, it was amazing how long it would take just to
find the right team who was responsible for the thing. You would have to ask, I don't know,
a dozen people and most of them wouldn't know, but some of them would have a clue. I felt like
a detective a lot of times you know going around and asking people questions and hoping to get
but you no one ever had the answer you know no one ever yeah they don't tell you they don't tell
you the answer they say oh maybe talk to this person who might know something slightly related
to it aha a clue pull out your magnifying glass start walking down the hallway with that clue
oh man it was it was like that i remember once in a while you'd find someone who truly knew what
they were talking about and it was like oh what a treasure trove i love this person of course then
their calendar fills up with meetings because everyone wants to talk to them so it's hard to
find who to talk to to correct the the stuff in the cms is kind of what you're saying right yeah
and i'll tell you even at small companies when you have content that's just a little bit bad
that is usually a symptom of an overworked team who is probably doing a lot of hard work but
It's just, man, these things just slip through.
And so when you reach out to them, they're going to be like, yeah, I know.
It sucks.
But you just pointed out three typos on three webpages.
And I'm responsible for 1,400 webpages, you know.
And I have to produce 15 blog posts tomorrow.
Yes, exactly.
I do not have time to go back and correct.
Yeah, it's so challenging.
So I think that this is really going to be an uphill battle.
but there are a few techniques that that you could use if you really care about this
and the first one is people respond to not looking bad and i think i'll get to this the specific
idea here in just a moment but first i have to say that one of the reasons these issues tend to
slip through is because the feedback loop has not been closed back to the originator of the content
So someone wrote a bunch of typos or grammar errors or whatever, put it out there, and then
never had to deal with the consequences of those errors. Meaning they probably don't even know,
maybe they do. You know, most people don't write typos intentionally. But the feedback loop has a
gap in it where the errors did not come back to the desk of the person who created them.
And so you can force that feedback loop to be closed, but it might come at great personal expense through the following method, which is tell their boss, you know, find the team that's responsible for the content and then walk up the org chart and send a well-worded email to the leader of that organization with a bunch of the examples.
That email cannot have typos in it.
Yeah.
Let's be very careful.
tread cautiously yeah but you know if you take screenshots of the content put little red boxes
around the words that are wrong with big big big red arrows pointing at them so that it's very very
obvious and then send that to the leader of the organization i promise you within a few moments
those issues will all be fixed but like i said your name will be on that email and it may come
great personal expense people might hate you yeah so recently at work we we shipped a thing that had
a lot of text in it and got a message from a customer pointing out some grammatical issues in
it and i felt pretty defensive because their message was very it felt very persnickety they
were like sort of like i found these issues and i i can't believe that it's this bad or something i
don't know i don't remember the exact language that was the vibe i got it was like you used a
hyphen instead of an m dash here which reflects how stupid you are it's not not what they said
this is not a member of your company right this is like no no no this is an external person
but still i was like my my my shields went up right i was like yeah screw this person i don't
want to fix it they're wrong let me let me let me convince myself that they have flaws in their
character instead of yeah look objectively at i'm gonna go suggestions they made all the m dashes
with hyphens yeah yeah so there is a if you can point out the errors without saying i'm i'm appalled
at the lack of professionalism or i don't know what if you can just say hey i i think it would
look better if we fix these and i notice these issues can we and and make it make it inexpensive
for someone to accept that they have messed this up yes i think that will have a higher chance of
success especially if you don't know them and you're going through a bunch of layers and
i don't know if you email their boss and say i can't believe you lead the team that produces
this shoddy work that will not work exactly you're putting every layer of the org chart on defense
mode yeah yeah i totally agree with that i mean make it very easy for them to to accept your
feedback and one you know one very specific way to do that is to give give them excuses that they
can latch on to that deflect from the fact that they are terrible people like for example i know
you guys have to produce so much content this was probably a lot of work so hey i i wouldn't have
done any better in your situation but if i were in your shoes i i know that i would want to find
out about these little things that snuck out so here are a few things that you might want to know
you know it's like give them every option to say oh this isn't about me being a terrible person
yeah this is about the situation yeah yeah i like that i just went back and read the message
i was wondering was it as to make me as grumpy like should i be as grumpy about it
and then i read it again and like yeah
yep he was a jerk not a jerk but definitely had an air of snootiness well listen jameson i think
you need to point that person to this episode and then also reply and say because you didn't
approach this in the soft skills we have declined to fix the issues you've called out in fact we're
going to highlight them in bold we're going to add some javascript to detect whose account it is
and when it's yours it'll change it to extra typos yeah so that i do have one other thought
on this at a systems level which is that it's great for you to point out these little fixes
and get them corrected by the team uh but if the same team produced enough fixes that you
enough issues that you noticed it, that team is likely going to continue to produce more issues
in the future. And so if you really want to take ownership and be truly accountable for getting
this thing resolved, you probably need to find a way to work with this team to get systems put in
place to prevent this kind of issue from going out in the future. Like maybe their CMS needs a spell
checker or grammar checker installed that automatically flags these things during the
content creation process or some kind of automated system that crawls their site and reports these
things back to them there's got to be i mean if it's a popular enough cms there's got to be some
kind of audit plug-in to that 100 not just for authoring but that you can run on existing content
yeah like you're not that this is not the first team that's produced a typo in a cms yeah and
that that to me that the activation energy to go from i'm going to send an email to the team
to I'm going to help the team install a system
to prevent this from ever happening again
is so high.
It's so high.
Yeah.
Yeah, they probably have like a dedicated,
if it's a large company,
they might have a whole team dedicated
to running this CMS
and they have all these processes
and the processes are not optimized
for letting randos email them
and say, please install this plugin.
Yes, they totally are not.
In fact, it's more of an immune response
when you do that.
They'd probably reject it out of hand.
Yeah.
That's so challenging.
But if, so here's my advice.
If you want to make this your personal quest
because you feel like it is important to you,
then do it.
But this is work charity.
This is going to take up time.
It will probably result in not a lot of recognition.
It might take up more time than you want
if you're if you want to really fix it so if if you find satisfaction in it and in in the
inherent act of improving this then it's worth it but i mean i said earlier you're probably the
only person that read this you're probably not probably a lot of people have noticed these typos
so but you're the only person who's really considering taking action on it yeah and maybe
that means it's easy to fix and no one has done it maybe it means there's just a lot of cruft in
the way of fixing it yeah which sucks and is a very depressing message to deliver but but sorry
become the ceo of the company yeah and then you can use that authority authority to instill a
culture of excellence and clear written communication there you go perfect it's a long
game yeah hire for written communication skills that's the answer yeah really attract really
attack this problem at the root go to the recruiting processes well now you said attack
it at the root and it occurs to me that maybe education is the real root and you need to train
up a generation yeah exactly so we're gonna have to pass some new laws get some curriculum approved
to every state in the country, maybe even internationally.
Yep.
Yeah.
I mean, you got your work cut out for you.
You better get started.
Well, our job here is done.
Dave, will you read our next question?
Yes.
This comes from a listener named Possibly Mute, a senior engineer.
I'm currently a senior engineer in a really small startup, and I've been here just long
enough that I'm deeply familiar with our flagship product in multiple areas.
infrastructure the guts of the business logic deployment patterns our most common failure modes
etc unfortunately i have to be involved in every project and pick the application up off the ground
when it dies as a result i've become spread very thin and i have to cut corners just to stay afloat
or i am specifically directed to cut corners to meet a deadline frequently because of all the
corner cutting we run into two situations that really tick me off one i see bad thing on the
horizon talk to my team about it i am ignored then bad thing happens and i get to have a crappy
day fixing it number two i recommend a basic best practice we don't use it and do some coat hanger
plus duct tape thing instead thing breaks and i get to have a crappy day fixing it i'm very tired
of being on the wrong end of the consequences of our own actions i pour so much into this job but
i feel like i need to go get my vocal cords inspected because it's like my teammates and
my manager can't hear me when i talk about the things we're doing poorly that lead to bad outcomes
quit my job or is there an easy way to deal with the situation that i'm just missing i feel like
i'm screaming into the void every time i have these discussions and get completely blown off
with quote oh that's just not important right now or quote oh that terrible thing could never happen
thanks in advance oh boy this is a this is a boy who cries wolf but there is a wolf and it
Literally kills the boy every time, but no one listens anyway.
There's something about that phrase, that terrible thing that could never happen,
that just alters the universe.
Oh, that won't happen.
It just restructures reality to make that thing happen.
Yes, exactly.
We designed it to exceed these safety ratings,
unless this unlikely event occurs, which really could never happen.
It could never happen.
And so, I mean, the solution to that is you need to go out and purchase a block of wood
for every member of the team who says that.
And just when they say that, tell them, please, would you look at that block of wood that
I provided you and just knock on it a few times to make sure that terrible thing doesn't
happen.
I was confused about where you were going there.
I was wondering if you were going to like whittle dolls out of it for them.
Okay, given something to knock on wood to avoid the terrible thing happening.
yep that because that also works that unrestructures the universe yes yeah it has a powerful counter
effect so i wonder if this person is it's possible that they warn about a lot of possible things
and i always forget accuracy versus precision is it it's possible that things happen that they
warn about quite often but also they warn about a lot of things that don't happen ah yeah so this
is precision versus recall i think that recall all right yeah one of those see i wasn't even
accurate in my poor remembering of these concepts yeah so which which one is which one is that so
high recall yeah so in this case like this would be low recall high precision like i always predict
bad things and they always happen but or sorry i predict a lot of bad things and every bad thing
that happens i predicted but then there's a thousand other bad things that i predicted
which didn't happen that's low recall high precision okay i'm wondering if this is a low
recall high precision case where you foresee a lot of potential bad outcomes but if the team
stops to address every potential bad outcome that you predict they will never get anything done and
so yeah sometimes you call it and the thing happens but lots of times you warn and it doesn't
happen and maybe this is the case maybe not but it's possible that is the perception that the
team has of you as well even if that's not the reality yeah like there goes old senior engineer
who yeah we have trained ourselves to ignore because 99 of the time it's fine also even if
you are even if you do have a high recall situation people do have a way of biasing away
from things they just don't want to do you know and they may even remember they may even falsely
remember that you said something would happen and didn't even though that never took place
yeah yeah i think there's there's a couple suggestions i have and one of them is play
the long game of try to be can you prove your credibility some way can you can you
keep track of your predictions and say oh i think this is going to break and i wrote it down in my
spreadsheet on with this date and then go back when something breaks and say aha i've recorded
my it will break prediction six months ago and today's the day it broke and like can you
come up with something to say see i i am right a lot of the time i have all this data so i think
you should listen to me more and try to do this in in a way that just doesn't make you look like a
huge jerk like the i told you so spreadsheet yeah the i told you so spreadsheet yeah because it is
it is a pain to hear i told you so but you don't want to say i told you so i'm so fed up you want
to say i you you have some evidence to believe i'm right this time like i've been right before
so i i think this this suggests that i will be right again and we should do something about it
not, boy, were you wrong to ignore me in the past.
Yeah, exactly.
There is a really cynical view of this too,
which is that management might be looking at this
and saying, actually, I like the economics of this.
We save weeks of effort by not implementing your ideas.
And then anything that goes wrong,
you're able to fix it in a day.
I love this.
You pour yourself into it.
It's fine.
yeah we're still weeks ahead on engineering outcomes yeah that's that's a good sinister
point yeah i mean it is possible that management is okay with the cost of sometimes having to
clean up mistakes yeah i think i'm saying the same thing you're saying
yeah just less cynically but like yeah we'll screw some stuff up and we go back and fix it
some of the time. And that's maybe better than trying to gold plate everything and predict the
future ways that it will break because that's hard to do. Yeah, that is possible. What they
don't know is that you, a question asker, are so frustrated that eventually you're going to quit
and then their one day fix it person will no longer exist. And then the economics really go
sour. Yeah. Yeah. The person that knows the infrastructure, the guts of the business logic,
the deployment patterns the most common failure modes etc will be gone and life will get hard
and now what used to be a one-day fix is now an all-hands multi-day emergency that stops all
roadmap development yes yeah how do you bring that up without saying hey i'm about to quit i mean
maybe that's what you say i don't know to me that feels like a pretty glaring win the lottery factor
problem where you have a very sensitive single well i don't know sensitive is the wrong term
I'm not saying you're sensitive for feeling this way.
A very delicate single point of failure.
It's very easy to, like, one person leaves, it all goes to crap.
And that's a problem for your team and for your manager, too.
So even if they're not, even if they don't share your motivation of, like, we need to address these things before they happen,
they should have some motivation to keep you around because you need to help make the system
more resilient so you're not a single point of failure that is assuming they know that you're
a single point of failure maybe that's step one is informing them about how delicate of a how
fragile of a response system our company has yeah you you could also yeah so so more spreadsheets
are the answer here obviously you can tell i'm you can tell i'm managing teams now yes all about
the spreadsheets yeah i mean you can look at the past 10 incidents how many of them did you swoop
in and save the day for and how many of them you can think of the is it the counterfactual
how many of them would have been like disastrous if you weren't there you know and again that's
another tough message to communicate without sounding very arrogant but you listen to this
show so you've exercised good judgment we we believe in you yeah i i mean yeah i think if
you approach it from a standpoint of i want to make the team better and i'm concerned that i
if i'm sick if i'm on vacation we're kind of doomed because i'm i'm the only one who knows
how to do this yeah and i think there's a a a clear line from make the team more resilient to
make our systems more resilient like for sure the answer isn't necessarily now we have two single
points of failure that know everything and can jump in and fix everything it's you make it easier
to fix you make it less likely to break right absolutely and i think this that the theme there
is that not enough people feel the direct pain of their consequences.
Sorry, the direct pain of their choices
in the form of consequences that someone else is dealing with.
It's essentially an externality problem
where person A makes a choice
and then the effect of that choice is dealt with by person B
and not person A.
And that may very well be what's happening here.
You're person B.
Yeah.
Yeah.
So I was reading this quote,
oh, that terrible thing could never happen.
And then I was thinking,
how would management react if you went in and said if this keeps up i'm going to quit this job
that could never happen in this job market
now now they're now they're predicting they've been predicting all these disasters with our
software now they're predicting disasters with leaving the company that could never happen
old wolf crier at it again yeah
yeah you know can we talk about the economics of startups for a moment
yes because startups are a peculiar animal they they are hyper obsessed with short-term results
because they only have a short-term runway typically especially this really what i'm
reading into really small startup here which means that they're probably not sitting on 50
million of cash in the bank from a venture capital investor. They probably have months of
runway, maybe six months or something. And so it's like, yeah, when you say things like, well,
this isn't long-term sustainable, they're like, our whole business isn't long-term sustainable
right now unless we take shortcuts to get to some kind of economic result. And so it's like, yeah,
I know. I know everything we do is quick fixes. And so this very well could fall on deaf ears.
And I think that's what's happening here. And to an extent, they're right. That is startup life.
Very few startups just go into crazy revenue growth mode right out of the bat and become
self-funding. This is why we have angel funding, series A, pre-series A, series B, series C,
series D. It's like they keep going back to the well for venture capital funding because it takes
a long time to get a company into self-sustaining mode with its own revenue. And so this has led to
the hilarious saying that i've quoted on the on the show before but there's really only two kinds
of startups there are those that fail and those that are embarrassed by their code and this one
is still in the embarrassed by their code phase yeah yeah i feel like we've done a lot of
apologetics of of of saying here's all the reasons why it makes sense for the company to ignore you
when you say this thing's going to break
or we're doing this wrong.
But I don't know that we've done a ton
to help them resolve it.
I mean, some of that is putting yourself
in the mindset of the people
who are deciding whether you invest
in this way or not.
And maybe it is helpful to understand
the trade-offs they're considering
when they're deciding,
should we invest in doing it the right way?
It'll take six weeks
and avoid this potential future problem
that has some chance of occurring
or some chance of not occurring.
or should we put six more weeks into this feature
that might help us close this customer?
And yeah, they're making trade-offs.
If they are,
hopefully they're making trade-offs deliberately.
Hopefully they're not just kind of flipping a coin
and saying,
now we will fix tech debt.
The coin has spoken.
Yeah, it totally makes sense.
These are hard trade-offs to consider.
I think the easier case,
they mentioned two cases,
bad thing on the horizon,
ignored it it breaks and basic best practice that is ignored and then causes a problem i think the
basic best practice is easier to fix because i think it should be easier to adopt a basic best
practice when you say basic that that to me sounds like something that can be easily explained and
done without a lot of expense it's not right and it's common you know it's not like some
That's a thing you invented.
Yeah, and it's not a huge migration to a new thing.
You're not saying we're going to switch languages
or rewrite everything and, I don't know,
we're going to move everything to lambdas or whatever.
It's we're going to start doing a thing this way.
And that feels like your standard kind of persuasion problem
that we've talked about a lot.
You need to explain to the team why it's worth it
and get agreement that that people will do it but i think that's easier especially if you can say
and this will not cost us more time this will only save time it won't slow down development
we're not we're not reshuffling our roadmap to take on this new thing we're just saying
hey we're going to update our linter to say don't do this thing or remind ourselves in our pr
template to to i don't know use this pattern instead of this other pattern or whatever
So I think I would double down on that one because it feels more likely to succeed and be less frustrating.
Yeah, I agree.
I think that there's always a careful balance to be struck here between taking too much time on preventative measures and best practices, so-called best practices, versus not taking enough.
And it sounds to me like you're probably not taking enough time here on those things.
and if you if you can couch this in terms that the business will respond to you're more likely
to have success and in the case of a really small startup those terms look like typically they look
like hey our roadmap velocity our delivery velocity on the roadmap is reduced because
we're spending time putting out fires that we could be spending time building the next generation
or the next features that we think are going to unlock revenue things like that and so if you can
quantify that, again, here we go with the spreadsheet. This is our third time describing
it. And really, this might not be your job. It might be the manager's job. But you, in partnership
with your engineering manager, should probably put together a case and get on the same page about
how the team's time should be spent for optimal business outcomes. Because at the end of the day,
that's why you're employed. You're not just employed here to do fun engineering stuff and
to avoid pain. You're here to produce a business that produces the outcomes the business wants to
produce and so if you can make a case that there is there are best practices or there are fixes or
there are you know non-bubblegum and bailing wire changes that need to be made that will move you
closer to those outcomes then you're more likely to get them adopted i like it well is our work
done here our work is clearly done here i was just thinking about all the shortcuts we took on this
question and how they'll come back to bite us later
yeah we just have to keep keep shipping to get more revenue so we can pay ourselves to go back
and correct the audio i guess i don't know the metaphor is here we'll fix it we just grow enough
we can fix it later all right dave what could people do if they would like their own questions
answered they should go to soft skills.audio and click the ask a question button thank you so much
to everyone who does that we love reading your questions they they are just they are like
artisanal crafted poetry and we love them we learn from them too it's a big part of why we started
the show and it's working we're learning hopefully it helps you too but that's incidental yeah exactly
all right we'll catch you next week
