A few responses. I agree on switch however if you look at what it compiles to it is markedly more efficient than a stack of ifs. As the cases are often consecutive integers a good compiler will create extremely fast jumps. And a switch has a default to catch unhandled values while in the if-ladder they just dangle.
I don’t see why an extra line should be an issue; earlier today someone argued to me in favor of early returns, which I regard as unacceptable, as a means of avoiding “excessive indentation.” We aren’t on 80-column monitors anymore; there is no such thing as excessive indentation.
Commenting should be at block level at most; too much is worse than too little. It’s as much a part of the job as the code, since even the author will forget his own reasoning.
By the way I would appreciate it if you’d avoid the jargon “technical debt”; call it what it is: unfinished work. There is way too much gurgle burble in software right now.
Not sure how I feel about collaboration; I only work in an ownership role but if we must collaborate I would rather use Code than the abhorrent practice known as pair programming; were I in an office and I was told to pair program I would resign on the spot. That is nuts. But collaboration would work better than code reviews, because I have never been in a code review where people didn’t come straight from the printer and do formatting quibbles, and pull requests are useless.
Better article than most on here, thanks.