Discover more from Software Design: Tidy First?
Non-blocking code review
“If we don’t review code before it’s integrated we’ll never review it.” Maybe. Maybe not, though.
The kerfuffle around code review continues:
Now, never mind that I wasn’t advocating any particular position, I was stating a fact about my emotional state. I got some productive comments along the lines of, “What could you mean by ‘non-blocking’?” Here’s an example of what I mean.
Imagine you have a scrolling ticker of news items describing what’s happening in your whole code base.
“Kent started editing foo.js that you modified yesterday.”
“The structure change you made last week is spreading to other systems.”
“Class Foo is now nearly identical to class Bar.”
You see these items from your own perspective of the code, things that do/will/should matter to you, aggregated to match your interest. Items contain text, diagrams, maybe animations.
Your engagement with the news defines how it is presented to you. Follow-up into the code? You’ll see more items like that. Comment? You’ll see more items like that. Ignore? You won’t see those items or they will be aggregated more.
The feeling we’re trying to create here is that:
Senior engineers sustain the confidence that they know pretty much what is going on, even as the system and team scale.
Junior engineers have their curiosity piqued about adjacent parts of the system. They are also comforted knowing that they aren’t making changes solo. Someone is watching, but in a good way.
Engineering managers feel comfortable that they know what all is going on, without resorting to surveillance.
If I was building CodeFeed, here’s how I’d do it. I’d hire 2 programmers with good writing skills to write a daily summary of activity on a popular, busy open source project. Analytics would keep track of how readers interacted with this manually-curated feed.
I’d encourage the programmers to write tools to make themselves more efficient, so they could produce a second newsletter, then a third.
Now, with a sense of how readers want to interact with the news, I’d sprinkle the AI Magic Fairy Dust on it to personalize & refine the feed.
There you have it—non-blocking code reviews that people will actually read. As I said at the beginning here, I’m not anti-code-review, I’m anti-waste. If we can get some of the desired benefits of code review at much less cost, we all benefit.