Scrum is the Symptom, not the Problem
Adam Ard critiques Scrum as a micro-management tool that undermines developer productivity, arguing that corporate processes prioritize control over empowerment, necessitating engineers to seek ownership or freelance opportunities for true change.
Read original articleThe article by Adam Ard critiques the Scrum methodology, arguing that it serves as a tool for micro-management rather than a means to enhance productivity and morale among software developers. Despite widespread dissatisfaction among developers over the past two decades, Scrum remains prevalent in corporate environments. Ard contends that corporate processes are often selected for their ability to control rather than empower employees, leading to a culture of low trust. He highlights the contradiction between the Agile Manifesto's principles and the implementation of Scrum, which often involves non-technical Scrum Masters and Product Owners who impose rigid structures on developers. The author asserts that the root issue lies in the imbalance of power within software companies, where developers lack meaningful ownership and decision-making authority. He suggests that true change requires engineers to gain significant ownership stakes in their companies or to pursue freelance opportunities that allow them to dictate their working conditions. Ard concludes that for developers to achieve the freedom to work effectively, they must either establish their own employee-owned companies or become freelancers, thereby challenging the existing corporate structures that perpetuate control and inefficiency.
- Scrum is criticized as a tool for micro-management that undermines developer productivity.
- The article argues that corporate processes prioritize control over empowerment.
- Developers lack meaningful ownership and decision-making power in their organizations.
- True change may require engineers to start their own companies or work as freelancers.
- The author emphasizes the need for a labor market shift to improve working conditions for developers.
Related
For an example of what I mean, consider this:
After the manifesto appeared, Scrum quickly declared itself to be “agile” in spite of its ...
But Scrum existed before the Agile Manifesto was created, and the creators of Scrum - Ken Schwaber and Jeff Sutherland - are signatories of the Agile Manifesto. So no, Scrum didn't just "declare itself Agile"... Scrum was part of the Agile movement from day 0.
But towards the end the post does get to an interesting point, which the author summarizes as:
If developers want the freedom to write software in sensible ways, they need to enter the market directly as either founders of companies or freelancers instead of through the comfort and convenience of existing companies.
There's something to be said for that. I've always said that a lot of the core issue here is exactly the "impedance mismatch" between the way engineers see things, and the way "the business" sees things. One way to resolve that - albeit perhaps not the only way - is what the author proposes above.
If developers want the freedom to write software in sensible ways, they need to enter the market directly as either founders of companies or freelancers instead of through the comfort and convenience of existing companies. It’s a hard pill to swallow, but there just aren’t many companies doing it right. Luckily, I am guessing it is easier to teach business to a programmer than the other way around. Think of it this way: it HAS to be better than doing Scrum!"
===
My previous comment on the subject still seems appropriate.
https://news.ycombinator.com/item?id=41080195
The big problem is "How do I connect the money to the work". In large corporations, this becomes project -> plan -> work. The project gets a budget based on the plan, then you do the work based on the plan. The problem is the link between plan and work. As you work, you learn. That is the primary activity of software development. Learning is a menace to planning. As you learn, you have to replan, but your budget was based on the original project plan.
You can talk about engineering and culture and whatever you want, but if you're working for money, the problem remains of connecting the work to money and the money to the work.
I'm reminded of the Oxygen Catastrophe - https://en.wikipedia.org/wiki/Great_Oxidation_Event - we need oxygen to live, but it also kills.
This is correct. Scrum (and all of the other PM rituals) exist because the people controlling the money need to attach budgets to projects in order to figure out whether they're worth doing or not (or more loosely to teams, to figure out if they're profitable or not). Once a project has a budget, then it needs to be tracked.
It's enormously frustrating to be on the other side of the table, and to have a recalcitrant development team missing estimate after estimate, sometimes by orders of magnitude. Either it's your money that's slowly being incinerated, or you have to go back to investors and tell them that you decided to spend on X, and X is only 1/3rd as far along as the tech lead told you it would be.
But it's also frustrating to be on the developer's side of the table. We're not generally included in the business strategy meetings, because we don't generally have MBAs. (Also because we're expensive, and having us sit in "irrelevant" meetings, especially when we're "behind" anyway, seems like a poor use of resources.) As a result, we're two steps removed from the decisions that matter - and not in the room when we could potentially have suggested a better approach to solving the original problem.
Personally I'm done with the corporate software world - I'm riding the fractional/freelance bus until retirement. But, I wonder if these kinds of dysfunctional dynamics could be fixed with multidisciplinary teams. E.g. imagine a team of several devs, a couple mbas, and a few sales people, responsible as a group for the team's financial position in the company. Strange bedfellows, maybe, but if each person's success depended on everybody else in the team hitting their goals, the communication patterns could end up being quite different.
Funny enough, you even see this paradigm in secret messaging with Signal: the ecosystem is moving[0]. If you want a system that can evolve in response to external change, centralization is useful.
This isn't a defense of scrum, but a voice of opposition to running businesses as distributed utopias. It sounds great on paper, but you'll be out-competed by the faster-moving entities with centralized power very quickly.
Note that among the devs at my company, I'd say more than half don't seem to have a problem with it, or at least go with the flow, so I might be in the minority but I feel strongly enough about it to consider trying freelancing, I just hope I can demonstrate enough technical skills to be able to "insist on being in control of how [I] work" and still be hired...
The manifesto is predicated on this basis - that the individuals are motivated and capable of delivering when empowered. In a large corporate environment, can you make that assumption? Is your hiring always that good? Can you provide the type of environment that always produces high morale?
I'm no fan of scrum, but I've also seen what happens when "unmotivated" individuals are given too much free reign - nothing. How do you, as a large business, address that? Mass firings, or more "active" process? Perhaps business can't get over the risk mitigation that scrum provides?
By "not a team player", I mean they can't easily subordinate themselves to the rest of the team's consensus, to the enterprise culture/standards, to the limitations of the legacy codebase, to their product owner's direction, or to the laws of physics.
This programming stuff takes humility, and everything is hard to do. Non-team players make everything harder with the friction they add to every decision and the morale drain they put on the rest of the team with their sourpuss nature.
I try to win these folks over with love and help them to add many small wins to their name, but they're often energy monsters and they quickly exhaust me. It's often a relief when they remove themselves from the team.
It's not necessarily the best way to get ahead, but it's worth it knowing that I can take pride in what I'm doing.
high key cap
It correctly identifies that what preceded scrum was also poor for developers (big design up front), and that if anything replaces scrum, it will also be unpleasant for developers, because all these processes do not exist to make developers happy. They exist to control and manage software development.
So yeah, if you want to control how you write software, you have to be in control. But I strongly suspect that (other than for small, very high performing teams), you will inevitably create processes to manage it as you grow, and developers will then bitch about your process.
Jira is like Java, many people think of their experience in 2000-2010s in some ugly corporate environment, not being aware how good it can be in agile environment where people are really above the processes.
It also doesn't take much googling to find a vast number of people convinced that vaccines are bad.
Scrum is the most popular development methodology because nothing is more popular. It's not like there's some development methodology out there that all engineers like and its just the bad managers stopping us from using it.
That rings a bell, where did I hear such a thing? Oh yes, "workers should own the means of production" – I don't know if the author realizes this, but he's making a good case for Marx.
I think the less layers of management in the company, the better. The flatter the hierarchy, the more freedom the developers have, more stuff they get done, the happier they are. But for that you need trust and good developers.
Focusing on whether Scrum, Kanban, XP, etc. are good or bad misses the point entirely. They are neither good nor bad in principal: they are either good or bad for different teams in different situations, and even then depending on the specific implementation. There are very happy teams using scrum and performing excellently as a result. You cannot tell them they are doing it wrong. They're not.
My teams don't run scrum, but I consult for many who do, and I know how well they're doing and how happy they are with their situation. I also know of others who hate it.
I don't know why it's so difficult for engineers to understand this. Your experience is not universal. You don't know everything.