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?

  • glad_cat@lemmy.sdf.org
    link
    fedilink
    arrow-up
    59
    ·
    edit-2
    1 year ago

    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@lemmy.world
      link
      fedilink
      arrow-up
      17
      ·
      1 year ago

      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