Are people really this dramatic? There are plenty of conventions at work that we don't like but just accept. We'll moan about it every now and then (looking at you "only one return statement per method"), but in the end we'll just accept that any standard is better than total mayhem and anarchy. Usually I write the code in a way that makes sense to me and then just tidy it up to satisfy the angry rule machine. Having moet of the code in the same format makes it easier to follow, and the code that was written before these rules has me convinced that this whole thing is am improvement.
Having dealt with this drama before, and as team lead currently, as soon as this project began, the first thing I did was set up a linter with very specific rules. If a dev doesn't agree with the rules defined there, too bad. They're there to prevent this kind of drama, and to make peer reviews more focused and productive. I don't wanna see PRs about syntax. They're nearly always just a difference of opinion.
If I ever get around to writing my own language, it's going to take parse trees off the disk, so people can deparse them into whatever they want and STFU.
Let me tell you: I’m currently developing a user-defined, recursive form, and most of the trouble with that stems from the fact that I don’t have a good name for the repeatable part of that form (as opposed to a static part) and the thing the form is embedded in.
As manager, I shut this conversation down via direct messages to each team member involved.
I remind them that they agreed during retro to live with the current set of decisions for exactly two weeks until next retro.
I don't dictate much, but I do dictate that Slack isn't an acceptable place for this kind of discussion, on my team.
The only related thing, that belongs in slack, on my team, is a link to the current accepted team standard - which will be open for review and changes again during next retro.
Alternately, if there's no standard for this yet then my team knows they're encouraged to wing it until we discuss at next retro.
And yeah, I've had to open an issue to revisit a variable name after retro, lol.
My team are an opinionated bunch, and they're often perfectionists.
You allow naming schemes to change every two weeks? That's just insane! You might as well not have a naming convention then, since the project is going to be full of different conventions.
You might as well not have a naming convention then, since the project is going to be full of different conventions.
Oh, I skipped this. Lol. Obviously not. As a team, they can implement whatever convention change they want, every two weeks.
As manager, I expect them to update all active projects, in their entirety, to the new convention, each time.
And as I mentioned in my other comment, if their test coverage isn't at a level that makes me confident in that kind of global change (70% tends to be plenty), then I reserve the right to table it - until they bring the test coverage up (on all impacted projects).
You allow naming schemes to change every two weeks? That's just insane!
Yes. Everything is open for discussion every two weeks, during our retrospective meeting.
Of course, that doesn't mean things will actually change that fast.
But let me push back a bit, too - a global find and replace on our entire source code would take maybe a couple hours. A substantial naming convention refactor would take maybe a couple of days.
The reason we don't do anything that aggressive is we don't trust ourselves to make the change correctly - not because it's actually a difficult change to make. Where our test coverage is where it should be, it's a perfectly safe change.
If my team tells me (in agreement with each other) that a change like that is necessary, my job is to go make time for them to get it done.
On the scale of requests my team has given me, a couple days to rename some variables is no big deal.
There's absolutely stuff I won't allow, as team manager, but flip flopping on variable naming is owned by the team, and I would allow it, within reason.
A couple fair-game manager reasons I might shut down a variable naming convention change are:
The test coverage on that part of the code doesn't inspire enough confidence to make any unnecessary changes. Improve the test coverage, and we will revisit.
(Hypothetically) We made two similar changes in recent memory, and as manager, this is affecting our team reputation. Let's make a plan to make this change in a way that does not impact our team reputation.
Anything short of those two scenarios, and - should my team present it to me in agreement - I go make the time for them to make the change.
A shorter version is: I'll discuss and do my best to support whatever my team wants to change - every two weeks. It's a small price to pay for some peace for 9 out of every 10 business days! (And honestly, it's a big part of my success formula.)
When I was a mod on Reddit we had a slack channel, one of the new mods got outed and shamed for a post where they were a dick at a show, the sub turned on them so we had to remove them, the head mod scolded them while we were all silent watching, it felt like we were kids hiding on the top of the stairs watching a sibling get scolded.