But you can’t just not review things! Actually you can. If you shift the reviews far to the left, and call them code design sessions instead, and you raise problems on dailys, and you pair programme through the gnarly bits, then 90% of what people think a review should find goes away. The expectation that you'll discover bugs and architecture and design problems doesn't exist if you've already agreed with the team wh…
This falls for the famous "hours of planning can save minutes of coding". Architecture can't (all) be planned out on a whiteboard, it's the response to the difficulty you only realize as you try to implement. If you can agree what to build and how to build it and then it turns out that actually is a working plan - then you are better than me. That hasn't happened in 20 years of software development. Most of what's pl…
Every layer of review makes you 10x slower
311–320 of 339 posts
Re: Every layer of review makes you 10x slower
#312I think this makes an assumption early on which is that things are serialized, when usually they are not. If I complete a bugfix every 30 minutes, and submit them all for review, then I really don't care whether the review completes 5 hours later. By that time I have fixed 10 more bugs! Sure, getting review feedback 5 hours later will force me to context switch back to 10 bugs ago and try to remember what that was ab…
Although you'll have to mentally replace the word "agent" with "PR" for it to make sense in this context. The math is the same. It all boils down to how much those context switches costs you. If it's a large cost, then you can get a huge productivity boost by increasing review speed.
In the "show calculations" section, the amount of wasted time caused by context switching is the delta between the numbers in the phrase "T_r adjusted from 30.0 to 35 minutes". That number is increases as context switching cost and "average agent time" (AKA "average PR review time") goes up.
Re: Every layer of review makes you 10x slower
#313Valve is one of the only companies that appears to understand this, as well as that individual productivity is almost always limited by communication bandwidth, and communication burden is exponential as nodes in the tree/mesh grow linearly. [or some derated exponent since it doesn't need to be fully connected]
The first one to realise this was Jeff Bezos, afaik. One would think the others have wisened up in the meantime, but no.
Re: Every layer of review makes you 10x slower
#314I've always liked Tailscale as a product and now I might be a fan of their CEO too. Who knew?
I'll be sharing this post widely. Avery - if you're on here, thanks for writing this!
Re: Every layer of review makes you 10x slower
#315Earlier quoted context omitted.
The problem is that you can only meaningfully pair program with programmers. The people involved in architexture/design meetings might not be programmers. The questions that arise when 2 programmers work might not be resolvable without involving the others.
Nonsense. I pair all the time with stakeholders. If you strip out all of the cucumber nonsense this is essentially what BDD is - fleshing out and refining specs by guiding people through concrete, written example scenarios. I also often pair with infrastructure people on solving a problem - e.g. "im trying to do x as per the docs, but if you look at my screen i get an 1003 error code any idea what went wrong?". Or, p…
Re: Every layer of review makes you 10x slower
#316Re: Every layer of review makes you 10x slower
#317Re: Every layer of review makes you 10x slower
#318Earlier quoted context omitted.
I think what they meant is you “can save 10 hours of planning with one hour of doing” And I think this has become even more so with the age of ai, because there is even more unknown unknowns, which is harder to discover while planning, but easy wile “doing” and that “doing” itself is so much more streamlined. In my experience no amount of planning will de-risk software engineering effort, what works is making sure co…
> I think what they meant is you “can save 10 hours of planning with one hour of doing” I know what they meant, and I also meant the thing I said instead. I have seen many, many people forge ahead on work that could have been saved by a bit more planning. Not overplanning , but doing a reasonable amount of planning. Figuring out where the line is between planning and "just start trying some experiments" is a matter o…
Re: Every layer of review makes you 10x slower
#319Re: Every layer of review makes you 10x slower
#320You allow self review and optional external review of code but the default is that the engineer can ship to production without a review block.
Then you either do post merge review: have a review column in jira or whatever where people are assigned to review and can complete on their own schedule in a non disruptive and non blocking way. This also avoids piling reviews onto whoever has the best rubber stamp.
Or
You switch to a quarterly system review meeting where you as a group go over and suggest improvements to make in the codebase holistically.
I've seen both of these work extremely well and with AI you can basically automate the review process to the point it's pretty much pointless having a human review step.
The only other way to avoid the issue of people sitting on thumbs waiting for review is to have everyone prioritize reviewing code ahead of producing new code. This works but is incredibly disruptive to the reviewer and has side effects like review bombing on the largest rubber stamp reviewer.