Been thinking about code review as a bottleneck.
What if we didn’t review production code or unit (fast) tests, BUT:
* all code must be fully tested
* all non-unit (slow) tests must be reviewed, and written before the implementation
* any exceptions to the above (basically, untested code) need full review
You can still review the rest, just not as a blocker.
What do you think? Would this work? Would it encourage good quality software?
What if we didn’t review production code or unit (fast) tests, BUT:
* all code must be fully tested
* all non-unit (slow) tests must be reviewed, and written before the implementation
* any exceptions to the above (basically, untested code) need full review
You can still review the rest, just not as a blocker.
What do you think? Would this work? Would it encourage good quality software?
Quincy
•samir, lost in the woods
•Quincy
•however I'm well aware that not every review has the same thoroughness, so now I'm thinking this could be the way to go –
review everything, but go casual on the parts that are already well tested?
samir, lost in the woods
•I think it’s important to be rigorous about the definition of “well-tested”. If you think it’s well-tested then find a bug every week, change your definition.
Quincy
•silverwizard
You need to explain your code to a reviewer as part of writing it, and you know a reviewer will call you out for doing bad.
Also - what you *meant* to do isn't tested. Just what you did.
samir, lost in the woods reshared this.
samir, lost in the woods
•My experience has been that many people, when faced with blocking code review, simply make so many changes at once that the reviewer takes a cursory glance and says, “I guess it’s fine”.
I agree with you that what you meant to do isn’t tested. I’m a big fan of acceptance tests (which are typically slow), and I would very much prefer if those were still reviewed.
silverwizard likes this.
silverwizard
samir, lost in the woods
•silverwizard
The value of good review is when reviewers take their role seriously.
samir, lost in the woods
•I think I agree with you, but I’m not sure why the review needs to be blocking in that case.
silverwizard
samir, lost in the woods
•Is there a reason why you prefer manual review to automated review here?
samir, lost in the woods
•silverwizard
Code is committed to a branch
pipelines kick off unit tests
Code review confirms code does what it means to and meets quality standards
code hits develop branch
integration tests are run, both automated and manual on staging servers
released to prod
samir, lost in the woods
•If that’s so, then why does one block a merge, and the other doesn’t?
Put another way, why verify internal quality in isolation, and external quality after integration? Is there an issue with integrating first?