The State of Agile Software in 2018

View link › March 22, 2019

This 2018 talk by Martin Fowler, one of the original signers of the Agile Manifesto, is a smooth balm unto my soul. Fowler’s summary of the Agile industry gives me a framework for understanding what I don’t like about most “Agile” implementations that I’ve come across.

My favorite part of the talk centers around the idea of “faux-agile: agile that’s just the name, but none of the practices and values in place.” It’s also referred to as “Dark Agile” or “Dark Scrum”. All a part of the nefarious “Agile Industrial Complex” pushing requirements on people. These concepts sum up a lot of what I don’t like about Agile. Whenever I read the original Agile Manifesto and it’s accompanying Twelve Principles, my soul leaps! But in practice inside enterprise Agile frameworks, my soul is often left crushed. The philosophy despite its original intent has become productized, repackaged, and sold as a cure-all.

In my experience, there seems to be a strongly held belief that if you obey certain rituals: have certain meetings, say certain words, pray certain prayers, commit to improbable deadlines; your product will enter the Promise Land. It’s hard for me to rectify what I know about software development with this religion. I have resigned myself to being an apostate.

If you complain about Agile or criticize its effectiveness, you get met with some vitriol. I remember being pulled aside at a conference after a talk where I made a silly agile joke and someone from Mozilla chastised me saying, “That’s not real agile.” And they’re right… no True Scotsman would practice bad agile, alas…

Fowler’s explanation of “Taylorism”, a process popularized Fredrick Taylor in the industrial centers of the 19th century, illuminated my understanding of what I struggle with.

[Taylor] was from the late 19th century, in America, and he was very interested in trying to make people more efficient in the industrial workplaces that were developing at that time. His view of the average worker was that they were lazy, venal, and stupid. Therefore you didn’t want them to decide how they should make a particular piece of machinery, but somebody else, somebody who was a more intelligent and educated, they should figure out exactly the best way to do it… At the heart of this notion was that the people who are doing the work should not decide how to do it. It should be a separate group of planners who does this, and that strongly affected manufacturing and factory work through much of the early 20th century.

A lot of Agile processes I witness are actually Taylorism in disguise. Waterfall but with standups. Developers (especially on the front end) are treated as disposable, hot-swappable human resources rather than experts at their domain. Decisions are left to smarter people (“Architects”) or the vague umbrella of “Product” which is somehow disconnected from Engineering.

Less than ideal Agile strategies is something that effects my day-to-day. Based on conversations with folks around the world, I think it effects a lot of people. But Fowler’s perspective and patience with the Agile Industrial Complex gives me a foothold to keep from falling into hopelessness.