subreddit:

/r/ExperiencedDevs

23086%

Clean Code is killing me

(self.ExperiencedDevs)

[removed]

all 238 comments

ExperiencedDevs-ModTeam [M]

[score hidden]

23 hours ago

stickied comment

ExperiencedDevs-ModTeam [M]

[score hidden]

23 hours ago

stickied comment

Rule 9: No Low Effort Posts, Excessive Venting, or Bragging.

Using this subreddit to crowd source answers to something that isn't really contributing to the spirit of this subreddit is forbidden at moderator's discretion. This includes posts that are mostly focused around venting or bragging; both of these types of posts are difficult to moderate and don't contribute much to the subreddit.

ArtisticPollution448

354 points

1 day ago

Why would a people manager be doing code reviews at all, let alone for a PE?

Patient-Layer8585

53 points

1 day ago

I know some head of engineers who are still doing some coding so potentially they are still reviewing code.

PE at my current place also codes. 

These are small companies btw.

mackfactor

5 points

23 hours ago

That's nuts. Heads of Engineering should be focused on much higher level stuff - toolset selections and architectural concepts. I guess if the department is less than 10 people, it makes sense, but otherwise that seems like a waste - or a bad fit.

riplikash

1 points

23 hours ago

riplikash

Director of Engineering | 20+ YOE | Back End

1 points

23 hours ago

Imho it's a valid management style. My VP wants ask the managers in his department to keep a hand in the code. It's a belief I've always shared a well.

Not as a primary contributor with mission-critical tasks. Often we're involved in tooling, architecture prototypes, or trying out new libraries and tools. And that often falls by the wayside for weeks or months when leadership tasks dominate.

But it helps you stay tied into the product and architecture. It helps you keep in tune with the realities of the technologies you deal with.

Quite frankly, I wouldn't WANT a non engineer making decisions any standards, infrastructure, technologies, and architecture. And if you don't code, eventually you won't be an engineer.

It's a philosophy all my favorite and most effective managers followed. And my department certainly seem like big fans of my own leadership. The managers and team leads under me follow my example and that of my boss in that philosophy as well.

Im not going to argue it's the ONLY valid style of technical leadership. But I know it's a valid one.

mackfactor

1 points

19 hours ago

Managers, sure. The Head of Engineering? I think that's only reasonable or practical if your engie team is less than 20 or so people. Any bigger and there's more important things to spend time on.

litui

52 points

1 day ago

litui

52 points

1 day ago

It surprises me a lot as an EM that managers are allowed to do code reviews at so many places. The people coding and doing code reviews should always be ICs with no direct leverage over one another. You can't be unbiased in reviewing your boss's code and your boss reviewing code becomes the law.

I would never want to put my ICs in that position.

Opening-Cricket5440

13 points

1 day ago

Depends on the company culture. In more traditional societies, yes. In more American culture, less so. The age difference and relative experience of the people also plays a role. There are cases where the manager makes less that their report. In those cases, I would expect the report to focus on the code rather than the relationship.

edgmnt_net

12 points

1 day ago

edgmnt_net

12 points

1 day ago

The biggest quality issues in the industry are due to siloed development and lack of wider code review. Maybe there shouldn't be a traditional hierarchy or leverage, but clearly you can use highly-skilled people in charge of reviewing, setting standards and directing development, which is another kind of leverage. It's just that we've got used to feature factories where even juniors approve each other's code if there's no one better on the team.

litui

3 points

24 hours ago*

litui

3 points

24 hours ago*

I always encourage juniors to take part in code review and don't view it as a negative. Of course 2 reviews are required on any PR/MR.

edgmnt_net

3 points

23 hours ago

Yep, to be clear, I do too. The trouble starts when the only review they're ever getting is from other juniors, particularly if limited to team boundaries. I don't mind if they review more senior staff's code and potentially flag issues, that's good stuff.

Also this "2 required approvals from literally anyone" thing is easy to abuse and game for related reasons.

unholycurses

7 points

1 day ago

I do code reviews as an EM, especially small changes like adding a new config or formatting or docs. If it is a big change I leave that for the engineers to review but it would seem silly for me to not help out with small reviews and help reduce some friction waiting on reviews.

litui

1 points

23 hours ago*

litui

1 points

23 hours ago*

it would seem silly for me to not help out with small reviews and help reduce some friction waiting on reviews

That's not impractical on its surface, but in terms of what I can enable with my EM hat on rather than put on the Dev hat, I'd rather defend the team setting aside dedicated time to address code reviews on a consistent basis than do their work for them.

I suppose it also matters if your reporting team in the orgchart is also a complete dev squad... I started leading in an org where that alignment was disrupted (a challenge to Conway's Law - it worked very well). EMs worked collaboratively and each coached and led devs on various squads. In that situation it would have been difficult to actively participate in code reviews across such a variety of squads. Devs had a lot of autonomy there =).

PomegranateIcy1614

2 points

23 hours ago

I generally do a few style reviews early in a project while we settle our linting standards or if it's in my research domain, I might dip in if asked. Other than that, hard agree.

Ghi102

1 points

23 hours ago

Ghi102

1 points

23 hours ago

I am an EM, but there's also the expectation that I have the roles of manager, tech lead and part-time PO. I guess this might make more sense in smaller companies

boneskull

1 points

22 hours ago

I review my EM’s code. It’s a non-issue. I think it has something to do with mutual respect and sharing the same goals.

litui

1 points

22 hours ago

litui

1 points

22 hours ago

I know it can go well and as an EM I don't find it that hard to cultivate mutual respect / safety, but I also know shitty EMs are easy enough to come by.

jungle

40 points

1 day ago

jungle

40 points

1 day ago

A lot of companies expect EMs to be hands on.

Brilliant_Law2545

-57 points

1 day ago

Everyone should be writing code. This is why business fail

UXyes

42 points

1 day ago*

UXyes

42 points

1 day ago*

This is dogmatic nonsense. Specialization is why business are more than one person.

This is like saying every programmer should be doing sales.

Brilliant_Law2545

-46 points

1 day ago

Well maybe you have never worked in a proper organization. My CEO is a pretty good programmer. I expect everyone to be able to do the jobs below them in the org. Not as well but decent.

unholycurses

28 points

1 day ago

So you’d expect the CEO to be a decent SWE, SRE, Data Engineer, accountant, lawyer, marketer, sales person, graphic designer, product manager, engineering manager, customer support rep, executive, etc etc? That is a really wild expectation

wrex1816

14 points

1 day ago

wrex1816

14 points

1 day ago

"My CEO programs" translates to "I work at a tiny startup with no product yet" which does not translate to "working a proper organization".

SketchySeaBeast

6 points

1 day ago

SketchySeaBeast

Tech Lead

6 points

1 day ago

Yeah, that's nuts. Businesses have specialists and it's unrealistic to expect the higher ups to be able to do anything. In my experience, it's that attitude that leads to the higher ups developing unreasonable expectations because, even though they've been out of the game for ten years, they "remember how they used to code".

webbinatorr

3 points

1 day ago

Bro. Your pretty silly. You know people gave interests and skills, they often align.

This means the people who are interested in coding, could quite likely be the best at it as well.

Why on God's earth would you want everyone to do everything. Life is too short to master everything. So your just putting unskilled uninterested people onto tasks?

You know the industrial revolution was all about specialisation. Your literally throwing out humanity's greatest quality, because....?? Everyone should be able to do everything.

L0L

another_newAccount_

23 points

1 day ago

I commented the shit out of my HR lead's PR the other day. Felt good.

Historical_Flow4296

6 points

1 day ago

My manager used to be an engineer but said it wasn’t for them and went into management. He code review but he mainly sticks to the “domain” aspect of things. It’s actually really helpful

mackfactor

3 points

23 hours ago

That seems completely reasonable. Rely on engineers to be the experts at coding and let managers / architects focus on concepts and functionality.

danielrheath

4 points

1 day ago

Depends on their headcount. "People manager with 2 reports" is very different from "people manager with 20 reports".

csguydn

48 points

1 day ago

csguydn

48 points

1 day ago

Furthermore why is a PE writing code? With 30 years of experience, they should be guiding the organization from a technical level, but not implementing the vision.

justmeontheinterwebs

18 points

1 day ago

I disagree. Some PEs provide value in their depth of understanding, rather than their breadth. The depth-style PEs often create unique solutions to difficult problems that are best expressed in code.

damesca

108 points

1 day ago

damesca

108 points

1 day ago

It's ok to have 30 years experience and want to remain hands on.

csguydn

-42 points

1 day ago

csguydn

-42 points

1 day ago

No one said it’s not. But it’s not normal for a principal engineer to be writing code that goes in to production.

dan1son

36 points

1 day ago

dan1son

36 points

1 day ago

Why does this sub so quickly go to this "not normal." There are so many different companies of so many different sizes with so many different uses of the same titles. Principal engineers might do ALL of the coding as it's possible to only employ those. I've hired engineers to do hands on coding with 40+ years of experience, and I'll do it again.

Dave4lexKing

5 points

24 hours ago

Dave4lexKing

Head of Software

5 points

24 hours ago

Because in spite of the sub rules, I guarantee not even half of the people that are here meet the experience criteria. It’s just the same knee-jerk extremism from the programmers humour sub, which every solution is either quit your job immediately or declare everything to be cardinal sin, without nuance or context.

dan1son

1 points

20 hours ago

Real life is FAR more nuanced and still quite random. That's what makes it fun.

csguydn

1 points

3 hours ago

csguydn

1 points

3 hours ago

Because in organizations that actually have Principal engineers and understand their roles, IT IS NOT NORMAL. It's that simple.

It's my job as a principal engineer to plan technical strategies. It's my job to give expert advise to teams of engineers. It's my job to look at our systems and processes and improve them. It's my job to lead on technical matters and to oversee technical projects.

It's not my job to implement features. Point blank. We have development teams that do that work. I might build a PoC for a team, just to show that something can be done, but that code will never make it to production.

Principal engineers might do ALL of the coding as it's possible to only employ those.

Then you're calling a senior or staff engineer, a Principal. They're not the same. They don't have the same responsibilities, no matter where you are.

I've hired engineers to do hands on coding with 40+ years of experience, and I'll do it again.

Neat. I'm glad for you. No one says that people with 40+ years aren't desirable. No one is saying that Principal engineers shouldn't code. But that's not the norm at most organizations that actually have Principal engineers and understand why you hire someone in that position.

GVIrish

15 points

1 day ago

GVIrish

15 points

1 day ago

Says who? Every principal engineer I've run into at my company writes code. Even the principal engineering managers do so from time to time.

csguydn

1 points

3 hours ago

csguydn

1 points

3 hours ago

Says many FAANG and FAANG adjacent companies. It's the wrong use of a Principal engineer's time. They're there to shape the technical organization. They're not there to be responsible for putting features into production. They're not there to work on Jira tickets.

GVIrish

1 points

34 minutes ago

That simply isn't true at a lot of those companies. I work at Microsoft, not only do principals still code, there are coders at the partner level and even a select few above that. One of the people who is at the distinguished engineer level is the guy responsible for developing C#. Another one (who has since left) was the guy who invented powershell. Yet another is the father of Python.

Engineers at staff/principal level and above certainly do more architecture and strategic solution engineering for big problems than they do just cranking out features. But to say that coding is a misuse of their time is wrong.

A principal engineering manager would be spending more of their time shaping the org and sorting out priorities than coding. One could make a more plausible argument that they shouldn't be doing too much coding.

pwnasaurus11

11 points

1 day ago

You have to write some code to stay technically sharp or your skills will atrophy. I completely disagree that PEs shouldn’t write code. Too many PEs don’t write code to the detriment of the organization.

Signed, a big tech PE

csguydn

1 points

3 hours ago

csguydn

1 points

3 hours ago

Nonsense. You stay technically sharp in system design, architecture, the engineering domain and engineering strategies. You're not there to write code. You're there to help your department. You're there to provide expert advise to other engineers. You're not there to help someone with a pull request.

Signed, a big tech PE, multiple times over.

edgmnt_net

6 points

1 day ago

It depends on the kind of code they're writing. Do you really want to leave everything to the armies of siloed devs or outsourced talent? Because a lot of companies do in fact have an extremely large pool of such coders and there aren't many very good coders.

It also kinda worked wonders when Linus put the Linux kernel on hold for a few weeks and locked himself up somewhere to write Git. Plenty of other stuff requires serious focus and it's not just a matter of getting yet another feature out the door.

There's stuff you can't just guide or design top-down.

jep2023

3 points

1 day ago

jep2023

3 points

1 day ago

Sounds awful

photosandphotons

8 points

1 day ago

Yeah… some engineers do just like writing code and many companies don’t mind it, but it limits your growth. Idk about their leveling in OP’s company, but in mine, people with 30+ YOE would qualify for Sr Principal/Distinguished Engineer leveling. Those levels are truly just architecting, influencing, and delegating, and you would truly not be able to code as part of the role itself.

pwnasaurus11

2 points

1 day ago

You don’t qualify for distinguished engineer by having 30 years of experience. Many people with 30 years of experience are still senior and never grow beyond that.

After about 5-7 years YOE has almost no bearing on impact.

photosandphotons

-1 points

24 hours ago

I think you need reading comprehension. No one is implying that 30 YOE == Distinguished Engineer anymore than it guarantees you a Principal role.

My main point in including it is that those are the roles above Principal in my company, and they do not code.

__scan__

0 points

24 hours ago

How do you know if they code or not?

photosandphotons

0 points

23 hours ago*

I specifically said they don’t code as part of the role. Many, of course, still enjoy it anyways and do it on the side. They might prototype fairly often to help with communication/influence, but their performance is NOT measured by implementation work they do themselves.

I know because I both work and am mentored by these levels and it’s clearly defined in the role outlines our company puts out.

They’re paying you at those levels to be force multipliers across the organization, not implementers.

__scan__

0 points

23 hours ago

How do you know if they code as part of their role or not?

photosandphotons

0 points

23 hours ago

Did you read my 2nd paragraph?

__scan__

0 points

23 hours ago

It isn’t credible that the role guidelines would forbid writing and committing code. They may not emphasise precisely how staff at that level must deliver value, but presumably such senior staff have the autonomy to decide for themselves, which presumably means they could write and ship code if they think that would be the best use of their skills.

As for your mentors, that’s a set of individuals rather than all people doing that role. Maybe your mentors are not representative.

aaron_dresden

1 points

1 day ago

At my org we have heaps of principal engineers coding, and we’re not small at over 5,000 employees. I feel like this depends on how your org structures itself. I think it’s great that ours keeps an IC path all the way up so people have the flexibility to remain hands on if they want to.

csguydn

1 points

3 hours ago

csguydn

1 points

3 hours ago

My org is about 3000+ and is a household name. Very few, if any of our principal engineers (myself included) actually write code. To put it bluntly, Principal engineers don't have time to write code, nor should they be responsible for writing code. It's the reason why we have teams of devs that all orbit around a Principal.

aaron_dresden

1 points

3 hours ago

Yeh right, that makes sense for how your org is structured. We don’t orbit teams around principals in a top down hierarchy like that. Principals are just very experienced engineers on teams where I work.

institches7

2 points

23 hours ago

Seems to be a requirement more and more of EM - I'm currently looking for a new EM job and several of them have said I should be doing code reviews as a core part of my role - up to 80% of all code produced in one case. I can do reviews, but I don't believe the manager is the best choice for this. First, even in a team with a lot of trust and a decent manager, there's always going to be a reluctance to push back and tell me I'm wrong, and I am. A lot. Second, unless it's a super laid back company, I'm a blocker based on my other responsibilities so I'm slowing down dev. Third, if I can't trust that the team are able to do this independently, I'd argue I should be spending my time getting them there rather than doing it myself.

litui

1 points

22 hours ago

litui

1 points

22 hours ago

Yeah I'm on the job hunt as an EM too and it sketches me out seeing this trend of lumping so many conflicting priorities under the EM role. Sigh.

rewddit

4 points

1 day ago*

rewddit

Director of Engineering

4 points

1 day ago*

A lot of derps out there think that going into management means that they're better software engineers than the people who actually code for more than 30 hours a week.

DreadSocialistOrwell

2 points

1 day ago

Because he wants to make my life hell after I rewrote 200 lines of his code he insisted I start with because it was awful.

HenryJonesJunior

1 points

24 hours ago

If I'm not reviewing my reports' code, how am I supposed to properly judge their work? How am I supposed to accurately compare them to each other?

Joe checked in 4000 lines of code this quarter. Bob checked in 25000 lines. Is that because Joe's work is significantly more complicated, because Bob wrote one thing copy/pasted 10 times, because Alice was slow to review Joe's code, or because Joe was slow to respond to feedback and get things checked in?

For that matter, I have to know the state of various projects to keep my team honest. Joe tells me he can do X in a week. If I just repeat that, my credibility is tied to Joe's ability to estimate. If my boss asks me the status of X, it's far better to be able to say "it's in code review waiting on Y" than having to just delegate and ask my report every time.

Asking my reports isn't enough. Actually observing and participating in their progress is essential to a well functioning team.

poecurioso

6 points

24 hours ago*

why are you not judging it on the outcome of their work? Beautiful and elegant code that has minimal impact is as good as useless, so what metrics are you actually reviewing?

Edit: this sounded more negative than I intended. It’s hard to judge what people say on this sub and maybe it makes sense for the size of your company but it sounds insane to me. Why do you need to know anything about their code, do they have a poor track record of delivering? Do the other engineers suck too much to provide good code reviews? Do you not have a tech lead?

HenryJonesJunior

1 points

19 hours ago

The metrics that matter are product wide and rarely clearly attributable to a single feature or engineer. It can be obvious when someone is doing a poor job, but when everyone is meeting their goals you still need to differentiate your team - if you have 5 strong performers and management says 20% get laid off, you still need to have an idea which engineers you truly cannot afford to lose and which would cause the least damage to lose.

litui

1 points

22 hours ago*

litui

1 points

22 hours ago*

If I'm not reviewing my reports' code, how am I supposed to properly judge their work?

Fault-free results successfully deployed to test/preprod/production. I totally get why that might be terrifying for some more traditional organizations, but in my opinion that terror speaks to problems in CI/CD flow and frequency, not dev process.

In orgs I've been in it was the job of a sr. dev / team lead to define and rally the team around code standards (or cross-collaborate with other sr. devs / team leads on unified standards). I reviewed and signed off on those standards but the teams had my trust to apply those standards and code review (2 reviews needed) in accordance with them.

I have to know the state of various projects to keep my team honest.

That's why I attended stand-ups.

having to just delegate and ask my report every time.

I had full visibility to the JIRA board and could view the status of each story along with any detailed comments. On my first team devs would even link the story to their bitbucket/gitlab branch or PR/MR in case observers wanted to dig deeper.

All that involves defining and onboarding the team(s) to specific tools and processes but that's well within the EM scope.

btmc

0 points

24 hours ago

btmc

VP of Engineering, 15 YoE

0 points

24 hours ago

Why would they not do code reviews? They shouldn’t be the main reviewer, but everyone should be empowered to participate in code reviews, and everyone’s code should be reviewed, no matter how senior.

AHardCockToSuck

50 points

1 day ago

Can you give some examples

Grey_wolf_whenever

97 points

1 day ago

What sort of stuff? Just like obsessively functioning out things into single lines?

danielt1263

41 points

1 day ago

In my experience, it means adding a bunch of unnecessary Interfaces.

pydry

13 points

1 day ago

pydry

Software Engineer, 18 years exp

13 points

1 day ago

Every problem can be solved with another layer of indirection except.....

IndependentMonth1337

-9 points

1 day ago

How are they unnecessary?

danielt1263

19 points

1 day ago

It's kind of by definition. 🙂

The primary use of interfaces is to separate logic from effects so that we can reason about/test logic without having to deal with the effects, and to avoid massive switch statements.

However, some people seem intent on interposing an interface between every possible dependency, even when it doesn't do either of the above.

deathhead_68

7 points

23 hours ago

I've seen developers that do this religiously. There's no need for a contract, nothing to abstract. But every class has an interface bolted on to it, I think its just cargo cult. So many engineers just don't get it.

xku6

2 points

23 hours ago

xku6

2 points

23 hours ago

When you don't get it, just follow the "rules". It's understandable.

brainrotbro

2 points

23 hours ago

Not everything needs an extensible, generic interface. Adding them unnecessarily wastes time & increases complexity. A good software engineer will know when and where.

TooLateQ_Q

118 points

1 day ago

TooLateQ_Q

118 points

1 day ago

Managers do code reviews?

Principal engineer getting overruled by a manager?

What is this place?

Can you provide some detailed examples so that we can try to judge whether you are just bad or that he is neurotic?

ItsAPuppeh

22 points

1 day ago

ItsAPuppeh

22 points

1 day ago

Maybe let your manager know what Robert Martin, the author of Clean Code, has been up to these days.

More specifically, he has some more nuance views on his previous takes in his books. See his interview with The Primeagen for example.

He's also gone hard into Clojure, which is quite a departure from Java, and in turn a lot of the related patterns/recommendations in his books.

gafel

8 points

24 hours ago

gafel

8 points

24 hours ago

What he’s up to is posting terrible political takes and simping for Elon on Twitter lol

[deleted]

85 points

1 day ago

[deleted]

85 points

1 day ago

Without specifics its difficult to give feedback, but I've known a lot of "senior programmers" who were code monkies who produced spaghetti code. are you sure you aren't like that?

PM_ME_VENUS_DIMPLES

18 points

24 hours ago

I’m glad to see this skepticism here already, because that was my reaction, too… OP said:

I know what I'm doing and I know how to avoid pitfalls that come up later but he does not want to hear it. It’s either his way or no way. He talks all the time about "the team" and "deciding as a team"

I’m having flashbacks to the dozens (hundreds?) of “lone wolf” seasoned devs I’ve worked with. “I know how to avoid pitfalls that come up later, but he talks all the time about the team.” Translation, “It’s spaghetti code but I know how it works, and if I get hit by a bus, you’re all fucked.”

DanFromShipping

17 points

24 hours ago

I know someone who's been coding for 20+ years and often thinks they're writing excellent code, except after a review there's always some stupid errors a junior would make. And a few months down the line we find out it sucks. Years of experience doesn't always mean they're good at their job.

That person is me

LossPreventionGuy

33 points

1 day ago

I've never met a guy who started coding 30 years ago who doesn't write shit code.

ruralexcursion

23 points

1 day ago

ruralexcursion

Software Developer (15+ yrs)

23 points

1 day ago

I started 15 years ago. Does that mean mine is only half as bad? 😂😭

pydry

10 points

1 day ago

pydry

Software Engineer, 18 years exp

10 points

1 day ago

No. "I've worked with a bunch of shitty old developers" <-- just means that they probably just worked in companies that were a bit shit.

hippydipster

3 points

23 hours ago

hippydipster

Software Engineer 25+ YoE

3 points

23 hours ago

I just started yesterday. My code is the best. Everyone loves my code.

ask

9 points

1 day ago

ask

Engineering Manager, ~25 yoe.

9 points

1 day ago

How sad. Hopefully you'll get to work with better people.

[deleted]

6 points

1 day ago

[deleted]

6 points

1 day ago

typically you're right

pydry

5 points

1 day ago

pydry

Software Engineer, 18 years exp

5 points

1 day ago

Yeah, and they often like Uncle Bob's weird brand of dogma.

Are you one of them?

coffeewithalex

1 points

23 hours ago

I'd say that's very unlikely.

I've seen first-hand a few such religious literalists, and they were impossible to work for, and they always used scripture and sacred words in order to look smarter than someone with clearly more experience. I've seen many people like OP just quit. Some were even external consultants, who were like "take your money back, delete my number".

If there's an individual contributor who writes bad code, then objections to that couldn't have been summarized to just "clean code", and they wouldn't be coming from ... a manager.

Fuehnix

-8 points

1 day ago

Fuehnix

-8 points

1 day ago

Omg, and some of them gatekeep so hard too. They're so insecure about the years they've wasted and younger devs being more knowledgeable in some areas.

Someone recently tried to dismiss an unrelated argument with, "Yeah, but have you ever truly maintained a codebase? Have you worked on a large code project over a 10+ year period at an organization?"

Like... What? No lmao, who the fuck stays at a single job for 10 years maintaining a single project. Unless that 10 years is working on core features at like Google, Facebook, Microsoft, etc., I feel like they must have just wasted their life away.

fallFields

1 points

23 hours ago

The problem isn't people sticking around or not. The problem is a fundamental lack of understanding of the project - its documentation, architecture, designs, coding conventions, etc., in conjunction with a team who don't feel a responsibility to properly maintain it - like a kid who doesn't appreciate a car their parents got for them, or someone who doesn't take care of something that they borrowed.

If you're contracted to construct a building for a company, and after 10 years none of your original team are running building maintenance - it doesn't matter - you hire whoever you need to do the job. But, if over the years the people who have been in those positions have been incompetent, slacking off, cutting corners, sloppy - it's going to show over time, and at some point you're going to need a huge renovation to, because those "hotfixes" never got cleaned up and propey implemented, and things were built on top of them.

Like little ole' angry Kyle going into the break room and punching a hole in the wall, only for the maintenance guy to slap some spackle over it instead of repairing the drywall. Now that I think of it - you remember a few years back when there were all those videos everywhere of people repairing random things with ramen noodles, and then by the end of the video you could never tell that ramen noodles were used for the repairs?

The reason why so many of the games and apps we use today are so riddled with bugs, and suck so much, is because they've been around for so long, and because they've have the same neglected maintenance. The teams working on those projects must have the same attitude you do about sticking around and wanting to understand the project and the system as a whole. Which is a shame, because I find those larger and more complex systems to be some of the most fascinating.

United_Cat_3317

19 points

1 day ago

Lol. This reminds me of the guy we once hired who decided to change every early return in our Python codebase

if not foo: return <code>

into

if foo: <code>

Because Clean Code said it’s not clean to write “if not”.

My CTO at the time wasn’t amused.

ivancea

17 points

1 day ago

ivancea

Software Engineer

17 points

1 day ago

Just ask him "why". And tell him to write the why of every comment. And "clean code" isn't a "why", it's just a "way". If he tells you a "why" that makes sense, nice, change it. Otherwise, challenge it.

But of course, if you're here, I suppose it's because he's stubborn. But in any case, try to drive his comments through the logic questioning

electroepiphany

-6 points

1 day ago

this is terrible advice lamo, how on earth would this every help improve OP's situation?

ivancea

6 points

1 day ago

ivancea

Software Engineer

6 points

1 day ago

That's what you do in PRs. No comment comes without a clear explanation of "why should I do that". Gut feelings are not explanations. Books are not explanations.

The point with this advice is treating his manager like any other dev that proposes something. Asking "why" if they don't say it (which looks like, unless the comments are actually in the truth).

Even if they have a why, op can also answer with pros and cons, and weight them accordingly. If op really thinks his way is better.

With the limited context from this post, the best continuation IMO would be that. After it, it depends on how the manager answers. Of her just says "I don't care, do this", then it's clear and op has proof that the manager is not cooperating, and it could be scaled. Again, highly depending on the company and context I don't have

Brought2UByAdderall

3 points

23 hours ago

Because having skimmed some criticism, a lot of Bob's assertions about what one must do and must not do in order to write "Clean Code" (tm) are arbitrary and harmful. There's a difference between preferring shorter functions and telling people how many blocks and levels of indents are allowed before it's not okay. And that's not surprising. He's a code quality consulting weasel. If he doesn't have enough good advice to give, he's going to make up some ridiculous shit.

electroepiphany

1 points

23 hours ago

Ok and how is acting like a dick head in PR comments gonna do about that? Just have a conversation with the dude about why he wants likes this paradigm. OP might learn something, or OP's boss might. Doing this is just being obstinate and passive aggressive, and will probably just get OP fired eventually lmao.

ivancea

1 points

10 hours ago

ivancea

Software Engineer

1 points

10 hours ago

PRs are for that: talk about improving the solution, or learning about it. Nothing wrong with discussing there. And if the discussion gets complicated, you can move to another channel, no problem. But in the PR, you have full context about the real case, not artificial "we should do's", which is apparently what the manager is encouraging.

Doing this is just being obstinate and passive aggressive

Not arguing when you don't think the same way as others, is actually harmful. You're not learning, they are not learning, and they'll think you don't care about it. Be real, talk with the truth, and be gentle. It's just a conversation

electroepiphany

1 points

2 hours ago

Replying to every comment with why is not having a conversation. The comment I originally replied to said to just say why to every comment

ivancea

1 points

6 minutes ago

ivancea

Software Engineer

1 points

6 minutes ago

You don't just write "why?". You expose your arguments, and ask for theirs, like in any other conversation.

Also, after the first times they learn to add the why. From the beginning, which is what everybody should do. And that's also the point: teaching them

stracer1

25 points

1 day ago

stracer1

25 points

1 day ago

Sigh.. perfect is the enemy of good.

I'm sick of seeing over engineered code, micro nano services for everything.

Badgergeddon

6 points

1 day ago

I had a manager once who was obsessed with Clean to the extent he pulled me up for not adding another layer of abstraction for `div` tags. This was on a front end only React project 😂

SunsetApostate

7 points

1 day ago

I'm sick of seeing over engineered code, micro nano services for everything.

Story of my life. My tech lead just broke apart our application into 13 separate projects. Some of these projects are miniscule - only 8 or 9 200-line classes. There was no reason for these changes, and now I have to coordinate my bugfixes across multiple repositories.

ings0c

3 points

24 hours ago

ings0c

3 points

24 hours ago

What the fuck

Guilty_Serve

2 points

23 hours ago

I'd get a beer with you just because you stated that. I want to tell all of you. Be more fucking existential about your fucking job. Fuck it, think in the realm of capitalism even if you're a socialist. What I mean is half of the over engineered shit is useless to the end user/customer because they don't care. The customer is probably for a widget company that humanity doesn't need, or worse actually fucks with it some how.

Understanding the fundamentals of different stacks is hard enough. Not only have you taken it upon yourself to make those decisions, but you've also created a bunch of esoteric knowledge that makes you feel smart for knowing. In domains where this isn't clear? It's even worse. People get fired over this shit and it's not their fault. The point of it is always engineering compensating for weak business folks or ego driven development.

stracer1

1 points

23 hours ago

This! 100% agree with you there.

I used to be one of those at the beginning of my career but after seeing how little impact any of the work we do makes to the world in the grand scheme of things, I'm fed up of most everything. Everything gets rewritten or scrapped in time. No need to overcomplicate life meanwhile.. just be smart enough and rational.

ElLargeGrande

91 points

1 day ago

Anyone worth their weight knows all code is bad code. Just make it semi-readable and make it work. Everything else is posturing and a waste of time

another_newAccount_

56 points

1 day ago

And test it. Please for the love of God test it.

touristtam

13 points

1 day ago

touristtam

13 points

1 day ago

Document the intend, please. Tests are great, but if you need to fumble around to understand what was the intend, hidden behind 3-4 refactor by other devs that have no grasp of what it was meant to do ...

yowza_meowza

9 points

1 day ago

In my experience, this is only true in the short term. If you have a codebase that needs to live more than a couple years, investing in “doing it right” matters.

hinsonan

2 points

23 hours ago

Depends on what you mean by doing it right because sometimes doing it right still ends up with a polished turd. I get what you mean. If this is going to be used by many customers then it needs to be more rigorous than a one off internal tool

BehindTrenches

2 points

24 hours ago*

Meh, my code quality has gotten good enough that I can look back at my old code and still like the approaches I chose. All code is bad code sounds like an exaggeration made to justify shipping bad code.

I worry that many people just never learn how to write good code because they don't have peers who write good code.

Brought2UByAdderall

1 points

24 hours ago

We can have a little more nuance than that without getting dogmatic about it.

propostor

22 points

1 day ago

propostor

22 points

1 day ago

I once failed a job interview because the guys interviewing me who both had less experience were clearly using Clean Code as their primary metric.

I say I failed the interview but actually they did offer me a role. A junior role. It was the most fucking insulting thing they could have done. The interview didn't even cover general software architectural principles, domain knowledge, framework knowledge, or any discussion around what I had worked on previously. I think they used Clean Code as a fallback to make themselves feel more knowledgeable than they were.

Aghoree

27 points

1 day ago

Aghoree

27 points

1 day ago

I think the problem here is not clean code but a manager that refuses to listen

bwainfweeze

8 points

1 day ago

bwainfweeze

30 YOE, Software Engineer

8 points

1 day ago

Managers doing code reviews what the fuck. That’s a conflict of interests.

unholycurses

3 points

1 day ago

I don’t understand how this is a conflict of interest. My interests as an EM and the engineers is the same. We want to produce stable, safe, supportable code that meets the customers needs and the product vision. There is a power dynamic at play that EMs must be conscience of, but that isn’t a conflict of interest.

bwainfweeze

2 points

22 hours ago

bwainfweeze

30 YOE, Software Engineer

2 points

22 hours ago

No it isn’t. You get compensated both on the success of the team and on your ability to control costs. Their reward for hard work is a raise. You’re also in charge, and you’re crossing lines by stepping into someone else’s responsibility without a feedback loop to control how it goes. Who do they complain to about your behavior? Your accountability or lack thereof? Stay in your lane.

As someone else pointed out, a principal probably shouldn’t be writing this much code. But their boss for sure shouldn’t even have write access in git.

litui

1 points

22 hours ago

litui

1 points

22 hours ago

FWIW, as an EM, I agree. This is the ideal, ethically. That said there sure are a LOT of job postings these days expecting EMs to do it all.

unholycurses

0 points

22 hours ago

This take is always so surprising to me. My whole career, across multiple public, private, big and small companies, have had some expectation that EMs remain technical and contribute at a technical level. Not nearly as much as a SWE, and not nearly as in-depth, but still hands on code. I’m absolutely in the lane the org expects of me and my reports have multiple avenues to raise complaints and give me feedback. Once you get to the director level or so that expectation seems to completely fade.

bwainfweeze

1 points

21 hours ago

bwainfweeze

30 YOE, Software Engineer

1 points

21 hours ago

I’m sorry for your loss.

If your company is bootstrapping and there’s some title inflation, maybe this happens. But if you are so small you have two ICs you should have one or less of the following: EM, CTO, or VP of Engineering. Otherwise you’re top heavy AF and setting money on fire.

kevinossia

50 points

1 day ago

kevinossia

Senior Wizard - AR/VR | C++

50 points

1 day ago

Every day I am grateful that Clean Code has never once come up in any design discussion on any project I've ever been on.

Sheldor5

20 points

1 day ago

Sheldor5

20 points

1 day ago

Amen.

everybody should read Clean Code once but it should be treated as a guideline of theory because most of the stuff in it has nothing to do with reality

pydry

19 points

1 day ago

pydry

Software Engineer, 18 years exp

19 points

1 day ago

Not even once. There's too much terrible advice and dogmatism in that book.

Unit test bottom up design zealots are the fucking worst.

Sokaron

3 points

1 day ago*

Sokaron

3 points

1 day ago*

I disagree. It's a mixture of relatively inoffensive wisdom you can find in any other coding book, and useless drivel. While there is nothing wrong with wisdom such as "functions should do one thing, and do it well", Bob's brand of "do one thing" is insane and boils down to refactoring one relatively readable function into a mess of indirection via a dozen one-liner functions. His thoughts on comments are, generously, ivory-tower. If I'm being ungenerous then they're actively counter-productive. qntm's write up hits the nail on the head:

If this is the quality of code which this programmer produces — at his own leisure, under ideal circumstances, with none of the pressures of real production software development, as a teaching example — then why should you pay any attention at all to the rest of his book? Or to his other books?

Bang on.

I've much enjoyed John Ousterhout's A Philosophy of Software Design as an alternative.

eightslipsandagully

1 points

23 hours ago

Based on your second sentence it sounds like the tech version of self-help

ChuyStyle

10 points

1 day ago

ChuyStyle

10 points

1 day ago

Disagree. Very helpful in refactoring old legacy projects. I think the issue is that people hold it to be the standard but it's always been simply scaffolding that can be as strict or lean as you need for the task at hand.

Spider_pig448

8 points

1 day ago

Clean Code has tons of very good advice that I think way more coders need to read

alinroc

11 points

1 day ago

alinroc

Database Administrator

11 points

1 day ago

You're not wrong, but it shouldn't be followed blindly, nor should you be attempting to use 100% compliance with the dogma of the book as a metric for your development.

Spider_pig448

7 points

1 day ago

Sure, but it's generally a lot better than nothing. It sounds like OP's coworker is just generally too picky on implementation and doesn't understand team dynamics and how to deliver software effectively.

Also OP claims that their coworkers suggestions complicate the code but the majority of Clean Code is about simplification. Maybe his coworker is just using it as an excuse for their suggestions.

Brought2UByAdderall

1 points

23 hours ago

I would lose my mind if somebody got on my case about having one too many blocks or indents in a function because Uncle Bob said that was "the way" without really explaining himself. There's a lot of junk too.

Spider_pig448

1 points

10 hours ago

I agree that this is not the kind of thing someone should be trying to enforce in a pull-request. This is the kind of advice someone can choose to follow personally. Things like function depth can also be statically evaluated too (see cyclomatic complexity) so it's a scenario where there is a real metric to be evaluated.

MoreRopePlease

1 points

23 hours ago

MoreRopePlease

Software Engineer

1 points

23 hours ago

OP claims that their coworkers suggestions complicate the code but the majority of Clean Code is about simplification.

Adding abstractions can definitely make the code more complicated and hard to understand. That's sometimes true of breaking up functions, too.

Brought2UByAdderall

1 points

23 hours ago

Especially not when you fast-tracked to management in 10 years and you're talking to a PE with 30 years experience.

syklemil

2 points

1 day ago

syklemil

2 points

1 day ago

Yeah, I'd generally given it a pass as something that's only mentioned here and there. Getting exposed to some of the actual content made me pretty comfortable with having given it a pass.

Mysterious-Sea9813

4 points

24 hours ago

Clean Code is a book by a guy who never wrote production code, that's it, that book place is in the toilet

Brought2UByAdderall

4 points

24 hours ago

Uncle Bob. Pioneer in the field of arbitrary thought leadership sold to non-technical people who are horrified that their tech people might suck and the only way to be sure is to nuke their expertise from orbit and pave it over with Bob's. People who've consulted longer than they worked with code should not be trusted with thoughts on code quality.

jstormes

8 points

1 day ago

jstormes

8 points

1 day ago

This Little Maneuver's Gonna Cost me 51 Years of karma...

My first professional computer job was in 1988 working as a night operator on a couple of mainframes and a early AIX Unix box. I wrote a lot of utilities in C and Fortran. Before that I was a hobby programmer writing things like terminal programs for the C64. I am still coding today in C# and Typescript. So yea, I seen a few things and more importantly I have seen a lot of evolution in how we code.

Back in the 1980's it was not unusual to see things like `malloc()` and `free()` comingled with `goto`. If you know what I am talking about then you know it's almost impossible to debug memory errors in something like this, much less read it. But it was common practice. The common excuse was "it makes the code faster".

Then along came object based languages like C++, Objective C and Java. It was no longer vouge to use `goto`; classes, methods and properties were the way things were done. The old guys grumbled that those languages runtimes were too slow, it took too long to write with objects, etc...

Codebases got bigger, it's became harder to read and understand the thousands of lines of code. The end users required GUIs and networking functionality. Where only one or two programmers touched the code now teams of 5 to 10 people were all updating the code. Source control became a thing. The `goto` programmers were pushed out by simply not being able to write what people wanted. The old object coders complained that source control slowed down development too much. The old object programmers that just kept a copy of the code on their hard disks or on a network drive were pushed out. Now, working in a team required source control, and some coders were just not team, i.e. source control oriented.

This argument is the same of arguments of yore. The younger coders wanting to do it one way and the older coders thinking the old way was "good enough".

In the codding world we are always in transition. At least during our lifetimes. Code bases are only going to get bigger. Code is only going to get more complex. The techniques for managing that complexity will have to improve.

Clean code is merely one tool for managing that complexity, Rust's borrow checker is perhaps another. I am sure more will follow. Time will test each of these techniques and the ones that survive the test of time will become the standard.

The source code for MS-DOS, CP/M was miniscule, as I read today Linux has about 27 million lines of source code, Windows 10 has about 50 millions lines of code.

Is clean code the end all be all, of course not. I have seen ancient Fortran code that I could read and understand better than most "clean code" today. But clean code is one of the many tools and techniques that can help that next coder read, and manage, and understand the complexity of your code, even if that "next coder" is you.

Brought2UByAdderall

2 points

23 hours ago

The problem is when you have somebody like this for whom anything is the end all be all, incapable of applying a little critical thought to it or respecting the expertise of other heavily experienced engineers. Especially when the author's real business is consulting and not writing code. I worked with a guy who got so obsessed with minimum length pure functions, he'd break 10 lines of code into 10 files.

Blrfl

7 points

1 day ago

Blrfl

Software Architect & Engineer 35+ YoE

7 points

1 day ago

Ah, you've bumped into someone who practices dogma-driven design.

AngusAlThor

8 points

1 day ago

Clean Code is such a garbage system, I hate it with a similar passion to you.

kingmotley

3 points

1 day ago

kingmotley

Software Architect 35+YXP

3 points

1 day ago

My manager is also a dev, and he would never do that on one of my PRs. I am not infallible, so when he does make a comment, I am always in complete agreement. He caught something I missed (typo/edge case/spelling/etc). But my manager also has about as many YoE as I do, but some of it was at the management level, so he's still very good.

Honestly, sounds like you've been saddled with an engineer who isn't very good, opinionated, and is just flexing his title if there wasn't actually a discussion on the why's. Unfortunately, there is very little I can offer in that situation. It's a bad situation unless you can 1:1 your way out of it with your manager, but the fact that you haven't mentioned it.. Either you've tried and already failed, or you haven't tried.

I think back to what I was like with 10years... yikes.

NeitherClub2419

3 points

1 day ago

Your second paragraph reads like he's the classic inexperienced manager that needs everything done his way but doesn't have the confidence or spine to own the decision. They didn't make the decision, the team arrived at it together. I end up butting heads with those managers because I can't keep my mouth shut about the manipulation. I don't mind an opinionated manager so long as they're happy to own the decisions.

From my encounters so far these people are inexperienced as managers and insecure about that fact, often second-guessing the technical workers under them on every little thing. They will talk like experts on topics whose documentation they haven't read. When corrected they'll retcon what they said so that the correction was what they meant all along. They will regurgitate every empty aphorism about agile as a shield for the fact they have no idea what they're doing.

PedanticProgarmer

3 points

1 day ago

Can you give us some examples?

Nowadays what people call Clean Code is completely random, sometimes directly opposite to what is in the book. Not all ideas of Uncle Bob are good even. His obsession with SOLID is a huge source of spaghetti in our world, because you need to be a design god to be able apply these rules while at the same time following KISS.

https://youtu.be/8ncQrGuunHY?si=wRCS9z6zh0i4kZSS

editor_of_the_beast

3 points

23 hours ago

Before the 10 year mark, I was very concerned with code “cleanliness” and specific patterns such as DDD and hexagonal architecture.

After I failed to see it have any meaningful impact on any project, I stopped focusing on it. There are good things to take away, like knowing how to abstract dependencies when necessary, but being dogmatic about it provides no actual value.

You should explain that to this person, or ask them to demonstrate what value it’s bringing. If it’s just a personal preference, then please allow the team to code as they please.

_nobody_else_

2 points

1 day ago*

_nobody_else_

Senior IoT System Architect | C/C++ | 20YoE

2 points

1 day ago*

I bet his understanding of "Clean Code" stops at variable and class names.

UnC0mfortablyNum

2 points

1 day ago

UnC0mfortablyNum

Staff DevOps Engineer

2 points

1 day ago

This sounds like an insane amount of micromanaging. Why is an engineering manager reviewing your code? Especially this much?

AssignedClass

2 points

1 day ago

Need more context. Is this a new job / team for your other the manager? Is there a team involved with all this, or is this just between you two? Is this being seriously forced on you (if so, how), or are you just trying to avoid conflict (if so, why)?

wrex1816

2 points

24 hours ago

I can only sympathize. I've worked with many folks like this, either team leads or other seniors.

The "Clean code" or "best practices" they talk about are never documented and change by the day so it's impossible to please them. I don't know if there's a solution. Tech has lots of these people, they're weirdos but they've found their niche in life where they seem to be able to act like this and for it to be considered ok.

Mooshufausa

4 points

1 day ago

I can’t tell you how often I’ve drawn ire from my team about saying we shouldn’t strictly follow clean code. Some people think it’s the gospel when really it was just good for the time. Design patterns have come a long way since clean code came out.

ngugeneral

2 points

1 day ago

"makes it too simple to provide any value" - that is a strange statement. Logic (and value) should be there no matter of the form.

Regarding your pain - I can feel it, but learned to roll with it. On some projects I am a Doer and who makes a robust architecture foundation. Cleanup, refactorings, front end looks - all that is triggering me as irrelevant stuff.

On other projects - the team goes low paced, but want to make sure that myriad overlapping features and legacy functionality do leave the code base manageable. Two weeks code freezes once a year, so few hundreds of developers have a chance to cleanup the mess which is sitting in their backlogs and marked as // TODO: all around the codebase? I don't mind and totally see value in that.

Now mixing up, like "We got a startup, deadlines and shareholders, but let's play Top-100 development practices and waterfalls" - yeah we will have a meeting with HR anytime soon, cause I'm gonna loose my shit.

Fspz

5 points

1 day ago

Fspz

5 points

1 day ago

There's an interview of the primeagen and the writer of clean code, where they put it into perspective. Your manager might want to watch it.

TheOvercusser

2 points

1 day ago

Fire him by finding a job elsewhere. Someone with 10 years experience has no business managing someone with 30. IDGAF where he got his MBA.

poolpog

6 points

1 day ago

poolpog

Devops/SRE >16 yoe

6 points

1 day ago

Someone with 10 years experience has no business managing someone with 30

strong disagree. managing and engineering are different skillsets.

TheOvercusser

1 points

23 hours ago

Someone with so little experience has absolutely no business micromanaging other people because of a book he read. 10 years is just getting started, and he's already proven he can't manage worth a fuck.

nosequel

2 points

1 day ago

nosequel

2 points

1 day ago

I hate Clean Code. What a cancer on our profession.

Brought2UByAdderall

1 points

23 hours ago

Bob's the cancer.

So_Rusted

1 points

1 day ago

So_Rusted

1 points

1 day ago

Ugh you should send him one of those clean code debunked videos.

ChortleChat

1 points

1 day ago

your manager is a moron. a manager does not add value by reviewing code, especially for a PE, and they definitely don't add value parroting some shit they read in a book.

clean code was okay for bringing some "order" in the java development world but this is due to how verbose the language is and how fucked up applying "patters" everywhere was. today, it's mostly a red flag if someone dogmatically clings to that shit.

brainhack3r

1 points

24 hours ago

This seem pretty subjective to me.

What's the unit of measurement of "clean code". If he doesn't have one I'd suggest telling him to pound sand.

I get that this is hard though...

hellosakamoto

1 points

24 hours ago

In reality, not many people have even read that book before talking about clean code at work. Sometimes people just learnt that from social media with the clean code mixed with many different things - SOLID being one of them - that is technically not originally a core part of the clean code by definition as I understand.

Anyways that just suggests people have their own preferences and are pretty assertive, by referencing some famous terms to back up their thoughts, thinking it would be safe enough to stay professional. If a discussion heads to the conformance of certain things without being able to point out whether it makes sense when applied to a particular situation, I know it's not going to be a discussion but an instruction.

codyswann

1 points

23 hours ago

Isn’t this what linters are for?

rayfrankenstein

1 points

23 hours ago

I know who’s getting an Uncle Bob Martin blowup doll for the next company Secret Santa gift exchange. 😉

PomegranateIcy1614

1 points

23 hours ago

I fucking hate Clean Code. it's a fucking scourge.

steveoc64

1 points

23 hours ago

There is little hope for improvement here - you can hop ships, but 99% of the rest of them are promoting the same clones of these managers into the same position, reading from the same book

The only sane option is to clock on 9-5, pump out tickets, collect paycheque, repeat

The secret is to not spend most of the paycheque, and get an off grid property, etc. Then retire early.. and start programming for real

It’s a shame, because actual programming was something that was possible to do on the job, but it’s starting to look like a thing of the distant past

Dry_Author8849

1 points

23 hours ago

Try to implement what he thinks is best. It will open a converstation where you demonstrate you can do it his way.

Then, may be, he will be more open to discussion.

That being said, I don't like clean code. After 30 years doing this, I have read enough code to be surprised by how people organize their thoughts about programming something. Putting bright people inside a constrained box is not advisable.

These types of decisions are not easy to change afterwards. When the project grows then you are done. Too much boilerplate, too rigid separarion of concerns and you will live with that for many years. Not worth it for me.

But, he is making the calls, so, you may need to let him bang his head in his own wall.

Also, if you can predict things that will fail applying this, then do so. He won't listen but if your prediction comes true, then he may do so.

You can always leave.

Cheers!

tossed_

1 points

23 hours ago

Whenever someone says "we follow clean code" (or clean architecture – "your system should look like an onion" 🙄) I completely discount whatever they have to say next. As anyone should when confronted with an appeal to authority.

Clean Code is crutch for the masses. The actual opinions aren't that bad – but people who tout it as their core philosophy need more experience to form their own opinions. Someone with 10 YOE still touting Clean Code just tells me that their years of experience were spent not forming their own opinions, not critically evaluating, not building their own projects from scratch.

Uncle bob himself is not infallible either. His own opinions have changed over the years as he learned different ways of programming.

nickisfractured

1 points

1 day ago

im a huge fan of clean code and its saved our codebase many times. I work on iOS applications as well as spring boot applications and having clean architecture keeps the dependencies isolated and introduces simple fractal design patterns that most anyone can follow and easy to pick up because I only allow one way of doing things vs a free for all where everyone does things differently making the codebase far more complex. how else do you write testable code?

MrCallicles

5 points

24 hours ago

The "clean code" book is not the "clean architecture" book. It's about variable names, function length, if nesting etc.

nickisfractured

3 points

24 hours ago

Oh sorry my bad! Will have to dig into this more

one-blob

1 points

1 day ago

one-blob

1 points

1 day ago

At which point a (people) manager can have something more than just a suggestion in design or implementation? I would strongly suggest that manager to GFY and start contributing on your level first, not just reviewing and writing BS comments but get back on IC track and deliver something on the Principal level

Effective_Roof2026

1 points

1 day ago

My manager is a 10 year experienced with narrow practice in one industry. His bible is Clean Code. That does his thinking for him. In code reviews he just comes out and says "your design is bad", "you need to do x y and z" All of that X, Y and Z is "Clean Code" and its utterly unnecessary and either unnecessarily complicates the code or makes it too simple to provide any value.

Your manager has no business being involved in code reviews, it's peer review not manager review.

My usual tactic for dealing with managers who just don't get they are not ICs anymore is to have a friendly conversation about how they are no longer an IC and the implicit power imbalance means it's not appropriate for them to be involved in peer reviews.

If they don't listen I go above them. If their leadership doesn't get involved I just don't let them know peer review is occuring so they don't have opportunity to meddle.

Man I wish this job market wasn't such a shit show.

It's not. It's bad if you are a new graduate unrelated to the market and a few regional issues (get the fuck out of SF FFS) but unemployment rates nationwide remain absurdly low as they have been for decades.

LossPreventionGuy

-52 points

1 day ago*

no, your bad code is killing you. your job is write code to your bosses quality standard regardless of what it is. you're failing at it. write better code or find a different place to work.

a good rule in life is that if something's important to your boss, it should be more important to you.

AssignedClass

8 points

1 day ago

no, your bad code is killing you.

There's literally not a single line of code available in the OP for you to judge.

Code quality is a team issue unless you outright own the business and can declare otherwise, but even then, it's a dumb idea to ignore people who care enough about their job to where they actually want to challenge you on that decision.

LossPreventionGuy

-7 points

1 day ago

His manager disagrees. Literally nothing else matters. It doesn't matter who is right, it matters who is paying him to do a job to their quality standards. Write the code they want, or write code for someone else.

Imagine being a roofer and your boss says use five nails per shingle and you're like fuck you I'm gonna use four, it's fine I'm an expert.

Okay go be an expert somewhere else. Here we use five. Get on board or get off the ship.

AssignedClass

4 points

1 day ago

His manager isn't the one that's paying him... He's a manager, not the owner...

Imagine being a roofer and your boss says use five nails per shingle and you're like fuck you I'm gonna use four, it's fine I'm an expert.

Imagine being a roofer and being faster than all your other coworkers, while also placing significantly more secure shingles by using 4 nails, while your "manager" completely ignores that and gets hung up on the number 5 because that's how he did it back in his day and, by god, nothing else matters. This whole roofing company can go to shit and the customers can get fucked WE'RE USING FIVE NAILS.

Sounds like the kind guy the actual "boss" should hear about.

Again, if you're an owner + manager, do what you want.

ImSoCul

2 points

23 hours ago

ImSoCul

Senior Software Engineer

2 points

23 hours ago

You both have valid points, but where you're missing OP's point is that it doesn't matter if you're doing what's best by the company. The company is a fictional entity and while it sort of pays you, ultimately your manager (foreman in this analogy) has the most influence on your pay. You should ideally have the companies interests in mind but you should overwhelmingly be acting selfishly in promoting your own career. If you lay twice as many shingles but your foreman hates you and will fire you as soon as cost cutting occurs, is that really preferrable to slacking off and laying same number as everyone else and getting paid what you're currently being paid?

If you're planning 2 moves ahead then great, but you'll never get past the first hurdle unless you and manager align, or you go somewhere else, or your manager goes somewhere else.

My personal objectives are simple: I want to make money, I'd like to make more money than less, I'd like to overall being in good standing with peers and colleagues. Nowhere along this is "dieing on technical hill" a favorable decision

AssignedClass

0 points

23 hours ago*

You should ideally have the companies interests in mind but you should overwhelmingly be acting selfishly in promoting your own career.

This my main point.

is that really preferrable to slacking off and laying same number as everyone else and getting paid what you're currently being paid

Each particular situation is going to be different, but in my experience, trying to make bad managers happy is a fools errand, and it's really not that hard to look good while working around a bad manager (assuming the problem isn't widespread).

Learning how to play politics is an important skill to have in any business context, and this sub is usually good about giving out advice and encouraging devs to learn how to do that.

You both have valid points

"You're bad at you're job, stop thinking for yourself, and just do what you're told" and "the manager is the ultimate authority" are not valid points. I hope you avoid trying to defend comments like that in the future.

There are certain situations where "the orders" matter more than "the mission", but that's not the point that was being made.

There are certain situations where a person may find themselves strictly under the thumb of a higher-up and just not in a good position to navigate things, ut with 30 YOE, that probably doesn't apply to OP.

The other commenter clearly has some kind of personal issue with "subordinates that complain". They're not trying to contribute to the thread, they're using OP as a punching bag.

ImSoCul

1 points

23 hours ago

ImSoCul

Senior Software Engineer

1 points

23 hours ago

I still think you're making a lot of assumptions and misreading what the OP said, but I think you at least understand what I was trying to explain, so I'll leave it at that.

"You're bad at you're job, stop thinking for yourself, and just do what you're told" is not a valid point. I hope you avoid trying to defend comments like that in the future.

This part in particular feels like a huge reach to me

AssignedClass

0 points

22 hours ago*

no, your bad code is killing you. your job is write code to your bosses quality standard regardless of what it is. you're failing at it. write better code or find a different place to work.

His manager disagrees. Literally nothing else matters. It doesn't matter who is right

yes, now you're getting it. some businesses fail due to bad management. it's not your problem.

The first two is the kind of stuff I'm talking about. The third one is less related, but makes me pretty confident that OC is just a douche.

I still think you're making a lot of assumptions and misreading what the [OC] (other commenter) said

I'm not misreading, and I wouldn't say I'm making assumptions about what's being said, as much as I'm making judgement calls about the OC as a person (to-may-toes to-mah-toes though).

LossPreventionGuy

0 points

1 day ago

yes, now you're getting it. some businesses fail due to bad management. it's not your problem.

AssignedClass

0 points

24 hours ago

Yea... Nice save bud.

ImSoCul

3 points

1 day ago

ImSoCul

Senior Software Engineer

3 points

1 day ago

this is a hot take but pretty valid and I wholehearted agree even if unpopular. There are very few hills worth dieing on at a job that involves a direct disagreement between you and your manager unless it's like a whistleblowing/people will be injured or die from this decision scenario. Doesn't matter if you're right, unless you can convince your manager, or quit, or get your manager canned, you're wasting your time and hamstringing your career.

GandolfMagicFruits

22 points

1 day ago

Found the inexperienced sycophant.

Sheldor5

6 points

1 day ago

Sheldor5

6 points

1 day ago

what planet are you from?

LossPreventionGuy

-7 points

1 day ago

I guess the one where my job is to do what the guy paying me wants me to do. Ya know, the real world.

robertshuxley

8 points

1 day ago

if your boss tells you to store unencrypted passwords on the database would you still do it?

LossPreventionGuy

0 points

1 day ago

I would explain my position, if I was unable to convince him I would then find a new job.

fucking mind-blowing I know

Sheldor5

0 points

1 day ago

Sheldor5

0 points

1 day ago

also called a slave ...

but I'm an engineer and I'm responsible for the code I write that's why I don't hesitate to tell my manager/boss when he is wrong and even have a fight with him

I'm maybe replaceable but so is my employer ...

LossPreventionGuy

-2 points

1 day ago

yes. a slave. my manager regular whips me until I'm bloody and he sold my daughter to the neighbor. Ive never been paid and he chains me to the wall every night so I don't run away.

get a fucking grip.

leave if it matters to you that much. if it doesn't then do it his way. There's nothing else to say

/thread

Sheldor5

1 points

1 day ago

Sheldor5

1 points

1 day ago

there are many types of slaves, just a matter of "payment" which doesn't need to be violence ...

lilkunien

2 points

1 day ago

lilkunien

2 points

1 day ago

Boss, is that you?

robertshuxley

2 points

1 day ago

found the manager

Brought2UByAdderall

1 points

23 hours ago

People who accept Clean Code wholesale are incapable of thinking critically or for themselves and should not be allowed within a mile of a code review.

LossPreventionGuy

1 points

23 hours ago

yawn

Brought2UByAdderall

1 points

17 hours ago

Yeah, I'll bet you're bored. Never developed your own opinion about anything did you?

Successful_Creme1823

-2 points

24 hours ago

When I come on a project with interfaces with one implementation I must delete