Oh No... I Became A Cynical Developer!

Oh No... I Became A Cynical Developer!

• 320 views
vlogvloggervloggingmercedesmercedes AMGMercedes AMG GTAMG GTbig techsoftware engineeringsoftware engineercar vlogvlogssoftware developmentsoftware engineersmicrosoftprogrammingtips for developerscareer in techfaangwork vlogdevleaderdev leadernick cosentinoengineering managerleadershipmsftsoftware developercode commutecodecommutecommuteredditreddit storiesreddit storyask redditaskredditaskreddit storiesredditorlinkedin

From the ExperiencedDevs subreddit, this Redditor wanted to know how and why they became such a cynical developer. Where did they go wrong along the way? Why do developers become so cynical?

📄 Auto-Generated Transcript

Transcript is auto-generated and may contain errors.

Hey folks, I'm just driving to the office here going to experience devs subreddit for this topic and this one is the cynical developer. I thought this one would be kind of cool to talk through. I don't think it's going to take the whole drive, but um I think relevant especially because some people are probably experienced very cynical developers and other people like the author of this Reddit post might be realizing, oh I've become a cynical developer and trying to figure out like what exactly that means for them and how they got there. So their post is really about like hey for for those of you that are like me and started to realize like they're a little bit more cynical as a developer. When did this happen? Like um they were doing a bit of reflection like when I was junior you know I was a lot more excited and eager for things and now you just literally find myself pushing back on like literally everything.

And so I guess the first thing I find very interesting is like for those of you that have experienced cynical developers and you're like, man, this guy's a pain or this guy or girl, whatever, is a pain in the ass. Like why are they pushing back on everything? Why are they so cynical? Um, here's a little bit of insight to the other side. like this person actually has enough um I don't know self-awareness to realize they're doing it which I think is pretty unique. I don't think I would have expected that. Um but anyway, like this person does realize it. So like so why does this happen? In my opinion, like not to oversimplify it, but I think that this probably boils down to most of the time uh getting to a point where you've seen patterns enough times where you've tried to put in time and effort to change things and like it doesn't come to fruition.

And so the more and more you see the pattern where you don't get the result that was or you know intended the more that you become like I don't know almost like trained to think like it's just not going to happen which is totally a bummer but like I mean I think part of it kind of makes sense right from like a when you have scenarios that repeat it leads you to believe like if I if we go to do something that seems like it's the same thing. Why would we expect that it's going to be any different, right? And especially if that's going to take time and effort from you or a team again, like why should we go spend more time and effort again on this thing that we've already seen? Like we've seen this a million times. Why would we go do that?

And so part of me can rationalize why this comes to be. And part of me thinks that in um you know obviously not every single situation but in some situations this can be really valuable right like kind of trying to learn from previous uh experiences right if if we didn't do this at all you could go make a mistake and then or you know do something that's not the intended consequence or the desired result and then like I don't know like a month later someone proposes do the same thing and it's like okay sure and like there's zero input from uh from history I think like that's you know uh bit of an exaggeration but a challenge when you go the complete opposite direction on this so I wanted to say this because I often find a lot of the stuff that we talk about

exists on some type of a spectrum it's very rarely that I see or look at things where I'm Like this is clearly like a you know binary black white onoff kind of scenario and very much like there is some spectrum and maybe we mostly see things on extremes of that spectrum but there's usually you know spots in the middle that kind of uh maybe make the most sense or the most helpful. So I I like teasing these things apart to kind of look at them from different angles on a spectrum and see like you know is there is there a sweet spot, right? So when you're completely cynical and everything feels like we should never do anything and you push back on everything like I feel like that is problematic because then it feels like nothing gets done.

It also means that you know you might be making assumptions about the current state of things where you're like yes we've seen this before you know last 10 times we've done this we've invested into this and it didn't work like you might be making an assumption that is oh this is just the same thing again when in reality maybe it is the same inputs but the environment is actually different or maybe the environment is the same but you actually do have different inputs this time And again, because you've seen the pattern come up so many times, you might be kind of like uh be a little bit blind to some of these other variables that are changing. So, I think that you know that ex that extreme case of just being overly cynical, not a good spot to be in.

But then I gave you the exact opposite thing to think through, which is like if you never used prior experiences and like trying to see patterns and stuff, that's probably also pretty pretty silly because you might just be making the same mistakes over and over and over again. Or I mean, maybe you get lucky and you keep doing the same thing over and over that works really well and you haven't really picked up on the pattern. I mean, that would be lovely. But hopefully that makes sense where I'm trying to explain that I see things on like this spectrum and there's probably somewhere in the middle. It's a good spot to be like how can we learn from our previous experiences and um and sort of do this analysis to go okay it is different this time or it is worth trying again or whatever

or not right hey like yes we have tried this no it's not worth doing again now it might not be obvious to some of you but I am not a psychologist I'm not formally trained in understanding like how how our minds work and stuff like that. Um, and I don't mean to ever sound like that is the case, but um, my, like I said, my my highlevel kind of assumption as to why people become cynical is again, uh, patterns repeating that involves some amount of time and effort being put into them and then uh, not having the desired outcome. And then every time you go do it, it kind of reinforces this pattern of like, why the heck are we doing this again? Why are we doing it again? And you're kind of doubting every single time something that looks similar is brought up. So hopefully everyone's with me so far.

Um, again, I don't know, maybe there's more uh on the psych I'm sure there is a lot more on the psychology part that kind of uh backs up why this happens, but that's high level how I understand it. So, their question really was like I guess it was really more like why does this happen, right? So, I've kind of given you my thoughts on this. Um, you'll probably notice this mostly with more senior developers who have had experiences in different areas, maybe the most tenure developer at a spot. Um, I'm trying to think like I'm sure there were things when I was working at a startup because I was there for 8 years that there were some things that I would be cynical about for sure because you know over the eight years seeen multiple multiple people try um to kind of bring up a similar thing.

I'm very cynical about rewrites like full rewrites of software. Um, I'm very cynical about uh developers. I And by the way, for those of you that don't know, I don't program at work, but I've been programming for over 20 years, and I write code every single day outside of work. So, still love to write software, but um I am very skeptical of uh developers saying like, oh, just uh you want to refactor this? And and using refactor in the true sense. Like when I talk about refactoring online, people try to like attack the the terminology I'm using because I'll say things like, "Hey, if you're refactoring, like you know, um you'll want tests on things. Like you'll want to make sure it's scoped." And people are like, "Look, if you're refactoring, like you're not even changing the behavior. Like you shouldn't need so many tests or like you know, it should be small." And I'm like, "Yeah, dude.

I get it. But like based on the I've seen, I'm pretty cynical. I don't think that people really understand when they're saying refactor, they actually mean some amount of like actual rewrite. I get what the word means. I understand what I'm saying is in practice. I am very cynical around that because I have seen far too many times and I have been guilty of this too where it's like oh just a quick little refactor and you start pulling on that thread and then two weeks later you're like look code still doesn't compile but like we're pretty close and at that point you've rewritten like actually large chunks of the software right so I've seen it and it's not like someone goes into this milic iciously like certainly when I have done it, it's not been malicious, but I've seen it enough times where I am cynical.

It's just how it is. So, um you know, product pushing rewrites or even developers pushing rewrites. Um I'm very very cynical about um I have found that again this is based on my experiences, right? I'm not here to say my experience is the right experience and the only experience. I'm just sharing with you why I kind of find myself in these situations. But I have found that like when uh when rewrites are are discussed, like actually rewriting an entire product, you have developers that generally are like, "Well, we could go build it better the next time." Like we we've learned a lot. We can do it better the next time. even if they weren't even part of the original, they just they don't want to work in the in the legacy code. They want to go build Green Field and they suspect that they can just do it better.

And you have product people that will sign off on this because they get promised things like, "Oh, it will be better and like here's all these good reasons for doing it." But the reality is like the amount of work that goes into a full rewrite is astronomical. And often what will happen is that you'll be missing features because depending on the age of a product or service over time, like if it's, you know, several years old, there's going to be stuff that's added in there that's not like obviously documented and there might be behavior or features that like people don't even really realize. And so reaching feature parody on a rewrite feels like borderline impossible. And it might be that you can, you know, get the core of something rewritten quickly. And in your your most elegant architecture and then paying down the feature parody gap is like takes forever.

And you keep identifying like, oh we didn't think about this feature. like, oh yeah, like we're going to have to put that back in. Um, and you keep doing this and then you realize that you've ended up taking up way more time than expected and you cobbled together some to make these features that you didn't plan for get integrated. So, it's kind of silly, but like um but like this is the kind of thing that happens. And I've seen this happen too many times. So, I am very cynical. There could be great situations for doing a rewrite and I'm automatically going to be like, "Oh, like I don't know. Like, have you really thought about this?" And might be a completely different scenario. Someone might have a lot of really good evidence for it. and like I will just be cynical, but it doesn't come from a place of like trying to be an It comes from a place of like I have seen this go sideways more times than I'm happy to admit.

The same thing when I was talking about like refactoring code turning into like rewrites that take months. maybe not like a full rewrite of a product or service, but like it touches enough of the code base that you're like you're churning the guts of it and I've just seen it happen too many times. Um, I have, you know, I'm just going to kind of keep going through some of these, but I have seen a companies uh, you know, bringing in external hires where it's like, hey, we need new, you know, tier of like management or leadership. will bring in someone and I have seen this be disastrous like many times, right? Trying to bring in someone who must be the expert. They're going to be so great to, you know, to enhance the team and then truly it's the exact opposite, right?

Um it's either they have a net negative effect or there's no benefit and you've now just introduced like one more level of indirection between you know engineering organiz like engineers and like leadership like the CTO. So I I don't know like it's not I'm not saying that it doesn't work or can't work because at one point you know we had someone that was that was brought in and they worked in part of the company and they were doing amazing and then they did step in to do some other role. Um so that one was an example of like an internal movement. They were external at some point and they were great at their job. When they were moved internally they were awesome at their job. So it's not like it can't work, but I have just seen it happen so many times the other way that I am very cynical about it.

Uh at this point in my career, I would be very cynical about uh this is as an engineering manager having a new boss tell me something like oh like don't worry um you know your career progress uh won't reset from your last promotion to the next one. I would, even with all of the best intentions, I will never believe that ever. Ever. If I'm switching uh boss, whether that's by choice or because it's happened, I will fully assume that I am starting from zero. 100% I will never see otherwise. And it's just because again with all these examples, I have seen it happen. Whether that's to me or uh to others or a situation I've lived through or a situation I've heard of from others, I have seen too many examples that have influenced the way that I think about some of these things to a point where I I find it really difficult to see it any other way.

And one of the reasons I'll kind of pause and just you know rhyming off examples, but one of the reasons like this is so shitty is that it in these examples it's pushing me so far to that one end of the spectrum that like there are going to be situations that are outliers from from my lived experiences and I will be cynical and and push back on them like it's uh in some cases self-sabotage. in some cases like not doing the right thing for the team or the product the service for the business and I have to as much as possible try to remind myself like hey when you're feeling this particular way I always say like awareness is like such a important thing because if you're not having awareness of certain like quirks or behaviors you have then you can't do anything about it

right like if I don't have awareness that I'm being cynical then I will end up just being an in a handful of situations like some of them that I just rhymed off to you, right? If I don't have awareness and someone's like, "Hey, like we're considering that we should rewrite this thing." I'm just going to go off the rails and be an about it. Like I don't want that to happen. I don't want that at all. I think there's some benefit to like why I'm being cynical because it's pause like getting me to pause and think like hey like this should raise some red flags for you remember all these times or remember all these lessons learned but I need to also use that as a signal and I say me I mean all of us ideally can use that as a signal to say hey look like your you know your warning signs are are firing but like is this different?

We still have to go do an analysis to go make sure that it's the right decision. So instead of just like having total disregard for something like we need to try and remain unbiased. But that's why I think the awareness part is really important because without it you uh even with awareness you're probably still going to be biased, right? Because we are human and really strong things like that are going to pull us in a direction. But um you know the awareness will help to try and get you to temper your your bias. Um I think for those of us that have more recently lived through experiences where you know you're trying to make progress on something and someone's being cynical like it just feels like a wall of resistance and like that's that's not good, right?

So I shared a few weeks back now um an example like when I joined Microsoft and I was tasked with uh reducing deployment downtime you know I had engineers on the team that were cynical about it they said we've already tried doing this before we already got it to a point we already hit like sort of um you know call like the laws of physics with our technology like we've already done this so like it's not achievable to go beyond that, right? So they're and I'm not saying it's like right or wrong, but like they're being cynical about that ask and you know based on their experience like I think that's totally fair that they're having a reaction to that that's like look look man like we've seen this we've lived through this we've seen this we've you know kind of gone through this story

and they have an opinion about it and this is more than one person by the way which is like even more reason to be like, "Okay, like it's not just like one person having a bad day or something." It's like a couple of or a few people being like, "Hey, just so you know." Um, and like that's there's benefit to that, right? But we don't stop there. We don't just say, "Well, a couple people didn't like it. I guess we just like close the door on that and go to the next thing." It's like, well, okay, like let's dive into that. Let's understand that, right? So, like when I was digging into this kind of stuff, I'm not It's weird because I'm new to the team. I don't know the space. I don't know the technology. I need to learn from them. So, I need them to tell me like, "Hey, like let's walk through this." Like, what what did you guys do before?

Like, how like why did you realize that you hit your limits on this stuff? And like when I shared this example in the other videos, one of the things that I talked about is that we didn't have like very good telemetry on this stuff. And so we have two things that were kind of like a culprit. One is that like we don't really have good telemetry. And number two, this is the kind of thing like that other people um what's a good way to explain this in a generic way? If you have a framework that you own and other teams can plug into it, like they can kind of uh contribute things or have things that run in your framework, then like other people adding things in can cause something to regress over time. And so like those two things together made it so that like you know you go achieve this goal, it feels like a very point in time kind of thing.

And if you just sit back and wait a little bit, it regresses naturally. It regresses naturally because even if you're not changing your code, there's other people that are like putting things in place that cause some of these slowdowns and then they go unnoticed until a a larger period of time and then it gets slow enough where someone's like, "Oh like this is bad again. We really have to do something about it." So again, I very appreciative that they were like, "Oh man, like nope." Like, you know, can't be done. We can't go more than that because that was an opportunity for me to learn from them. But I'm glad we talked about it. And I didn't go into that being like, oh, like don't you worry, like I have the solution. Not at all. Cuz I'm like, okay, this is a pretty big challenge then.

Like I get you guys have done this and now I understand at least like there is a high likelihood of regressing but I'm looking at this like okay like you've told me that you can do it before up to this point. We don't have the granular optics. So in my mind I'm going you know there isn't conclusive data. There isn't conclusive data that says we tapped out. What we do have is like anecdotal evidence that like people got as far as they felt that they could. And like again, not um no historical trending data to say otherwise. So this was the charter. This was the mission that we had and we set off to do it. But again, having a little bit of, you know, cynicism, cynicism, cynicis, cynic, you know, the word I'm trying to say that word. Um, maybe I can even just say skepticism.

Why not? We'll just change it up completely. Um, I'm glad that they were skeptical about it because that got us to have a conversation that helped me learn where they were having challenges. Now, you know, as we navigate that and we started to put some of these things in place, like they came around and they were like, "Hey, look, like we are able to kind of, you know, dig into some of these pieces and oh yeah, like we didn't notice this before cuz now we actually have better visibility and data." So, my point is not to be like, "Aha, like I proved them wrong." My point is to be like, "Hey, look, like they're sharing their perspective on this stuff and having like sort of that reaction to it was extremely helpful, but it was also extremely helpful that they didn't try to like push back so hard that they were like, "Screw you.

We're not doing this. Like, you're wasting my time." Um, and because they were at least open to it, um, I think that's why it was successful. Right. Again, I'm not I shouldn't take credit for that work. They did the work. I just kind of guided them through it. So maybe to kind of wrap up there, I guess I think that it's important that you're using some historical knowledge to talk about these things. So you can say like these are where we had issues. But you kind of have to go through things and try to remove your bias like bring evidence so that it's helpful. You can learn from those lessons. But to um you know to blindly say from the start like we've seen something like this therefore no like it's not in my opinion that's not great and not doing any of that is also not great.

So, um, so yeah, I think that's mostly it. Truth be told, I don't know when it happens that we start getting cynical about things. I don't know how many times it takes. Is it just one time that burns you really bad? I don't know the answer to that. There's probably someone who knows more about psychology that can that can say. Um, I would suspect that even after like one impactful event, you could become pretty cynical about something. So, I don't think it takes, you know, many repetitions to have that happen. But, uh, perhaps across, um, you know, different facets of your career or your outlook on things, it might take enough variety where you're like kind of just feel like a cynical person overall. So anyway, I thought it was a good question. I wanted to chat through it. Hopefully that's helpful perspective. If you have questions you want answered, leave them below in the comments.

You can go to codecommute.com. You can submit questions anonymously that way. And the more context you had, the more helpful it is for me to try and answer your questions. And then of course, I have other YouTube channels. So if you want to learn how to program in C or use AI tools, head over to Devleer. If you would like to uh get your resume reviewed, there's Dev Leader Path to Tech and otherwise I have the Dev Leader podcast where I interview other software engineers. You can learn about their career journeys and some unique things that they're doing as well as on that channel there's a live stream every Monday at 700 p.m. Pacific. So, I'm recording on a Monday. That means I got a live stream tonight. So, I hope to see you on one of those. And until then, take care.

Frequently Asked Questions

These Q&A summaries are AI-generated from the video transcript and may not reflect my exact wording. Watch the video for the full context.

Why do developers become cynical over time?
I believe developers become cynical because they repeatedly see patterns where efforts to change things don't lead to the desired outcomes. Over time, this trains them to expect that similar efforts won't succeed, leading to skepticism and pushing back on new initiatives that seem like repeats of past failures.
How do I manage my cynicism to avoid being overly negative at work?
I try to maintain awareness of my cynical tendencies so I don't automatically reject new ideas without proper analysis. Awareness helps me pause and consider whether a situation is truly the same as past failures or if there are new variables that might lead to a different outcome. This balance helps me avoid self-sabotage and supports making unbiased decisions.
Why am I cynical about software rewrites and refactoring?
From my experience, I am very cynical about rewrites because they often take much longer than expected and miss features, making it hard to reach feature parity. Similarly, refactoring can unintentionally turn into large rewrites that consume weeks of effort. I've seen these scenarios fail many times, so my skepticism comes from having witnessed these challenges repeatedly, not from a place of negativity but from learned experience.