this post was submitted on 01 Aug 2023
221 points (98.7% liked)

Programming

17313 readers
573 users here now

Welcome to the main community in programming.dev! Feel free to post anything relating to programming here!

Cross posting is strongly encouraged in the instance. If you feel your post or another person's post makes sense in another community cross post into it.

Hope you enjoy the instance!

Rules

Rules

  • Follow the programming.dev instance rules
  • Keep content related to programming in some way
  • If you're posting long videos try to add in some form of tldr for those who don't want to watch videos

Wormhole

Follow the wormhole through a path of communities [email protected]



founded 1 year ago
MODERATORS
 

Hello again, I'm in a situation where the one the senior devs on my team just isn't following best practices we laid out in our internal documentation, nor the generally agreed best practices for react; his code works mind you, but as a a team working on a client piece I'm not super comfortable with something so fragile being passed to the client.

He also doesn't like unit testing and only includes minimal smoke tests, often times he writes his components in ways that will break existing unit tests (there is a caveat that one of the components which is breaking is super fragile; he also led the creation of that one.) But then leaves me to fix it during PR approval.

It's weird because I literally went through most of the same training in company with him on best practices and TDD, but he just seems to ignore it.

I'm not super comfortable approving his work, but its functional and I don't want to hold up sprints,but I'm keenly aware that it could make things really messy whenbwe leave and the client begins to handle it on their own.

What are y'alls thoughts on this, is this sort of thing common?

you are viewing a single comment's thread
view the rest of the comments
[–] [email protected] 56 points 1 year ago* (last edited 1 year ago) (1 children)

Yes, it's common. No, it shouldn't be tolerated. Your boss/tech lead/whatever should be involved. Here is what should be done ideally:

  • not following best practices: you MUST implement merge requests (GitLab, GitHub, etc.) and his code shouldn't be approved which means that his code won't ever be merged in a shitty state. Force 1 or 2 approvals for each MR, and it should not be possible to merge an MR if it has open comments. The boss should ask every day "why is your code not merged yet?" and he'll have to explain why people don't approve his shitty code.
  • shitty unit-tests: same thing, the boss should show him how to do this, and the MR shouldn't be approved.
  • breaking unit-tests: it's the job of the CI to literally block MRs that break unit-tests (whether it's code coverage or unit-tests).
  • leaves me to fix it during PR approval: NO, it's HIS merge request, not yours.

To sum it up: devs must not approve his MRs, the CI must block MRs that break tests.

[–] nitefox 17 points 1 year ago (2 children)

Last point is SO painful… I have a coworker that writes so much shitty code OR it straight up doesn’t work… he once submitted a PR that didn’t work when used! Like, I just started the thing and it was utterly broken - both the implementation and the design.

More so, some of his PRs are a giant nightmare of over engineered crap that he, at some point, doesn’t even understand.

Worst of all, he gets angry at me for pointing out that either they don’t work or they are a shitty, complex, mess

Honestly, at some point I started approving his PR and calling it a day; oh we don’t have tests cause reasons, I tried to use TS too but since my boss finds it too complicated we are not using it again for new projects… funny

[–] BeepStreet 2 points 1 year ago (1 children)

This thread makes me so grateful for working with competent people.

[–] nitefox 2 points 1 year ago

just yesterday I had to drop a lot of his commits cause they broke some core functionality lol

[–] [email protected] 1 points 1 year ago (1 children)

@nitefox @glad_cat

Pulling and at least trying to start the program when reviewing new hire code is fairly common for me. I don't know what is, maybe a lack of experience, but I find newer programmers just assume their code works without trying it.

You should always try your code. I've probably sent back hundreds of PRs because they just won't even run.

But I always send them back. They do learn, it just takes time.

[–] nitefox 1 points 1 year ago

he has several yoe (more than me!) and he has been with us for at least two years...