Soft Skills Engineering - Episode 311: (rerun of 207) Unclear career goals and garbage code

Episode Date: July 4, 2022

In this episode, Dave and Jamison answer these questions: I’m a senior software engineer at a fast growing software startup. In the past year and a half that I’ve been with the company I�...��ve gone through 5 reorgs and have had 5 different managers in 4 different teams. Each time I sit down to do a 1 on 1 with a new manager they ask about my career goals and aspirations. Initially, when I joined the company I was a weak and feeble non-senior software engineer. When I was asked this question then, my answer was “to learn and grow, and have more authority and autonomy over the systems that I build, and be considered a senior software engineer”. Over the past year and half I have proven my worth and paid my dues and got the title of senior software engineer, along with the pay raise that came with it. My career development horizon has not been very broad. I didn’t even know there were levels beyond senior software engineer for a long time. I feel like I’m missing out on growth opportunities by not having a clear answer to this question. Please help! Love your show, keep it up. I career switched via a coding bootcamp 3 years ago and have been at my current company ever since. The bugs created by my garbage code from the early days made me a big believer in clean code practices — I now feel strongly about using descriptive variable names, avoiding duplicate code, etc. However, my boss/CTO is on the opposite end of the spectrum. As long as the code works, he doesn’t care what it look like. I want to stay at this company because I strongly believe in the product and I love the flexibility of a small start-up, but my boss and I keep bumping heads. For example, we recently switched over to PRs, and each PR my boss has made included blatant violations of the coding standards document we created together (!). When I request changes on the PR, he says he’ll do it but it isn’t a good use of our time to rewrite it when the code works. My question is two-fold: (1) As the most senior engineer on the software team, how can I go about promoting a quality-driven approach when the CTO doesn’t see the value in it? (2) If all else fails, I’m open to quitting, but I don’t want to end up the same boat. During interviews, what questions can I ask to find out if the company truly values code quality?

Transcript
Discussion (0)
Starting point is 00:00:00 Hey everyone, Dave here. This is episode 311, but we're bringing you a rerun from April of 2020. This is episode 207. Enjoy. It takes more than simulating the outside world with plants in my office to be a great software engineer. This is episode 207 of the Soft Skills Engineering Podcast. I am your host, Jameson Dance. I'm your host, Dave Smith. soft skills engineering is a weekly advice show where we answer your non-technical questions about the technical field of software development i have one plant on my desk it is dying and i feel
Starting point is 00:00:40 like that simulates the outside world pretty well i guess so maybe i'm not even gonna water it okay that is very sad i mean i thought i was going like i'll get more plants and that way It'll be like being outside, but this appropriately covers kind of the whole general scene going on. Dave, do you want to talk about our patrons? Yes, thanks to everyone who's contributing on Patreon. They are Vinlock, Brayden Keynes, Chris Hogan, Dennis Bogdanoff, Evgeny Sladkowski, John Grant, Luis Santos, Luke Bayliss, Nick Hathaway, Philip John Basile, The Agile Ventures Charity, Sean, Stanley Tactical Radio, Stephen Armand Lee, Taras Harouk, Travis, and Zach Grannon. if you'd like to get on this illustrious list or just gain access to our slack community go to softskills.audio and click support us on patreon any contribution for any amount greater
Starting point is 00:01:28 than zero will get you access to our slack community and for certain amounts you will even get your name read on the show or the name of something else you want said out loud i feel like we need a cheesy name for this group the hall of champions or something yeah enter the hall of champions i want to read a follow-up we got from a question in episode 202 which is about somebody who couldn't stand up during stand-up because of some physical limitations hi david jameson i am the anonymous listener who asked about being unable to stand thanks a lot for your answer it made me think i might have been too self-conscious about the limitations i have and how they can affect my working life having an outsider perspective
Starting point is 00:02:11 that it's fine helps a lot i did talk to my boss before the mass home office started and there were no issues at all great idea about using the invisible pole to float i hope you did that yeah i ignore all the rest of the advice too well i'm glad it helped and then shortly thereafter everybody moved to work from home and then yeah you can lie down and work if you want do whatever you want yeah just turn off the camera lay down this episode is sponsored by vettery a marketplace for finding you a great new job we'll hear more about them later but for now you can go to veteri.com soft skills to sign up thank you to veteri do you want to read our first question dave sure this comes from a listener named t-bone steak i doubt that i doubt that very much
Starting point is 00:02:55 i'm just going to call this person dr steak okay assume that someone who with the first name t-bone is highly credentialed it's like the smartest steak okay dr steak writes i'm a senior software engineer at a fast-growing startup in the past year and a half that i've been with the company i've gone through five reorgs have had five different managers in four different teams each time i sit down to do a one-on-one with a new manager they ask about my career goals and aspirations let me just pause here to say four teams i mean five different managers is maybe normal for that kind of a startup but four different teams like what in like 18 months like every couple months get out of here working on something new sorry i should wait till the end
Starting point is 00:03:40 of the question before i start talking okay let me continue reading dr stake goes on to say initially when i joined the company i was a weak and feeble non-senior software engineer oh boy when i was asked this question then my answer was to learn and grow and have more authority and autonomy over the systems that I build and be considered a senior software engineer. Over the past year and a half, I have proven my worth and paid my dues and got the title of senior software engineer along with the pay raise that came with it. My career development horizon has not been very broad. I didn't even know that there were levels beyond senior software engineer for a long time. I feel like I'm missing out on growth opportunities by not having a clear answer to
Starting point is 00:04:22 this question about my career goals and aspirations please help love your show keep it up thank you thank you dr stake can we quote you and credit your title as well so it gives added weight i didn't even know there were levels beyond doctor but there's a bunch emperor stake doc supreme leader it takes an extra seven years yeah i think a good goal for your career would be, you could tell your manager, I aspire to stay on the same team with the same manager for more than three months. Nice. I don't think I've ever been in a hyper growth company, but this feels hyper growthy to me where things are growing so fast that new projects are springing up all the time and new teams are springing up all the time and people get
Starting point is 00:05:09 shuffled around. This does feel like a downside of that, that you can just get tossed around by the these these waves of growth churning through your company if you're not in hyper growth then it's a bad sign i guess or maybe it's a feature maybe there's some there's probably some like development philosophy where you change teams all the time i was just wondering like if you really are bouncing around managers and it's changing so often at some point i wonder if the managers just realize this and say what are your career goals because there's no way in heck i'm gonna help you get them i've only got two months this will help get you off my back yeah yeah this is interesting it's it's hard so often career growth which is different from like
Starting point is 00:05:50 learning stuff can be tied to relationships you build with people and if those relationships are continuously upended it's hard to do that it's not that it's necessarily political it's like part of how your your growth is recognized by the company is your growth being recognized by people at the company and if you just switch out all the time it's going to be hard so i i think i said that kind of tongue-in-cheek at the beginning about asking to stay with the same team and manager but i think it could be useful to look at why you're getting changed all all the time and if you have any influence over that maybe make that an explicit effort yeah because really continuity is required for some level of career growth i think so yeah unless you're like bringing
Starting point is 00:06:32 the project with you to a new team i don't know maybe that's a thing i mean especially at levels beyond senior engineer it's like you have to show impact over a extended period of time way more than two months yeah or just be so incredible that you have enormous broad impact in two months and then get changed to a different team yep the other thing you could do is like this is like having a substitute teacher every day at school okay did you ever do this thing where a sub would come in and they would say they would ask like what's the rule around this thing and all the kids look at each other and say like, oh yeah, the teacher said we had to play 10 hours of video games on the computers, but you can let us do eight, I guess, and be really strict. Like they, you get
Starting point is 00:07:17 a chance to reset things a little bit. So I think what I'm saying is you can just do a really bad job and two months is just long enough that someone would start thinking, okay, we got to do something about this. And then boom, new team. Reset. Blank slate. Yep. Reset. Oh man. We haven't seen dr stake in months we assume that they have been working but time to check in oh not my problem anymore okay so you're saying leverage the chaos and maybe get a second job and draw two paychecks yeah all right or just work on like the pet project you have that's going to be really impactful and don't do any work for your current team okay carry that project with you oh so so you're saying decouple your impact and your work from the org chart yeah decouple your team and
Starting point is 00:08:04 manager yeah yeah i mean decoupling is a good thing i think you've figured it out loosely coupled yeah i love that you gotta say it in a positive way yes i have a loosely coupled career trajectory i'd like to break these dependencies it's actually coupled to another company that i started working for six months ago yeah that's a hard problem if you're bouncing around so much I think a lot of suggestions I have would play out long term. One thing you could do is if you really have no idea where you want to go is ask for feedback about that. If they say, what do you want to do?
Starting point is 00:08:43 How do you see your career growing? You can say, well, what do you suggest? How have you seen others grow? If they're a new manager, they probably don't have suggestions tailored to you. It might just be more based on what they've seen around them. If you have experience with them and they know you well, then they could start to think about your strengths and weaknesses and opportunities specific for you. But either way, I think it's not bad to ask them for more info. Definitely. In fact, if you ever went to a
Starting point is 00:09:07 restaurant and sat down and the waiter said, what are your goals and aspirations for this meal? By which I mean, what would you like to order? If they don't give you a menu, you'd have a really hard time crafting that answer. And that's kind of a metaphorical way of saying, you should probably turn this back to your manager and say, what are the growth opportunities in the context of this company? Yeah. And your manager's like, I don't know. I've been switched between five different teams in a year and a half. Yeah. You're not the only one. So my wife would thrive in that restaurant where the waiter comes up and asks you what you want to order, but doesn't give you a menu because no matter what happens at any restaurant of any size or fanciness, she always
Starting point is 00:09:53 asks well what do you like we'll go into arby's really there's a menu and she says well what do you like there at arby's i'm trying to think of a restaurant that only sells one thing and we should send your wife there and she could ask well what do you like to order there's probably i mean there are some restaurants where the waiters are rude to you and order for you and that's a feature of it there's probably a right there's like a probably a pickle restaurant where you just get like a big pickle on a plate and it's got a michelin star because it's a really good pickle so are you saying are you saying that you should just turn this question around to your manager and say i don't know what do you want yeah i think so yeah i actually i actually kind of like that so i
Starting point is 00:10:34 actually think you could turn this around and say i'm still working on that what are your career goals and and actually you could ask no really like i'm not really kidding for real yeah like oh okay i mean again you're trying to feel out what's on the menu yeah and for someone who has had kind of a limited view of what the career development landscape looks like why not ask a bunch of people what their career goals and aspirations are including your manager huh i i would laugh because i just imagine like okay now those are my career goals and i'm here to leapfrog you right exactly that's one option pull the old uno reverse card on them all right let's get serious yeah i think i think there are basically three categories of career
Starting point is 00:11:24 aspirations that an engineer can have and i'll start with like the the easier obvious ones the first category is technological which is where you could say i want to become an expert at x where x is some technology maybe it's a programming language maybe it's a cloud platform maybe it's data storage maybe it's machine learning you know these are all like technical categories that you could go into certainly those are career aspirations that you should let your boss know about that you're interested in the second one is more along the lines of like individual contributor career track growth. We saw some titles in this question like staff, engineer, principal. Didn't we see those? Oh no, I think I may have edited those out. That's what they are. Yeah. Staff, principal,
Starting point is 00:12:08 senior staff, distinguished engineer. These are like titles you'll see. And the second category is kind of working up that ladder. And the third category is more about like people management, where you could say, and these are not all orthogonal to each other. Some of these things overlap with each other for example the technology skills might overlap with your interest in becoming a staff engineer but like people management is more is a totally different category where it's like i want to go into management where i achieve our business objectives by leveraging other people by leading other people you know so like that's kind of the menu so like if you were looking at a restaurant menu and it was like here's the dinner menu here's the lunch menu here's the
Starting point is 00:12:47 breakfast menu those would be the three categories that i would consider this landscape to consist of in your restaurant time has no meaning because they have this idea of breakfast lunch and dinner but you can order all of them at any time oh yeah i just want to make sure i understand just to be clear i'm in denny's right now this is now canon soft skills engineering is recorded in a denny's where time has no meaning yeah they've branched out and diversified and now they offer podcasting boots in addition to 4 a.m pancakes in addition to the moons over my hammy yeah i like that idea of it's much easier to for them to give you specific advice if you've picked like a broad track but if you just say i don't know then they'll probably tell you to just work
Starting point is 00:13:37 harder i guess can you just put in more hours and not ask for anything else i think that's that's the sure ticket to career growth you know to be perfectly fair for about i don't know 10 maybe 15 years i really didn't have an answer to this question you know i don't know if you did jameson but i have never had it well not never yeah i've had long periods of total uncertainty and what did you do when management would ask you this kind of question i ran out of the room as fast as possible i just threw down a smoke bomb and disappeared i i don't know i probably muttered something vague about highly aligned and loosely coupled yeah synergy i don't know i don't i don't remember something about synergy
Starting point is 00:14:26 i do remember saying no a few times when people said well why don't you try this thing that seems like it would help you grow and and me saying like i don't think i want to do that yeah nice yeah i did the bad thing the bad thing of just saying no growth for me thank you well i mean like it's it's my my manager trying to help me so i'm i'm vague i don't know what i want and they're like well maybe you'd want this thing and i just say duh no thanks well see you later yeah exactly and then offering nothing in return just then your manager has to go back to their manager and is like well i mean i offered now it's in his permanent record i think there's also another angle entirely that you could consider at least on the menu which is completely exiting
Starting point is 00:15:16 the three categories that we talked about before and going into something like product management program management project management something else that starts with a p and ends with management yeah there's also just kind of entrepreneurial stuff so running your own business maybe you want to do your own thing and you're trying to if that's the case maybe you'd want to go into like a sales engineer role or something to see how that relationship works yep yeah there's a bunch of ways this could go that's the secret menu at in and out i think yeah i would like my career animal style oh my gosh oh yeah i i mean this question it is i think very successful driven ambitious people
Starting point is 00:16:05 have a concrete maybe even written answer to this question but then there's like 95 percent of engineers who are just like i don't know i want to make more money i want to do cool stuff you know they just don't know yeah and it wasn't until very recently that i started to get more serious about my own career future you know until that point i basically said well any opportunity that lands in my lap i'll just think about it and if it seems good i'll i'll go for it but now it's more like i need to start crafting what i want to be in 10 years five years before now i had basically no ability to look beyond next year yeah well i aspire to be like you dave yeah well in all things that yeah great i would like to borrow one pair of shorts soon
Starting point is 00:16:53 do you like cargo shorts because that's all like i love them i know dress for the career you want not the career you have cargo i would like to dress for dave's career cargo shorts sandals that's good okay have we answered the question not not at all but i feel like we've given about everything we can. We've tried real hard. All right, good luck. Good luck, Dr. Steak. If you've been a software developer at the same job for a few years, it might be time to start looking around. Quit your job is our favorite advice, but first you should probably find a new job. Trust me, it is better this way. Check out a service called Vetteri, which matches developers with employers based on what you want, like your location, salary requirements, and technologies
Starting point is 00:17:41 you want to work with i actually signed up myself and within a week they sent me an opportunity that looked really good my current approach to job seeking is tweet dumb stuff and hope the company notices me so this sounds like an improvement i think yeah once you sign up you get a consultant to help you find opportunities i also like that veteri lets you specify your salary requirements early rather than going through the whole interview process only to find out want want your salary expectations were way off that actually happened to me in an interview Would have been nice to avoid that. You can start using Vetteri without reversing a link list on a whiteboard too.
Starting point is 00:18:16 They don't have a coding test to sign up. If you are thinking about taking our advice, the soft skills engineering patented advice in quitting your job, check out Vetteri. Go to vetteri.com slash soft skills to sign up. That's V-E-T-T-E-R-Y dot com slash soft skills. If you use that link, you will help support the show. And if you get a job through Vetteri, they will send you $300. Thank you so much to Vetteri for sponsoring the show.
Starting point is 00:18:39 All right. Do you want to read our next question, Jameson? Absolutely. This is from a listener named Raquel. I career switched via a coding bootcamp three years ago and have been at my current company ever since. The bugs created by my garbage code from the early days made me a big believer in clean code practices. I now feel strongly about using descriptive variable names, avoiding duplicate code, etc. However, my boss slash CTO is on the opposite end of the spectrum. As long as the code works, they do not care what it looks like.
Starting point is 00:19:08 I want to stay at this company because I believe in the product and I love the flexibility of a small startup, but my boss and I keep bumping heads. For example, we recently switched over to pull requests and each PR my boss made included blatant violations of the coding standards document we created together. When I request changes on the pull request, they say they'll do it, but it isn't a good use of our time to rewrite it when the code works. My question is twofold. as the most senior software engineer on the software team how can i go about promoting a quality quality driven approach when the cto doesn't see the value in it if all else fails i'm open to quitting but i don't want to end up at the same boat during interviews what questions
Starting point is 00:19:50 can i ask to find out if the company truly values code quality huh hmm interesting interesting this is not the first time we've gotten a question where an engineering team is frustrated with quality of the code contributions from their CTO. Yeah, that feels like a trope. Yes. There's something about being in a position of responsibility and still writing code that means... I mean, you're not writing code on the same playing field. You bring different levels of power to it, so it's harder to give feedback. And it sounds like in this case, the listener is giving feedback and the CTO is just saying like, nah. Exactly. I don't think so. My code doesn't feel bad to me yeah so i want to look at it from the cto's perspective or what i assume to be their
Starting point is 00:20:38 perspective they're grizzled they're weary they've seen products rise and fall they've probably seen a shell script that generates pearl that generates awk and made a million dollars in revenue and then they saw this like artfully designed carefully constructed tdd everywhere 100 code coverage just disappear into like a puff of a reorg yes some ceo writes a memo and then their project is blown away like a dandelion in the wind and they have a pragmatic approach to life now which is yeah as long as the code works i don't care what it looks like yeah and i feel like this is a this is a spectrum but it's also a pendulum that people oscillate back and forth on but it's also like a a journey that the the more you get into management and leadership the less you're involved
Starting point is 00:21:29 in the nitty-gritty of the code so you feel the pain of bad code less and you also see like the opportunity cost of investing a ton in really good code more yes hmm so maybe they're just right i guess that's the summary no that's not the summary but the summary is like they might have some reason to to value clean code less than you do and if you can get into why that is it might be a better discussion than just like focusing on the specific disagreements of we wrote this document and now you're not following this document and it frustrates me like why i mean do they not see the pain it causes to maintain it later on do they think that this project is all it's just going away so it doesn't matter like
Starting point is 00:22:19 what's what's going on here maybe they're looking at their employment contract going okay three more months until all my stock vests and i can get out of here yeah i'll tell you what though i i have ridden the clean code ship it code spectrum roller coaster for my entire career and it's so strange i will look back at code and say that oh that was garbage I'm going to change my practices and then fast forward a year and look back at that now allegedly clean code and say, wait, this is also garbage. Like, wait a minute. Yeah.
Starting point is 00:22:53 That's another perspective the CTO may have is that no matter how, quote, clean you think your code is, when you look at it a year from now, it's going to be just as hieroglyphic as you thought your other code was. And it's very possible that the code they write is garbage. And there's, there's, there's like a middle ground between over-investing in cleanliness of code and doing absolutely nothing. But it's possible that they don't see that as well. Like naming everything, every variable, some number of eyes. It's like one eye or two eyes or 500 eyes.
Starting point is 00:23:29 That's totally fine. Cause this, cause it's hard to design good code. Like you can have this nihilistic approach to it and you can, I think that's wrong. and you can still be pragmatic and design things well it's just good design is really hard and involves some amount of predicting the future and and maybe they've been burned by predicting the future too much that they've given up completely and you can still say like i mean yeah we might not be able to predict how this evolves but i can predict that 501 eyes is going to be hard for me to figure out what this thing does tomorrow. There's another, I guess we're
Starting point is 00:24:07 kind of riffing on the question asker right now, but we'll come back and take your side here in a minute, I think. But one more thing in defense of the CTO is engineers just have a really hard time naming stuff in such a way that other engineers can follow along. And I call that out specifically because the question asker says using descriptive variable names is one of the criteria of clean code i have seen long descriptive names that are just not descriptive they don't actually describe what the variable or function or class does yeah and it's like i read that and go wait a minute now i have to decipher what this thing does anyway like it may as well have just been called x it's probably harder because it's like misnamed now no that's right like it misleads you sometimes
Starting point is 00:24:53 when you read the variable name and you're like oh i know what that does based on the name and then you and then you make some assumption about what it does and boom you just shipped a bug so i don't know yeah it can be it can be very tricky your cto has figured out how to avoid being misinterpreted yeah make it impossible to interpret yeah don't if you can't interpret you can't misinterpret yeah uh so anyway i mean this is just such it is such a hard thing to do and i i am the kind of person though who loves to make sure that all of the things i write are descriptive and they follow conventions, you know, where I feel like other people who have adopted those conventions could come into my code and they could make sense of what I've done. Yeah. So I believe
Starting point is 00:25:34 in clean code in a certain degree, but I've just seen so many engineers over the last almost 20 years, write things, name things, especially that I'm just like, it's hopeless. I can tell you to make a descriptive name and they'll say, here's one. And I'll say, well, that's describing something else i mean writing prose and code get compared a lot but it's because they have a lot of parallels it's like how you can't edit your own writing you you you spend a bunch of time crafting some prose you believe you have put in enough work to make it good you hand it to someone else and they immediately it doesn't even matter if they're like a great editor if they just read it as a human i'm sure they can find stuff that doesn't make any sense or easy things you missed
Starting point is 00:26:17 you're just too close to it often and and there's kind of a mindset there i guess about the value of other people giving you feedback and it's not is it good to have good variable names or not it's like is it helpful for other people to give me feedback to catch things i've missed and they might think it's valuable to have good variable names but i i did it i named all the variables well so like why are you bugging me right there's there's some maybe some some ego there or something yeah so what do you do about it if if it's causing problems you're having disagreement even though you had i mean it sounds like you did the right thing earlier where you made this standards document yeah to try and make that thing hold people accountable instead of you have to
Starting point is 00:26:56 nag people yeah this is this is the part that is crazy to me like the cto in theory agreed on it and maybe even wrote portions of it and then was like okay well that's nice i'm gonna go write my code now and the way i always have that's just that's insane yeah i don't like that one bit so okay here's here's what i would recommend you've you've done step one which is write a document and you've gotten consensus from the cto about what constitutes good code at your company that's a good first step now you've got to get yourself out of the position of the bad guy you individually should not be the code cop and the way that you do that is you build tools to automate as much as possible of this away from individual review so you set up things like linters and static
Starting point is 00:27:39 analyzers and whatever else you need as part of your pr process so that the robot rejects your cto's crappy code not you i think that'll catch some class of problems but it won't catch everything i mean i've seen some static analysis tools that are good at pointing out duplicate code they're good at structural things that are rule-based because that's what they are usually they're like parsing the st and enacting some rules on it but for variable names how are they yeah i mean they can tell if the variable name matches a format like oh we use camel case instead of right snake case but they can't tell oh this is called concurrent hash map but it actually is not like not concurrent or or you call this a factory thinger like what what does that mean
Starting point is 00:28:27 what is the factory thing or maybe yeah what is a factory thinger maybe that's a sign you have too much abstraction here when you can't even describe what it does right there's still all these judgment things that i don't think you can ever automate away and it comes down to the cto being willing to accept other people's criticism and they're kind of not right now yeah exactly definitely a problem i think you have to you got to get their their motivations out into the open because it really might be that they're saying like i'm trying to keep this company alive and we don't have time to focus on this and like there's something going on besides them just hopefully besides them just saying i'm above all criticism because i'm perfect and and it's possible that
Starting point is 00:29:12 talking about that would help you resolve it more clearly but there's also the second part of the question which is maybe i'll just quit how do i avoid ending up at the same situation right yes that's a good question well there's an assumption here which is that there's a meaningful difference in code quality between different companies have you seen that play out in practice i have seen a meaningful difference in the level of review discourse that goes into code reviews yeah i've definitely seen a meaningful difference in the level of like bugs that survive into production but i i can't say that i've ever seen a team of more than just you know two people that actually i feel like oh yeah everyone on this team is on the same page about what constitutes good code
Starting point is 00:29:55 quality i feel like if i look back over all the places i've worked code quality has been like within some range sort of constant and constant in a bad way yeah constantly bad because it's hard to write good code but then when i think back about the thing in common about all those places the thing in common is that i worked there okay i've worked at every job i've ever had every job i've ever had has had some bad code so maybe i am the problem i guess the summary is it's hard to write good code i believe there are probably companies out there where i think it's probably a bell curve though like most companies write about the same quality of code but there are some places on each end of the bell curve you probably want to find the higher end if this is a
Starting point is 00:30:38 thing that's super important to you i mean i think one question you could ask that has an objectively verifiable answer is what does your deployment system look like and your code review system look like and what you can at least ask the questions you know the stuff that we were talking about earlier that is beneath a judgment call but that a computer can enforce and if a team has that kind of system and automation set up that's probably a pretty good proxy that they also care about writing code that others can read later i would ask to see a code review i think that'd be really interesting can you just show me a like a recent review and what how did it go like you'd see what the pull requester put into it how people reacted to it they could also just
Starting point is 00:31:23 like say no and then or show you one where well no this would tell you something too i was going to say show you one where there's no description and everyone just approves without saying anything that would probably tell you something too yeah yeah you could ask do do managers write code does the cto write code to avoid this specific situation because if those power imbalances aren't there then it's much easier to have a conversation if this was a peer it'd probably be easier to talk through than if it was your boss or your boss's boss's boss or whatever i think there's a healthy tension here if people can disagree productively about this where at each end of the spectrum of code quality or or cowboy code there is some value and some danger and the conflict about what do we
Starting point is 00:32:06 focus on and how do we how do we spend our time is useful because it keeps you from getting too far to one end or the other but that doesn't help you find out what question to ask i mean you could just ask like how do you think about code quality and they'll probably say oh it's good like most people would not say well we hate it we like crappy code but maybe you could ask about that trade-off of like how do you balance tight deadlines with still producing good code or things that are easy to work with later and if they say oh it's easy we just don't that tells you stuff too yeah that's why i like the idea of asking about a code review to see one specifically is it's harder to lie there it's easier to say things that sound good if you just ask questions
Starting point is 00:32:52 but if you're asking to see how it actually works or maybe you ask like can i see do you have coding standards written up somewhere can i see those yeah that's a pretty good signal i am skeptical that viewing a single code review however good or bad it is will give you much signal because i find that without context about the system it's hard to really assess whether this code looks good or not i mean you could do what you said before and just measure the level of discourse that's happening on the review but yeah i think that's what i'd be going for i wouldn't be trying to evaluate did someone write good code or not because it'd be hard like you said to tell but i would i'd be trying to figure out how they talk about code yeah yeah like give me an example of
Starting point is 00:33:28 a code review that included a debate about a variable name yeah that'd be pretty interesting maybe like we don't have those okay well that's a all debates are solved by our naming scheme of some number of i's yeah it's really easy to solve merge conflicts you just keep adding i's until it goes away it's perfect your compiler will tell you if you're conflicting with another variable right it won't tell you when you're using it somewhere else but when you're declaring it yes we got tools for that unique declaration enforcement yep perfect well have we answered the question? I think close enough. It's probably an uphill battle. And over time, you two will be a grizzled, exhausted engineer who no longer cares.
Starting point is 00:34:21 Good luck, Raquel. I hope this works out well for you. What should people do if they want their own questions answered, Dave? Go visit softskills.audio in a worldwide web browser and click ask a question. You can fill out our form there. Thank you so much to everyone who has done that. If you want to support the show, share it with your friends, listen, and enjoy. We will be coming out with our gopher presence soon worldwide web is good gopher coming soon all right i'll catch you next week

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