Soft Skills Engineering - Episode 390: Fixing typos and Cassandra

Episode Date: January 8, 2024

In 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)
Starting point is 00:00:00 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
Starting point is 00:00:52 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
Starting point is 00:01:37 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
Starting point is 00:02:00 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
Starting point is 00:02:25 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.
Starting point is 00:03:12 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
Starting point is 00:04:02 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
Starting point is 00:04:46 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
Starting point is 00:05:32 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.
Starting point is 00:06:06 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
Starting point is 00:06:38 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.
Starting point is 00:07:38 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
Starting point is 00:08:20 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
Starting point is 00:09:07 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
Starting point is 00:09:55 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
Starting point is 00:10:41 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
Starting point is 00:11:41 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
Starting point is 00:12:26 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,
Starting point is 00:12:47 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.
Starting point is 00:13:01 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,
Starting point is 00:13:19 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
Starting point is 00:13:54 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
Starting point is 00:14:44 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?
Starting point is 00:15:08 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
Starting point is 00:15:42 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
Starting point is 00:16:25 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.
Starting point is 00:16:58 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
Starting point is 00:17:24 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
Starting point is 00:18:09 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
Starting point is 00:18:56 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
Starting point is 00:19:40 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
Starting point is 00:20:33 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.
Starting point is 00:21:05 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
Starting point is 00:21:37 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
Starting point is 00:22:20 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,
Starting point is 00:23:01 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
Starting point is 00:23:52 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
Starting point is 00:24:39 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.
Starting point is 00:25:00 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
Starting point is 00:25:19 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
Starting point is 00:26:03 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
Starting point is 00:26:48 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
Starting point is 00:27:29 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,
Starting point is 00:27:42 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.
Starting point is 00:27:59 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.
Starting point is 00:28:17 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.
Starting point is 00:28:50 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
Starting point is 00:29:16 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.
Starting point is 00:30:05 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
Starting point is 00:30:42 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
Starting point is 00:31:25 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
Starting point is 00:32:11 all right we'll catch you next week

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