Note: The core philosophy of this manifesto is heavily inspired by and completely aligns with Michael O. Church's excellent essay, "Why 'Agile' and especially Scrum are terrible". Church accurately identifies how Agile functions as a mechanism of control rather than engineering excellence. The following points expand on his ideas like terminal juniority, violent transparency, and the "Whisky Goggles" effect through the lens of my own visceral, real-world experiences in the trenches.
I. The Inversion of Priorities & Business-Driven Engineering
As Church points out, modern Agile methodologies have systematically inverted the fundamental priority of software development: the process has become more important than the product itself. Agile is fundamentally a form of "business-driven engineering" that places the power to dictate technical priorities into the hands of non-technical stakeholders. What began over two decades ago as a lightweight framework for rapid iteration and developer autonomy has ossified into a bureaucratic, heavy-handed machine that stifles the freedom of good engineers to do good engineering.
At its core, the corporate application of Agile caters exclusively to the lowest common denominator. It treats software engineering (a highly creative, mathematically complex, and deeply technical discipline) as an assembly line of fungible "story points." We have sacrificed architectural integrity, security, and long-term technical vision simply so that management layers can have an easy, predictable "line go down" metric on a burn-down chart. The metric has become the goal, and the actual software is merely a byproduct of moving Jira tickets from left to right.
II. "Terminal Juniority" and The Fatal Inertia of Sprints
Church expertly identifies a phenomenon he calls "terminal juniority." Because deep architectural work, R&D, and structural refactoring cannot be neatly estimated and packed into a two-week sprint, Agile forces developers into a permanent state of low-yield ticket fixing. True engineering requires the autonomy to pivot immediately when the realities of the system demand it. Software is inherently an act of discovery; very often, it isn't until you are deep in the middle of an implementation that you realize you are going down the wrong architectural path.
The Agile process, despite its name, adds a massive amount of inertia to these realizations. Because sprints are "locked," story points are committed, and timelines are broadcasted to stakeholders, it becomes politically and procedurally difficult to halt work. The overhead of dealing with the "ceremonies" of re-planning and explaining a pivot in a retrospective is such a giant pain that engineers are incentivized to just keep quiet.
Consider a routine bug ticket. You open the code and realize the bug is merely a symptom of a much deeper architectural flaw. You could write a terrible, brittle workaround to make the test pass, or you could take the time to fix the root cause. The Agile process almost always dictates the former: apply the shitty workaround now to close the ticket, and file a new ticket in the backlog to "fix it later". But in software, there is nothing more permanent than a temporary fix. The backlog ticket rots, and the system degrades, all because doing the right thing didn't fit neatly into the sprint. This is terminal juniority in action: sacrificing the long-term integrity of the codebase for the short-term optical win of closing a Jira ticket.
III. "Violent Transparency" and The Cost of Context Switching
A meeting does not just cost thirty minutes of an engineer's day. Just like a CPU processing a hardware interrupt, there are massive, invisible costs to context switching. An engineer's primary output is generated in states of deep, unbroken flow. This is a mental state that takes time to load into working memory and align perfectly. If I have two thirty-minute meetings scheduled in a morning, that entire morning is effectively destroyed. The continuous blocks of time needed to dig into real, consequential work are hopelessly fragmented.
Church calls the daily standup a state of "violent transparency." It is a surveillance state that breeds anxiety rather than productivity, especially for creative work. The demand for daily status updates creates an atmosphere that actively encourages dishonesty. Every engineer has days where they spend eight hours trying to figure out why a binary isn't compiling, only to realize they forgot to add a single line to the build infrastructure. It is embarrassing, but it happens to everyone. However, no one admits this under the violent transparency of a daily standup. Instead, the process incentivizes inventing fake updates to provide the illusion of steady, linear progress, breeding a culture of micromanagement and anxiety rather than genuine transparency.
IV. The "Whisky Goggles" Effect and Alienating Top Talent
Perhaps Church's most damning point is the "Whisky Goggles" effect. He argues that Agile might elevate a poor performer (a "3" out of 10) to a passable level (a "5"), but it actively repels and drives away the absolute best, senior engineers (the "7s and 9s") who require autonomy to thrive.
When a process caters entirely to the lowest common denominator, it inherently stifles the highest performers. I have seen instances where an engineer proactively found and fixed a critical issue while working in a related codebase, only to be reprimanded for not filing a ticket, waiting for the next planning cycle, and getting the work "approved." When a system penalizes initiative, the best engineers adapt by subverting it: they do the right thing quietly, and then write the Jira tickets after the work is already done, just to satisfy the bureaucracy. Once the bureaucracy becomes too exhausting to subvert, the top talent simply leaves.
The alternative to this relentless micromanagement isn't chaos; it is trust. You should not be staffing people (especially at senior levels) that you feel the need to extract daily status updates from. If an engineer requires a daily standup to stay on task, that is a hiring failure, not a process failure. The solution to complex engineering problems is simple: hire highly competent engineers, give them crystal-clear objectives, provide them with the uninterrupted time necessary to achieve those objectives, and then get out of their way. Let engineers engineer.