@baldur Great essay! I largely agree with it.
It's a throw-away line, but you say that "code review is the norm even though it’s largely useless as practised".
Why do you think it's useless/how could it be practiced better?
For my two cents:
I feel like code review is a bad way to catch bugs (yet another reason that "humans check all the AI output" is doomed to failure).
But I do think of it as a good way to keep a codebase consistent and to share knowledge between team members.
@GuillaumeL @baldur Interesting! The blame game bit rings true, at least in the more toxic environments I've been in. Though I'd say I've more often seen indifference than blame -- code review as a tedious chore, not as a part of a collaboration between you and the other developer.
Re pair programming, my first dev job was at a place that did mandatory pair programming, and I don't think it was good for me.
It worked when it was two people with similar skills/context, but...
(1/2)
@GuillaumeL @baldur it fell apart when it was two people with a big power/knowledge differential.
If the more experienced person was really deliberate it could become a learning experience for me as the junior, but that was rare.
When it works, it works, but I do think there's something for banging your head against the code individually too.
(2/2)
I don’t think this is true. It comes from software engineering studies done in the eighties, particularly at IBM. Admittedly few places do rigorous reviews the way IBM documented.
@lain_7 So, me and @GuillaumeL are specifically talking about the pull request style of code review, the one that was popularised by GitHub and is quite popular these days in tech and software dev, especially web.
Quite a few modern software dev practices have diverged considerably from the original methods while still keeping the names. TDD doesn't look like original TDD. Code review doesn't look like original code review. Agile isn't agile. Etc.