Soft Skills Engineering - Episode 477: Four months and I already hate my job and grumpy and fuzzy

Episode Date: September 8, 2025

In this episode, Dave and Jamison answer these questions: Hey guys, I have been working for four months at my job and I already don’t like it. This is my first job out of college ...and I work as a C# backend engineer for a small B2B SaaS company. I really think this company is a dead end. There is a lot of technical debt and antipatterns and we have no automated testing whatsoever. Most of our time is spent manually debugging but no one wants to refactor. I’m already thinking about working somewhere else. However, it took me a while to get this job, and I don’t think the market has gotten any better since. I’m trying to decide whether I should focus on applying to jobs again or if I should work on a bunch of side projects and open source to stand out better. On one hand, I can learn new technologies on my own to make me stand out for my next job, but on the other hand, I feel like as long as I stay at this company I am wasting time, since I’m not learning from my job. I want to switch to more distributed backend engineering in Java anyways, but I’m not sure how to go about it. Listener Ghani asks, “I’m a mid-level software engineer who has trouble communicating with my engineering manager and product manager when there is unclear or missing information about an assignment/story/project. They answer with hostile/dismissive tone/non-answer (e.g it’s on the jira-card, epic, etc). They course correct when they have the information later, harshly my impressions were they don’t have the information at the time they expect engineers to make decision they expect engineers to know something they don’t (e.g architecture, infrastructure, past decision, plans, etc) I really want to look for where we can have a safe exchange of information. How can I do this?

Transcript
Discussion (0)
Starting point is 00:00:00 it takes more than replying thread to your own misplaced slack messages to be a great engineer this is soft skills engineering episode 477 i'm your host dave smith i'm your host jameson dance soft skills engineering is a weekly advice podcast for software developers who spend about half their time trying to find lost slack messages and the other half of their time waiting for generative ai to write the code for them i'm befuddled by this intro are you replying thread because you want to be able to find it later i think you're applying thread to bump it back up on your co-workers notification list or is it because you are trying to shame people to say hey you should be threading this message but actually it's your own message so it's like a passive aggressive
Starting point is 00:00:50 call to use threads yeah that would be thread exclamation mark we have an emoji for that in our slack is it is it the thread emoji no it's a little little sock puppet guy oh and is he like made of thread no he's not i don't know why he he says use threads in the little oh above him but i don't know why this particular character is the one i don't know that's not what this is about dave should i thank our patrons let's do it okay thank you to these folks who changed their patreon name to something uh probably pretty befuddling to the folks that work at patreon i would love to get an email from the patreon people one day and be like what have you done yeah every time we send an email to our patrons it says the weirdest things in the in the greeting
Starting point is 00:01:39 yeah yeah how do we how do we tokenize these into first and last name exactly behold let's Normalize calling curly braces squiggly braces, even though they're pretty curly and not so squiggly. I'm a never-ending storypointer.com without AI. Woke up this morning, got myself a gabagool. Matthias, my actual name on LinkedIn, is Yammy. Debugging the dark canny, the mobile development ordinary. First of his name, quote, or one equals one, drop table meow mix.
Starting point is 00:02:09 Jacob Shandling. Bjorn, there's a very particular smell coming from your desk. Please create a spike to investigate. A missing semicolon. Christy, the world's okayest programmer. Noah Lamphart. what's up soft skillet nation it's your boys jnd here to drop some dope wisdom dope daniel remsburg nick molyneux if the service org uses a subsurface organ that controls that the subsurface
Starting point is 00:02:26 organ necessary pretend it's not javier gonzalez chewy ted timbrel princess simon candy cane lollipop chicken bach bach pop pop and dog blueberry pie applesauce snakes input length validator a single open parenthesis oh i appreciate that i think i've talked about that in the past and now now this is a now this is this list of patrons is actually a lisp dan from drone to play chase w norton never is not just a crater on mars flamingo emoji i like chicken i like liver miyamix miyamix please deliver trash panda swiss python summit in october how often do you fetch this took a while kyle voss ken c dodds that guy over there jenny kim the stochastic parrot quinton we have not heard from you in a month please go see susan in hr asap jonathan king's
Starting point is 00:03:11 beautiful functional user documentation you know what we got out now like good one should developers become business creators this episode is sponsored by hor and the rest of your message got cut off dan from drone deploy someone tell will angel how to get the https redirect working for www.vibechart.net ragnar braden canes john grant britney ellick ben and joe cabbage patch wimbledon tennis match thank you thank you one thank you all for supporting the show and for being willing to publicly i was going to say humiliate yourself but i don't think this is humiliating publicly stand out as someone with a unique name on the patreon user list and it's actually remarkable how almost everyone like 85 of these people have literally changed their
Starting point is 00:03:56 patreon profile name yeah i don't know what's more expensive like in terms of actual cost the the fee you pay every month or the the weird social capital loss by changing your profile name to this weird thing i would love to know if these people are patrons of other things as well and kind of what's going on there it'd be funny if some other like some other patreon thing does this and sometimes we see names that don't make sense to us you know because it's like i don't know it's yeah niche vertical yeah maybe that's already happened and we didn't realize i would not be surprised i don't realize a lot of things um if you want to join this group you can go to softskills.audio click support us on patreon where any amount will get you an invite to our slack
Starting point is 00:04:41 team and any uh i guess it makes you a member of the soft skillet nation to use the youtube verbiage and enough we'll get you a weekly shout out and our eternal gratitude we actually got some pretty harsh call-outs harsh in air quotes here from uh some listeners for not addressing them as soft skillet nation in our last episode like we promised oh yeah was it more than one person or was it the same person multiple times i don't know either way there were multiple pieces of feedback clamoring to be addressed the people cry out to be called soft skillet nation yes we are men of the people so so you're gonna do it shout out to soft skill nation yeah that'll have to be the closing though right like that'll be the closing tagline all right okay dave do you want
Starting point is 00:05:33 to read our first question i will this comes from someone who calls themselves close parenthesis which is beautiful because we had an open parenthesis yeah it completes in the patreon so now the lisp yes the lisp s expression has been closed all right so this is from mr or mrs parenthesis who says hey guys i have been working for four months at my job and i already don't like it this is my first job out of college and i work as a c-sharp back-end engineer for a small b2b sas company i really think this company is a dead end there is a lot of technical debt and anti-patterns and we have no automated testing whatsoever most of our time is spent manually debugging but no one wants to refactor i'm already thinking about working somewhere else
Starting point is 00:06:14 however it took me a while to get this job and i don't think the market has gotten any better since. I'm trying to decide whether I should focus on applying to jobs again, or if I should work on a bunch of side projects and open source to stand out better. On the one hand, I can learn new technologies on my own to make me stand out for my next job. But on the other hand, I feel like as long as I stay at this company, I am wasting time since I'm not learning from my job. I want to switch to more distributed backend engineering in Java anyways, but I'm not sure how to go about it. I want to challenge the premise here that you're not learning anything at your job. You're learning a lot about how to do manual debugging.
Starting point is 00:06:50 It's valuable. You're learning a lot about how to work in a code base that is difficult. And first job out of college, technical debt and anti-patterns. I'm also going to challenge that assumption. You do not know what the average professional code base is like. No automated testing. I mean, that's, yeah, that doesn't, that sounds rough. I don't know that I've worked somewhere with literally no automated testing.
Starting point is 00:07:12 But this might be the median code base. right and you think it's horrible because you haven't worked somewhere yet i guess what if i told you that all code bases are horrible yeah every code base that makes money is a nightmare in some way yeah and if you don't think it's a nightmare it probably hasn't made very much money yet yes or maybe you're the one who wrote it i think it might have been enough years that i haven't uh said this little quote about bad code that maybe i should bust it out again you think the time is right jameson yeah i don't know what the quote is but i approve of all your ideas it's like the best blank check of all time yeah okay so uh the quote goes like this or the quote
Starting point is 00:07:59 the coat that was a mix of code and quote it's a code quote a coat there's two kinds of companies those that are embarrassed of their code and those that fail you're saying that the company that spends so much time on the code base that it's it's beautiful it's probably not going to make it because they haven't chipped quickly enough is that sort of it that is for sure one avenue to get to failure but but also success demands trade-offs and rapid bad decisions decisions that are bad in the long term that that make you survive yeah yeah every code base is path dependent in some way if i take close at their word that's the first name i assume close um hey close hey what's up close maybe this is a bad code base yeah and people don't want to refactor
Starting point is 00:08:48 i mean actually not wanting to refactor it can be usually people that write the checks don't want to refactor yeah but say it's actually bad what can you do to learn and improve as a developer while you are working in somewhere with poor technical artifacts and or poor technical practices i feel like there's still stuff you can do to get better and that will give you experience and the answer isn't just jump to a better code base all the time or or if it takes you a while to jump ship you can still benefit from having a job not just because you get to keep paying for life but because you you get to obtain experience that will help you in the future yeah at the very least help you understand where the where kind of the i don't know maybe the word i'm looking for is calibration
Starting point is 00:09:32 it'll it'll give you one more data point on your calibration data set which will help you understand whether things are better or worse at a future place i mean here's an easy well here's an easy thing for me to suggest um nice not easy to do necessarily what if you were in charge what if you were the cto or vp of engineering or whatever the ceo's cousin however however they decide whoever has the final say of technical decisions you have your evaluation of the current state what would you do about it and this can be a fun thought experiment often developers will say like well we need to stop all development and fix this because it's such a mess we're not going to be able to we need to we need to invest so that we solve the underlying technical problems and
Starting point is 00:10:16 then we will be able to go back to building stuff for the company and if that's your answer that's a bad answer um uh that cannot be your answer because that is that is impossible if you are in charge of the company you have customer demands you have revenue targets to meet like the company has to stay alive yes and i i believe that if you say we just won't do anything except maybe break it right at the very the very best case is the customer will see no additional benefit for some period of months right and the worst case is maybe stuff will stop working that right works right and that's 100 of non-trivial refactors involve some kind of breakage yeah that's not a tenable solution especially especially refactors that were like this one that don't have any
Starting point is 00:11:03 automated testing whatsoever yeah i guess i'm saying that can't be your answer but i think you will learn valuable things if you step back and say what if i own this whole problem what would i do about it how would i yeah how would i improve things in a way that still provides some value to the business and correctly balances or correct is hard because i i think it's i think it's tough to empirically prove like this is the right answer but how would i have a justifiable reasonable answer and plan for for the business and the technology that that improves this situation because there's some trade-off there's another great thought exercise on this subject which is take the most onerous terrible anti-pattern filled code in your code base and
Starting point is 00:11:42 then just walk yourself through the hypothetical of what it would feel like to completely refactor that to push that code back up to get deployed to production and have it work i gotta tell you it doesn't feel as great as you might think you know like what i have found is that the idea of having clean refactored code feels a lot better than actually having clean refactored code in my experience for me it depends purely on how much praise and modulation i receive in response for refactoring it if it's this code that everybody hates and then i make it code everybody hates less like we can thank jameson for this yeah thank you for trudging through fire in flame and making it confusing in a different way now yeah now i'm at least surprised by the
Starting point is 00:12:30 new kinds of confusion yeah now it's novel yeah i mean this is yeah this i guess the underlying point is i think this is a problem you can learn from code is bad it's hard to work here okay what do you do about it how do you ship stuff and improve things technically at the same time That's an evergreen skill for every level of engineers. Totally is. I look at this question and I think, okay, this person has code they hate. Okay, I get it. But I actually think there might be a bigger problem here, which is I think this company itself is a dead end.
Starting point is 00:13:03 And that really sucks the joy out of anything else you could do. Even if you do successfully refactor all this code and make it all beautiful and wonderful and no more anti-patterns and you have a bunch of automated testing, then what if the company fails anyway like it doesn't feel great so that that's hard to overcome yeah that's a good point and and i should temper my advice by saying i don't think it means you should just go all in and dedicate your life to this company i think i'm kind of just assuming that you'll move on but like you said the market is tough right now how do you spend your time while you are looking for something else to do yeah and side projects and open source that's fine i think it's probably unlikely you will make a side project that's just awesome enough in your
Starting point is 00:13:47 free time to just get you a job i feel like most side projects i see are pretty shallow and i think a bad side project can be worse because it destroys the mystery yeah where if there's no if there's nothing i can entertain this idea that oh maybe they have great taste and could build excellent stuff they just haven't had time and i see it i think oh no no that's like that's like that famous quote it's better to keep your mouth shut and be thought an idiot than to open your mouth and remove all doubt. Yeah. Can I just say that I actually resonate a lot with this story because my first job out of college was also a dead end company. And it took me a little while to feel it or to realize it maybe even longer than this person because I
Starting point is 00:14:27 stayed there for about 18 months. But I remember working on this. It was a really weird software project. I don't know if I've ever mentioned this on the show before, but we were working in Java on this concept called mobile agents. And when I say mobile, you might be thinking, oh yeah like smartphone mobile like no not mobile apps that you know them today mobile agents that are able to package themselves up and move to another computer and then run on that computer for a while and then package themselves up and move to another computer run on that computer this is a like really fun academic idea that has no real world value or application yeah this sounds like somebody's a chair of a department somewhere that has written a bunch of papers about it it is
Starting point is 00:15:08 100% what this was. It came out of academia. And this company somehow procured a bunch of government funding to work on this and make some kind of weird, viable, semi-viable product that the government would then buy from us. And it was terrible. It was a huge waste of time. It was so dumb. And there is honestly, to me, nothing more demoralizing. To what end? Sorry, I'm just distracted by thinking about the mobile agents thing. What is the problem that solves? Yes, the problem that solves is my bank account didn't have enough money in it, and the government had grants available that would put money in my bank account. I believe
Starting point is 00:15:42 that was the main application for mobile agents. Maybe it's like a durable execution type of... I don't know. I'm going to stop. I will shut my mouth and preserve mystery that I'm smart. I spent a year wondering, just trusting that the people above me in this company knew what they were doing and had chosen wisely and yeah finally i went and found like some online group and i'm like what is the point of this and it was some of the people who had originally originally like conceived of this idea and built the initial implementation which by the by the way was an open source project out of ibm called the aglet project a-g-l-e-t ibm aglets i wonder if that you could probably google that and see but yeah that's what i'm gonna do now instead of
Starting point is 00:16:21 listen to you anyway so one of the people on that on that forum was like i said how come i don't see mobile agents anywhere except this weird project i'm working on and this guy's response was we just haven't yet found the killer app for mobile agents well it's 22 years later and we still haven't found it so it was demoralizing and i gotta tell you like it didn't matter like nothing i did mattered at that company because i knew that it was a dead end and i also knew that i mean i worked on this enthusiastically for the first six months of my profession and we went and took it to a customer site in the federal government
Starting point is 00:17:00 and we presented these things to them and they were like, okay, cool. And that was that. There's like no application. It was completely shelved. And that was devastating to me because I realized that I had put all this love and care into writing the code
Starting point is 00:17:15 and accomplishing all this cool stuff or that I thought was cool. And it was just totally useless. So I quit that job. I first found a new job, but then I quit it. I just could not handle it. And actually, I was so slow and dumb at the time that it took me at least one more project, maybe two more projects with the same outcome. The first one was mobile agents.
Starting point is 00:17:34 The second one was some dumb biometric thing that no one was ever going to use where we just cobbled together third-party vendors. And then some other thing. And finally, I'm like, what am I doing? Like, this is such a waste of my time. And I went and found a company to work for where my work was actually getting productively used by people to accomplish really cool things. and it was a hundred times more gratifying and I was so much more motivated and I just absolutely loved it. So I think there's nothing worse than being part of a company that you think is a dead end. And I would say, get out as soon as you can. Side projects, fine, whatever. Like you can do
Starting point is 00:18:07 everything on this list. You can start interviewing, you can do side projects, you can do whatever, all these things at the same time, but I would recommend getting out. It's just life's too short to work on things that don't make any difference in the world. Thank you for giving good advice and now to google ibm aglets no too late i already did i'm on the mobile agents page right now nice anyways um this is great there's some inspiring quotes especially by andy herzfeld who i think was a big deal in apple days it's the beauty of telescript is that now instead of having just a device to program we now have the entire cloud out there where a single program can go and travel to many different sources of information and create a sort of virtual service
Starting point is 00:18:49 and then the next sentence is the company was unsuccessful however because it turns out you don't need the code to go to the place where the data is you can just ask for the data over the network that's a lot easier it turns out can you imagine like a runtime environment for all your guys can you i mean the trust issues like there was all these certificate things that you like the code had to be signed before it could be shipped over and show that it was from a trusted source i mean it's basically like saying i'm going to create a runtime environment where any virus on earth can come and run on my computer yeah yeah no well i'm convinced don't work on mobile agents i believe that was the question right yeah i think that's what we
Starting point is 00:19:27 i think that's what we came here to answer no i'm gonna make one more attempt to justify my original advice which is i'm assuming you're kind of stuck there for a while and i guess my advice is like make the most of it while you can you can still learn valuable stuff even if it's a dead end and in some ways it frees you to experiment a little bit more because what are you going to do make the company not successful exactly i guess uh good news and no matter how much of a dead end you think that company is there's no way it was as big of a dead end as my company in my first year so i'd say there's probably a good chance you can learn a lot here and do some cool stuff you're better off than dave yeah totally totally this is summary all right have we answered the
Starting point is 00:20:06 question i think so good luck good luck dave do you want to read our next question i could but i feel like i'd be taking the opportunity away from you oh wait you're right this is me i will do it okay this is from a listener named ghani who asks i'm a mid-level software engineer who has trouble communicating with my engineering manager and product manager when there's unclear or missing information about an assignment or story or project they answer with hostile or a dismissive tones or a non-answer for example it's on the jira card or the epic etc then they course correct when they have the information later. Harshly. My impressions were they don't have the information at the time. They expect engineers to make a decision. They expect engineers to know something
Starting point is 00:20:49 they don't. For example, architecture, infrastructure, past decisions, plans, etc. I really want to look for where we can have a safe exchange of information. How can I do this? Oh, very interesting. Boy, I would love to hear the other side of this story from the product manager oh man i i think i do this all the time maybe not as hostile but it's so easy for me to think i know the context here and surely i've written it all down in this ticket and then i look at the ticket and it's like do the thing from the meeting and that's exactly all of the that's everything you wrote it's the only text in the ticket are you are you saying you're a terrible product manager jameson i can be i can be a pretty bad one at times you're capable of it
Starting point is 00:21:31 yep i can stoop to some low depths this story it resonates with me on a deep level like this is the plight of the engineer being given requirements or a specification that is that you feel is just insufficient to actually build the thing happens all the time i feel like there's a couple ways it could be insufficient and one of the ways is someone someone knows or some group of people the the information is out there it's just not communicated correctly or or effectively or in a single place so maybe maybe there is a spec and the spec is detailed and complete and you have to go find it or or go talk to somebody about it and it's in their head or whatever that's one case the information is there it's not there for you in the ticket to gather the other
Starting point is 00:22:19 case is i think scarier which is it's literally not there where you ask questions about what happens when this fails and it's the first time the person responsible for thinking about this has ever thought oh this can fail yeah oh shoot exactly like what happens if you said here you want to display the user's first name with an uppercase letter but 40 of our users don't have first names in the field you know whatever something like that it's like oh now what do we do and i call these things edge cases or i think product managers would consider a lot of these things, edge cases, but engineers have a really hard time distinguishing between what's an edge case that I can decide on and what's a case that's actually so core that it really needs to be
Starting point is 00:23:02 designed into the product. And that is a tricky balance I found where product managers want to do as little of that as possible. And engineers only think about that. And you wouldn't want your product manager to do like every possible edge case because A, they just don't know what they all are usually. And B, that would just be a waste of their time. You know, like they've got a lot of of things to do that's that's higher value so i don't know i don't know where to put this one but i've definitely been that engineer who's like hey what about this how come you haven't thought about this and the product manager is like like frustrated you know and i sometimes perceive that that frustration is pointed at me yeah can't you just can't you just make it work yeah exactly
Starting point is 00:23:40 and we engineers we love this stuff like we love getting into the little details and the weeds about oh what about this edge case oh what about that edge case oh i could write a monad to resolve this edge case you know it's things like that and product managers usually don't don't love it yeah part of it is we're probably going to get woken up when the edge case breaks the system there's some some ownership there of of it's kind of on my head if someone turns out to not have a first name and then yeah the code crashes and then i get paged some of it is i think part of what attracts people to software engineering is is this desire for deterministic things or or things that are correct with a capital C. We want to build systems that are correct. They handle all the
Starting point is 00:24:23 cases in the real world and the real world is very messy. It will continue to throw more edge cases at you that you have not thought of, but it can be gratifying to feel like I have built something so robust that not only does it work, it cannot not work. Yeah, exactly. Exactly. And I've proven it rigorously. Yeah. Behold my type system. Behold the leaning tower of dependent types or whatever yes i think there are a range there is a range of options for how to proceed with this and some of these options are going to be they're going to range from easy to impossible and one of the impossible options is maybe sorry bordering on impossible is trying to convince a product manager that they need to widen the scope of concerns that they need to specify in the
Starting point is 00:25:13 product such as you know like what happens if when an engineer comes back with that like pre-anticipate that stuff and that's that's something that just takes time and training and frankly not a lot of product managers are all that interested and willing to go into it but as an engineer you can you can apply a little bit of professional pressure to your product managers by saying things like i'm sorry it feels to me like this feature is underspecified because of the following six things. Now, would you like me to specify these and implement them? Or would you like to have a hand in it? Depending on how good of a product mind you have, that could be a threat or an offer to help. Do you want to see what my idea of good error handling is?
Starting point is 00:26:01 Oh, I remember I have a longtime friend and coworker who would kind of jokingly threaten product managers to build things like that. And his threat was, look, if you let me design this UI, I'm just going to lay out the widgets like command line arguments just left to right one after the other and when I hit the right edge of the screen I'm going to wrap them to the next line
Starting point is 00:26:19 so don't leave this to me little did he know that technology was beyond us in CSS for quite a while it was cutting that would have been that was the dream of web designers for decades
Starting point is 00:26:32 they were like you can do that to lay stuff out in rows oh my goodness what I wouldn't give and it word wraps oh oh to wrap to scroll you can scroll what this guy says he's not a front-end developer but wow i think from this architecture infrastructure past decisions plans etc that that piece makes me think that either the engineering manager or product manager
Starting point is 00:27:05 they have a bunch of knowledge floating around in their head that isn't clearly communicated and they have a hard time like we all do i guess understanding what the audience already knows and what they don't yeah this is a hard skill which part is the hard skill james the hard skill is i guess there's lots of hard skills in here one of the hard skills is knowing your audience well enough to to write things that include the stuff they don't know and don't write stuff they already do know yeah it doesn't leave room for assumptions or false narratives being filled in Yeah, and I guess the other hard skill is telling your engineering manager, hey, you need to communicate more and making them change so that they communicate more. And by hard, you mean this is a hard, soft skill, right?
Starting point is 00:27:48 Yes, a difficult skill, squarely in the vein of this show and our expertise, which is why I have such a great answer for what to do. Which is? Oh, no. Look over there. A distraction. Look, a distraction. wow have you ever seen such a distraction it's so distracting let's see i'm trying to think of how people have helped me recognize when i'm being unclear in this way i think they've just said it
Starting point is 00:28:16 they've just said hey it would have helped it would have saved us time if we knew all this stuff up front that that one got my attention a lot because i'm very sensitive i like to think i'm sensitive to trying to help the team go faster and areas where i've inadvertently slowed them down feel just painful to me so oh yeah totally this has overcome my distaste for meetings at times or or kind of restating things or whatever is is just this will help it go faster it'll take longer because they'll go down wrong paths if they don't have these assumptions so i think you could pitch it that way if you're getting these tickets and you think there's some underlying plan or architecture you might want to ask your engineering manager hey can you
Starting point is 00:28:56 just go over the whole plan with us we're not going to implement it all at once but it'll help me know what to do about these specific tickets. Help me have some context to hang this information off of. There is something else that I like to do, that I like to see team members do when product managers come with an underspecified product, which by the way, is 100% of the time. Because a fully specified product would actually be all the code is written and here it is. The code is the complete product spec. Or it's like binders and binders of documentation. I think you probably don't want to work in a world where everything is fully specified because it's nice to be able to get stuff done sometimes that's right and when i worked at a mega tech co one of the core like the
Starting point is 00:29:37 most sought after and important engineering attributes that was rewarded financially was the ability to deal with ambiguity it was the number one competency on the promotion chart was how much ambiguity are you able to deal with as an engineer and the more ambiguity you can deal with, the more we're going to pay you. And so here's one thing you can do to demonstrate strong ownership, apply really good professionalism, and I think move projects forward with the least amount of delays. And that is when you receive an underspecified product. Instead of coming back to the product manager and saying, here's all the places where you have failed to do your job. Let's talk about that now. Instead, you come back with your own proposals for how you think these
Starting point is 00:30:19 things should behave, along with the context necessary to understand them. So for example, like, let's go back to that example, like, hey, you've said here, you want to display the user's first name with capital first letter, but 40% of our database records don't have a first name, I propose we show a generic greeting instead, like instead of saying hello, comma, space capital D for Dave, you know, I would just say, you know, hello, exclamation mark, and that's it. And then just put that out there as a concrete proposal for how to deal with the situation. And then go one by one through the most important things on your list and bring those to the product manager. And this will have two very positive effects. Number one, it will allow the product manager
Starting point is 00:30:56 the brevity to just say yes if they like it or the option to discuss. And number two, what I have found is that when you show up with a concrete proposal, it prompts much better discussion to get to a solution. Whereas if you just show up with a proposal, or sorry, not a proposal if you show up just with a problem then the group will just kind of go around in circles well here's an idea and here's an idea but there's something about bringing a concrete answer like a straw man that helps a question get to conclusion and so if you do that i think you can you can really shortcut a lot of this time and you can also sidestep the potential perception from this product manager that you are accusing them of being bad at their job yeah it moves it
Starting point is 00:31:41 from a complaint to a a problem that you're all kind of standing around a circle looking at like huh what do we do about this exactly and that thing in the middle of the circle is not just the product manager yeah it's not it's not hey you you you messed up you did not tell me enough right hey you i love that idea it feels like it might be a little bit harder for the technical things because i feel like those might be a bit more unknown unknowns where maybe there's some giant abstraction over here that you're supposed to use or you can't look at the spec and know the pieces of the technical stuff you're missing yeah that that's totally true but and some of those discussions you don't even need to have other than to say hey just so you know the way
Starting point is 00:32:19 this product is designed the effort levels are going and this this is by the way this is one of the most important things engineers can do when interacting with product managers is communicate effort levels that come with product design choices like i i can't tell you how many times i've heard a product manager say if i had known this feature was going to take this long to build i would not have asked for this feature yeah yeah i think it is pretty rare that there are just these monomaniacal dictators saying like my vision or or nothing i will i would rather kill this company then move this drop down one pixel to the left. Not one pixel further.
Starting point is 00:33:04 Yeah. Yeah, I like the idea of being collaborative about it, bringing straw man ideas or it could be good ideas too, but just having an idea is the first part of it. Unclear missing information. I'm just trying to think about, they expect engineers to know something they don't. maybe maybe that means the engineer doesn't know the abstractions required to build a thing or
Starting point is 00:33:28 doesn't doesn't know that that thing exists i i don't know it can happen yeah i mean that's part of coming up to speed on a code base if they're frequent questions then you can write the answers down i think it's a good thing to do make it leave it leave it better than you found it it does feel bad if you ask your manager a question and they respond unkindly totally harshly rudely that is not an environment i would love to work in maybe you don't have a lot of choice and this is just where you have to work but i think there's a difference between working with people that don't understand what other people know and don't know and working with people that are unkind to questions because you you can't you can't just join a company and learn a code base
Starting point is 00:34:09 and not ask people that know more than you about it like that's it feels so expensive and i would i would hate that pressure of i don't know what i need to know to build this but if i ask this person, they're going to get mad at me and yell at me or type of frowny face in Slack or whatever. We talked about this last week too, about how do you work with juniors? And you mentioned batching up the questions. Maybe there's some stuff around there about how do you gather the information in maybe an easier way, but at the core of it, they have to be willing to share it with you. Maybe they're impatient because they feel like you haven't picked it up fast enough. Maybe there's something else going on there. Maybe they're frustrated with your technical
Starting point is 00:34:46 expertise or something like that yeah it could be and and you know there is certainly this phenomenon where engineers don't know what they don't know when they jump into a new area of a code base and they end up taking time that is really just ramp up time by going down the wrong paths and then you come back and you're like i'm still not done and they're like oh come on engineer you're supposed to be this is supposed to be your job you had one job build the product yeah but that's also just the cost of learning stuff sometimes it is you have to pay the price of developing your theory of how the program works enough to be able to modify it or you just won't be able to any software product manager who's been around for more than five minutes
Starting point is 00:35:28 has already experienced this like hundreds of times where the engineers are like oh we thought this was doable and easy but it turns out there's a dependency here we didn't realize and now we have to update the version of java on this server because we had to do this to get that whatever thing and that's going to take an extra sprint or whatever you know this happens all the time so obviously we don't try to do that as engineers we don't want to do that but product managers who have been around they should understand that yeah not that they're here to respond to that oh they're here i've got them right here in my closet they're all product managers they're so mad right now they're quite uncomfortable both because of the way they're
Starting point is 00:36:10 crammed in the closet and all the horrible bad advice we've given about them they're like i don't know where what's more uncomfortable my physical pain or my psychological frustration with your advice they're both really bad sounds like my work here is done david have we answered this question i think so good luck let us know how it goes yeah good luck what can people do if they want their own questions answered go over to softskills.audio where you can fill out our form and uh thank you to everyone who fills out that form so dutifully more than 40 of you put in your first name which is great and we love the made-up names too so it's almost like we give you an option to say you're anonymous but
Starting point is 00:36:58 quite frankly i'd much rather you be a fake name than an anonymous submission so thank you for all that really love it we love reading your questions and it just makes us feel like we're right there with you at your terrible job suffering aside you and it's there's nowhere else i'd rather be than suffering at your terrible job yes yeah i too would not like to be anywhere else than beside dave that is terrible all right jameson you're gonna give us an our sign off here oh yeah do i just say i know how they do the intro yeah i don't know i don't know it's it's it's your boys j and d soft skill nation signing off all right little little room for improvement but we'll get there i will do better next time i promise all right thanks see y'all
Starting point is 00:37:52 Thank you for watching.

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