After some serious quality problems in the last year, my company has recently introduced code reviews. Another developer and I where chosen to review all changes made to the systems, before they are merged into the trunk.
This has lead to some tensions within our team. Especially some of the older members question the changes (I.e. "We always did it like this" or "Why should the method have a sensible name, I know what it does?").
After the first few weeks my colleague started to let things slide, to not cause trouble with the co-workers (she told me herself, that after a bugreport was filed by a customer, that she knew of the bug, but feared that the developer would be mad at her for pointing it out).
I, on the other hand, am now known for being an ass for pointing out problems with the commited code.
I don't think that my standards are too high. My checklist at the moment is:
- The code will compile.
- There is at least one way the code will work.
- The code will work with most normal cases.
- The code will work with most edge cases.
- The code will throw reasonable exception if inserted data is not valid.
But I fully accept the responsibility of the way I give feedback. I'm already giving actionable points explaining why something should be changed, sometimes even just asking why something was implemented in a specific way. When I think it is bad, I point out that I would have developed it in another way.
What I'm lacking is the ability to find something to point out as "good". I read that one should try to sandwich bad news in good news.
But I'm having a hard time to find something that is good. "Hey this time you actually commited everything you did" is more condecending than nice or helpfull.