I was recently tasked with rewriting the base CSS for an inventory/project management system, creating a set of reusable components designed to match, using an open/close approach. These were based on a pretty strict specification provided by one of our designers, who unfortunately left.

The implementation went well, but I’ve run into a bit of a problem. Quite often the team members make changes directly to the base class in the new base CSS file, rather than extending it, creating a new one, or using each system area’s dedicated stylesheet file.

One of the more recent changes involved removing a grid-gap property from a rule from the base CSS, affecting a lot more than the single UI element the team member was working on.

Should I approach the team about this?

I haven’t mentioned anything yet, but have noticed our QA team putting in more bugs about UI elements looking odd

  • jjjalljs@ttrpg.network
    link
    fedilink
    arrow-up
    22
    ·
    10 months ago

    That sounds like a pretty straight forward and simple conversation.

    Do you do code reviews? Have code owners? If you (or a set of people you trust) were required to sign off on changes on the base files that aren’t supposed to be changed willy-nilly, you could catch it before it went to main

      • fidodo@lemmy.world
        link
        fedilink
        English
        arrow-up
        5
        ·
        10 months ago

        It’s the best way to propagate coding culture.

        Step 1: Get buy in. Discuss with the team and agree that it’s a good idea. Write it down so there’s a paper trail. Link to it in important base files in comments as a reminder as to what the guidelines are.

        Step 2: Code review. Make sure the right people are required on code reviews for those base files. As the issues are brought up and fixed it will become a cultural habit and self propagate.

  • MajorHavoc@programming.dev
    link
    fedilink
    arrow-up
    18
    ·
    10 months ago

    This sounds like a job for a team wide code review process.

    If you don’t say anything, it won’t get better. Up to you whether that’s worth the hassle, based on your team and your situation, of course

  • Jared White@lemmy.world
    link
    fedilink
    arrow-up
    8
    ·
    10 months ago

    Someone in your organization needs to be in charge of frontend fidelity. I don’t mean an official job title, I just mean someone who has taken it upon themselves to have a “the buck stops here” mentality—better yet someone who is recognized by the rest of the team to have that priority.

    If nobody else fits the bill, then that person is you. And by all means, make all the stink you want about these issues. Nobody should ever be touching global stylesheets that affect multiple components or screens throughout the system without there being subsequent review or issues filed in a very visible way. Ideally, those sorts of breaking changes would never make it through code review in the first place.

  • half_built_pyramids@lemmy.world
    link
    fedilink
    arrow-up
    5
    ·
    10 months ago
    1. passive aggressive email

    2. let qa bust them

    3. collective email reminder to the whole team not to edit the base class, variation of #1

    4. fix it yourself and say nothing, snitches get stitches

    5. snitch

    6. create a copy of the base further down so it just overwrites their changes – I forget if this works, maybe make a copy above too just to cover your angles

    7. ask them to find the bugs in someone else’s commits and see if they fix their own shit

    • William@lemmy.world
      link
      fedilink
      arrow-up
      3
      ·
      10 months ago

      Also, I guess it’s a variant of #7: Tell them that their code has caused bugs in existing code and ask them to fix it.

      • half_built_pyramids@lemmy.world
        link
        fedilink
        arrow-up
        3
        ·
        10 months ago

        Oh, this is like a buffet. Pick and choose. Don’t worry about the conditions back in the kitchen or how we passed our last inspection by wheeling all the expired food out to the dumpster temporarily.

    • 𝒍𝒆𝒎𝒂𝒏𝒏@lemmy.dbzer0.comOP
      link
      fedilink
      arrow-up
      1
      ·
      10 months ago

      We do, however they’re usually assigned to devs that are not familiar with the work carried out, thus these kinds of things end up slipping into the main branch…

      Looking at the other responses though this is something that I’ll need to raise with the team, some here have pointed out some pretty insightful stuff.

      • fidodo@lemmy.world
        link
        fedilink
        English
        arrow-up
        2
        ·
        10 months ago

        You may want to review your process then to make it clearer who should be on what review for different parts of the code base. You could use team groups to define who should be required for who.

  • mark@programming.dev
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    10 months ago

    You can keep bringing it up. But, in my exp, if you dont have anyone high up that can support your perspective, it’s just gonna be an uphill battle. And is likely just going to make the other devs unhappy with you.

    It’s unfortunate but most devs dont really like anything that’s going to cause them more work (e.g. more code reviews, higher quality changes, looking at the bigger impact of their changes etc).

    If you don’t have someone higher up —maybe the manager of the managers of those problematic engineers—I’d just make more tests around the areas that are breaking and require those tests to pass before merging code changes. Devs may not like to work harder, but they damn sure dont like seeing a bunch of red X’s when they open a PR lol 😃

  • aufhohemross@lemmy.ml
    link
    fedilink
    arrow-up
    2
    ·
    edit-2
    10 months ago

    I think this can be resolved with code review (as others have mentioned), but there’s also a lack of understanding on how to use the components you have created. Maybe a quick email politely explaining the theory/approach behind these base classes, with some examples of do-s and don’t-s could work alongside code review to enforce the change