Words matter. In the Agile community, Pragmatic Dave recently wrote about Agile is Dead and gave a similarly-themed talk. He argues that while “Agile” has become overrun with people looking to exploit noun agile as a the buzzword for their consultancies, its core values should still be embraced as an adjective. In the DevOps community, Seth Vargo recently wrote on the 10 Myths of DevOps - like the agile movement, the term “DevOps” is in the process of being co-opted by people looking to sell something.

In selling “agile” or “DevOps” as a product, you sell buzzwords (“iterations”, “retrospectives”, “continuous delivery”) that allow people to hold seminars and grant certifications . However, ultimately you are selling something “safe” - something that doesn’t look that much different than your own process. “Don’t worry, you’re doing fine, you just have to learn the buzzwords and hire a few Senior Engineers." As these terms spread out into the mainstream of the industry, they lose their meaning and start to be treated as vague adjectives for "good" or "how things are done" - the ideas behind them becoming useless, almost dead.

It’s strange to me that these movements can be co-opted so easily because I see them as sharing a very controversial message: how software relates to your business is broken. Agile says you cannot effectively develop software by throwing specifications from a “business” team to a “development” team: a software team needs to know about customer value in order to make the right value/effort tradeoffs. DevOps says you cannot effectively run software by throwing an implementation from a “development” team to an “operations” team: to maximize the customer experience (e.g. how the software runs in production), these must be the function of the same team. It is not simply a matter of continuing the existing organizational structure with a few more buzzwords and certifications - to reach its maximum potential, the organization itself needs to be rethought.

In college at the University of Illinois I loved “machine problems” (UIUC-speak for ‘programming assignment’). Challenging assignments with a clear set of deliverables. At one point I would have told you that my ideal job was a series of machine problems coming in and work going out. It’s a bit of a scary thought to those of us who have grown up programming but code isn’t enough to build a great product or produce a great user experience. Rather than this being a bad thing, the words “agile” and “DevOps” can point us towards better ways to develop both as organizations and individuals. No matter how watered down these words eventually become, they have this very confrontational core that’s worth remembering.