I loved the article and agree with almost all of it, particularly the "things go wrong". I feel that you need to switch over periodically and become your own enemy and try to think of obnoxious things that could conceivably happen. I remember we had a QA guy named Dan Song - an ace. Once he bet us he could immediately break this program we were working on - one he hadn't even seen - and we said, "Sure". He walks over, we bring up the program, he hammers on the keyboard incredibly fast, it crashed instantly. The other programmers were all, "That's not fair!" but I had a revelation.
And Dan had a lot of tricks other than that. I realized that before then I had been testing code to try to show it working - now I started testing my code to try to make it break. Changed my life!
The one thing I disagree is the "50 comments on a junior developer's first review makes you a bad person". I disagree - it's doing this out of the blue, with hostility that makes you bad.
I started in a new organization with 20 years' experience under my belt and the first five code reviews were relentless with huge numbers of comments! But all the comments were warm and friendly, and I had been warned in advance that it took a long time to get all the details right in this huge system. People were supportive and told me that I was doing a good job. I was told to expect perhaps hundreds of comments on my first significant code review, so when there were only about 50, I felt I was doing OK.
Reviewing code in private is wrong - because you want to share the information with the team. I learn more from reading other people's code reviews than perhaps anything else. I ask myself, "Why did they do this weird thing?" and then I read the code review and I say, "Because it's the only way that will work!"
Any number of comments on a code review are fine - if the reviewee is primed to expect this before anything happens, and if the comments are supportive and positive.
Great article though - this is just a quibble.
We're a place where coders share, stay up-to-date and grow their careers.
We strive for transparency and don't collect excess data.