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.
kagis ‘C++ naming conventions’
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.
Variable names do matter.
Oof. This is a pet peeve of mine.
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).
Well that makes more sense, but it is still a lot of churn. I guess it’s fine in a project where you can change it all in a couple days. We have tens of thousands of files in the project I’m in charge of, so we’d never consider such an extensive refactor. We discuss naming conventions whenever we start a new project, and then it’s locked in. Thankfully we’re all pretty much of like-mind. Nothing changes from project to project in the naming realm. I did do away with BEM when I started, because I despise that clusterfuck of a convention for more reasons than I care to explain here, but I waited until a new project to do it, and everyone agreed with me.
Well that makes more sense, but it is still a lot of churn.
Sure, I mean it risks a lot of churn, but it hasn’t happened, in practice.
My team will debate the merits of a change until the cows come home, but they know that if they actually decide to make the change, I’ll expect them to put in all the necessary work to do it right. Ironically, that tends to curb their appetite for perfectionism.
Thankfully we’re all pretty much of like-mind. Nothing changes from project to project in the naming realm.
Yeah. Same here. That’s really why I get away with technically allowing a change during any retro. My teams appetite for refinements settled down after our first four sprints as a team.
Things might get interesting again, when we make our next hire; but I consider that part of the onboarding process. It should be worth the trouble just in case the new hire brings brings smart new practices we might have been ignoring. And whether anything changes or not, it creates a time and place for the new hire to argue their differences with the team.
We discuss naming conventions whenever we start a new project, and then it’s locked in.
That’s very practical, and really accomplishes the same net effect as my team’s policy, with less theoretical risk of thrashing.
A possible difference is that sometimes my team will insist on a refactor of some old code to update to the latest standards, at the start of a new project updating an old product.
As long as the code test coverage is acceptable to me, I’ll green light that effort as part of sprint zero.
We have tens of thousands of files in the project I’m in charge of, so we’d never consider such an extensive refactor.
Oh yeah. I would probably use my manager veto in that case. At some point it’s just too much work to verify the change.
We do have one big repo that we’re breaking up over time, and I insist that such changes be limited to the current actively developed component. It’s a unique case, because the vision for the repo is to get smaller as parts of it are decoupled (and released as open source). So we don’t deeply care if different modules have mildly different code standards, since they’re destined for separate public repos, in the long run.
I did do away with BEM when I started, because I despise that clusterfuck of a convention for more reasons than I care to explain here, but I waited until a new project to do it, and everyone agreed with me.
That’s some holy and righteous work you accomplished. All future developers on that effort owe you a debt!
That’s cool that you take input from new-hires and consider the viewpoints they bring to the team. It’s always annoying to be excited about a new job, and then be told “this is the way we do it, and that’s final”.
That’s some holy and righteous work you accomplished. All future developers on that effort owe you a debt!
Ha! Thanks! They were using it because that’s what Adobe recommends, and I made a very strong and opinionated case as to why Adobe needs to pull their heads out of their asses. Haha. Unexpectedly, everyone agreed with me.
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.)
I’m just gonna say it: fuckYourCamelCase
Uhh, why?
Proudly thinks that
__M_fs_stdbuf_t
is perfectly readable.I’d like to buy a vowel
Instructions unclear. You have been assigned: ǿ. You now owe a million Danish kroner.
Only if it stands for motherfuckers standard buffet.
A buffet of underscores maybe.
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.
I just use UUIDs
deleted by creator
Camel_Case
That’s actually offensive.
I don’t get this meme at all… What am I expected to see in this picture? Or how am I supposed to interpret it?
If you don’t work on software projects with other people then it won’t make any sense to you.
I’ve been doing it for 2 decades, still don’t get it. So maybe you can enlighten me what IT has to do with naming stuff in code?
$goddamnitJeffStopChangingMyFuckingVariableNames = 1;
Missed opportunity to title post in the style of bad variable name.
One day I will see this drama… Until then, it will remain only in memes.