Skip to content
Chimera readability score 0.5739 out of 100, reading level.

David Poll points out the flawed premise of the argument that code review is a bottleneck
To be fair, finding defects has always been listed as a goal of code review – Wikipedia will tell you as much. And sure, reviewers do catch bugs. But I think that framing dramatically overstates the bug-catching role and understates everything else code review does. If your review process is primarily a bug-finding mechanism, you’re leaving most of the value on the table.
Code review answers: “Should this be part of my product?”
That’s close to how I think about it. I think of code review as primarily about keeping the code base healthy. And although many people think of code review as pre-integration review done on pull requests, I look at code review as a broader activity both done earlier (Pair Programming) and later (Refinement Code Review).
At Firebase, I spent 5.5 years running an API council…
The most valuable feedback from that council was never “you have a bug in this spec.” It was “this API implies a mental model that contradicts what you shipped last quarter” or “this deprecation strategy will cost more trust than the improvement is worth” or simply “a developer encountering this for the first time won’t understand what it does.” Those are judgment calls about whether something should be part of the product – the same fundamental question that code review answers at a different altitude. No amount of production observability surfaces them, because the system can work perfectly and still be the wrong thing to have built.
His overall point is that code review is all about applying judgment, steering the code in a good direction. AI raises the level of that judgment, focusing review on more important things.
I agree that we shouldn’t be thinking of review as a bug-catching mechanism, and that it’s about steering the code base. In addition I’d also add that it’s about communication between people, enabling multiple perspectives on the development of the product. This is true both for code review, and for pair programming.
❄ ❄ ❄ ❄ ❄
Charity Majors is unhappy with me and rest of the folks that attended the Thoughtworks Future of Software Development Retreat.
But the longer I sit with this recap, the more troubled I am by what it doesn’t say. I worry that the most respected minds in software are unintentionally replicating a serious blind spot that has haunted software engineering for decades: relegating production to the realm of bugs and incidents.
There are lots of things we didn’t discuss in that day-and-a-half, and it’s understandable that a topic that matters so deeply to her is visible by its absence. I’m certainly not speaking for anyone else who was there, but I’ll take the opportunity to share some of my thoughts on this.
I consider observability to be a key tool in working with our AI future. As she points out, observability isn’t really about finding bugs - although I’ve long been a supporter of the notion of QA in Production. Observability is about revealing what the system actually does, when in the hands of its actual users. Test cases help you deal with the known paths, but reality has a habit of taking you into the unknowns, not just the unknowns of the software’s behavior in unforeseen places, but also the unknowns of how the software affects the broader human and organizational systems it’s embedded into. By watching how software is used, we can learn about what users really want to achieve, these observed requirements are often things that never popped up in interviews and focus groups.
If these unknown territories are true in systems written line-by-line in deterministic code, it’s even more true when code is written in a world of supervisory engineering where humans are no longer to look over every semi-colon. Certainly harness engineering and humans in the loop help, and I’m as much a fan as ever about the importance of tests as a way to both explain and evaluate the code. But these unknowns will inevitably raise the importance of observability and its role to understand what the system thinks it does. I think it’s likely we’ll see a future where much of a developer’s effort is figuring what a system is doing and why it’s behaving that way, where observability tools are the IDE.
In this I ponder the lesson of AI playing Go. AlphaGo defeated the best humans a decade ago, and since then humans study AI to become better players and maybe discover some broader principles. I’m intrigued by how humans can learn from AI systems to be improve in other fields, where success is less deterministically defined.
❄ ❄ ❄ ❄ ❄
Tim Requarth questions the portrayal of AI as an amplifier for human cognition. He considers the different way we navigate with GPS compared to maps.
If you unfold a paper map, you study the streets, trace a route, convert the bird’s-eye abstraction into the first-person POV of actually walking—and by the time you arrived, you’d have a nascent mental model of how the city fits together. Or you could fire up Google Maps: A blue dot, an optimal line from A to B, a reassuring robotic voice telling you when to turn. You follow, you arrive, you have no idea, really, where you are. A paper map demands something from you, and that demand leaves you with knowledge. GPS requires nothing, and leaves you with nothing. A paper map and GPS are tools with the same purpose, but opposite cognitive consequences.
He introduces some attractive metaphors here. Steve Jobs called computers “bicycles for the mind”, Satya Nadella said with the launch of ChatGPT that “we went from the bicycle to the steam engine”.
Like another 19th-century invention, the steam locomotive, the bicycle was a technological revolution. But a train traveler sat back and enjoyed the ride, while a cyclist still had to put in effort. With a bicycle, “you are traveling,” wrote a cycling enthusiast in 1878, “not being traveled.”
In both examples, there’s a difference between tools that extend capability and tools that replace it. The question is what we lose when we are passive in the journey? He argues that Silicon Valley executives are too focused on the goal, and ignoring the cognitive atrophy that happens to the humans being traveled.
Much of this depends, I think, on whether we care about what we are losing. I struggle with mental arithmetic, so I value calculators, whether on my phone or M-x calc
. I don’t think I lose anything when I let the machine handle the toil of calculation. I share missing the sense of place when using a GPS over a map, but am happy that I can now drive though Lynn without getting lost.
And when it comes to writing, I have no desire to let an LLM write this page.

Facts Only

David Poll argues that code review is not primarily about finding bugs but about maintaining codebase health and applying judgment.
Poll suggests code review includes activities like pair programming and refinement reviews, not just pull requests.
At Firebase, Poll ran an API council where feedback focused on product alignment and user understanding rather than bug detection.
Charity Majors criticizes the software engineering community for neglecting production observability in discussions about the future of software development.
Majors argues that observability is about understanding real-world system behavior and user interactions, not just debugging.
She suggests that future developers may spend more time interpreting system behavior using observability tools.
Tim Requarth compares GPS navigation to paper maps, arguing that GPS reduces cognitive engagement and situational awareness.
Requarth references Steve Jobs' "bicycles for the mind" metaphor and Satya Nadella's comparison of AI to a steam engine.
The discussion highlights concerns about AI tools replacing human effort rather than augmenting it.
The article includes reflections on how AI systems like AlphaGo have influenced human learning in fields like Go.
The conversation spans topics like code review, observability, AI integration, and the cognitive impact of automation tools.

Executive Summary

The discussion centers on the evolving role of code review and observability in software development, particularly in the context of AI integration. David Poll argues that code review is not merely a bug-catching mechanism but a broader activity focused on maintaining codebase health, applying judgment, and fostering communication among developers. He highlights that code review extends beyond pull requests to include pair programming and refinement reviews, emphasizing its role in steering product direction. Charity Majors critiques the software engineering community for overlooking the importance of production observability, which she argues is essential for understanding real-world system behavior and user needs. She contends that observability is not just about debugging but about revealing how systems interact with human and organizational contexts. Tim Requarth questions the cognitive impact of AI tools, comparing GPS navigation to paper maps, and warns against tools that replace human effort rather than extend capability. The conversation reflects broader tensions about the balance between automation and human agency in software development.
The perspectives presented suggest that while AI and automation can enhance productivity, they may also erode critical thinking and situational awareness. The debate underscores the need for developers to remain actively engaged in understanding system behavior, even as tools become more sophisticated. Observability and code review are framed as complementary practices that ensure software aligns with user needs and organizational goals, rather than merely functioning correctly in isolation.

Full Take

The strongest version of this narrative highlights a critical tension in software development: the balance between automation and human agency. Poll’s argument that code review is about judgment and communication, not just bug-finding, is compelling. It reframes code review as a collaborative process that shapes product direction, not just a quality gate. Majors’ critique of the industry’s blind spot toward production observability is equally valid—understanding real-world system behavior is essential for building software that truly serves users. Requarth’s metaphor of GPS vs. paper maps underscores a broader concern: tools that replace human effort may lead to cognitive atrophy, even as they increase efficiency.
Pattern scan: The discussion avoids overt manipulation but leans into a subtle "false binary" (ARC-0024) by framing automation and human engagement as opposing forces. The narrative also risks "mission drift" (ARC-0047) by expanding the scope of code review and observability beyond their traditional definitions, potentially diluting their core purposes. However, these patterns are not deployed maliciously but emerge from genuine debates about the future of software development.
Root cause: The underlying paradigm is the fear of losing human mastery in an increasingly automated world. The unstated assumption is that tools should augment, not replace, human judgment—a principle that resonates across domains, from navigation to software engineering. Historically, this echoes debates about industrialization, where machinery was both celebrated for efficiency and criticized for deskilling workers.
Implications: If developers become passive consumers of AI-generated code or observability data, the cost is a loss of deep understanding and creative problem-solving. The beneficiaries of this shift could be large tech companies that prioritize scalability over craftsmanship, while individual developers and users bear the cost of reduced agency. Second-order consequences might include a decline in software quality as nuanced human judgment is sidelined.
Bridge questions: How can we design AI tools that enhance, rather than replace, human cognition? What metrics should we use to measure the success of code review and observability beyond bug detection? How do we ensure that automation serves human goals rather than dictating them?
Counterstrike scan: A bad actor pushing this narrative might exaggerate the risks of automation to discourage adoption of AI tools, or conversely, downplay concerns to accelerate dependency on proprietary systems. The actual content does not match this pattern; it presents a nuanced debate without clear ideological alignment. The discussion remains constructive, focusing on genuine challenges rather than manipulation.

Sentinel — Human

Confidence

The article appears to be human-written with signs of personal experiences, emotional engagement, and varied writing style.

Signals Detected
low severity: varied sentence length and transition usage
medium severity: passionate arguments, personal anecdotes
low severity: no template matching or repeated talking points
Human Indicators
personal anecdotes and opinions, varied sentence structure, emotional engagement