Every layer of review makes you 10x slower

68 points by binjip978


gnunicorn

While I sympathize with the sentiment of reducing layers, I struggle with the reduction of reviews being about quality assurance (only). Nor that reviews are being done over many layers in large orgs, while everything just does quality assurance.

Reviews are as much about reducing the bus factor and making sure other people know the code base and that we have a shared understanding of what it is supposed to be doing, as it is about style, quality and so forth. But in what larger org is another layer reviewing that code, really? I have seen no engineering manager or CTO review the code after my peer had - and why would they?

Sure, the coordination problem is real. And the author correctly identifies it is about reducing risk. I have to talk to lawyers about what we are building because there is legal risk involved - and I am not an expert in that. This is an engineering profession and just as in any other engineering you have to coordinate with outside expertise and requirements.

That's also why the car assembly line analogy falls short to me and the Toyota model isn't applicable: it's not an assembly process, it's an engineering process. You are telling me the car engineers at Toyota, when designing a new car don't have to coordinate with legal, marketing, etc? Of course they do. And there designs go through an iterative process with reviews and input from various sources. Of course it does.

That Toyota assembly line thing is so omnipresent in the software development process discussion and I don't understand why. The part of our process that does this - "constructing the final product item and ship it to the customer" - we have full on automatized away with automatic testing, CI/CD and removing any physical part in the process (remember we used to ship software on CD-ROMs!?!).

If we want to learn from Toyota for our process we would have to study his they engineer new cars. But I think that isn't that interesting and doesn't have these nice short-hand learnings "you just have to truly apply".

Don't get me wrong, I am for fewer communication cycles and more trust in quality engineering. But we also have to acknowledge that there is a lot of expertise in other domains that is relevant for the success or risk that we software engineers just don't have and this require input on.

klingtnet

If I had to name something that improved the quality of code being shipped, then it's code reviews. I get the point that reviews slow you down, but don't see it as a problem and instead embrace the pause or do something else instead. Not everything has to be rushed, and you don't need to be a 100% effective all day long, except you want to burn out quickly.