Agile Snake Oil
I remember the first time the agile movement got on my radar. During a session of heavy procrastination, I ran across an article on Extreme Programming that would define my career.
It was the start of the new millennium and I was in college. UML, CASE tools and heavy methodologies were the norm. Building software meant formal requirements gathering and technical analysis. All you had to do was translate from diagram to C++ and you were ready for the 4 month testing phase.
Yet here in this document, Kent Beck was talking about breaking all the rules. Automated unit tests. TDD. Pair programming. No big upfront design or useless documentation. To my twenty-something ears, this sounded like coding heaven.
As usual, the academic theory and real world practice didn’t always align. I’ve done my fair share of projects where we had to convince the customer that agile was the way to go. I got involved in the community and strived for a more agile world. I was the “scrum guy” on every team until that enthusiasm started to fade.
While I still believe in the values of agile software development, we have to be honest about the state of the community. We’ve gone from a group of coders who wanted to build better software faster, to a bunch of snake oil peddlers that lack technical skills.
You see, when XP or the Agile Manifesto launched, the core business was software development. Like in : using actual technology to build better solutions to problems.
How many of today’s Agile Facilitators build software? How many get their hands dirty and code? The visionaries of the noughties have been replaced by consultants who take no responsibility for the end result.
They babble about “visualizing value streams” and take everything “to the team” while not contributing much business value. They’ll do retrospectives on “happiness histograms”, yet get bored when things become “too technical”.
Companies pay through the nose to have Certified Scrum Masters fold paper airplanes. After a day of tossing ping pong balls, they get a deck of Planning Poker cards and a badge that says Agilista. Now they can share their wisdom at the next PostItCon.
Let’s imagine you require knee surgery. Would you pay the guy who tells you how to “visualise the health stream”? Would you play the “get well soon” Serious Game with gusto? Or would you prefer to have an actual medical specialist in the room? A doctor or nurse you can trust with the technical details of the procedure?
Agile Software Development is about software development. Yes, there is a bunch of soft skills involved. Yes, communication is sooperdooper important. Yes, it requires building great teams. But it is mainly about finding problems and solving them.
I’ve had the pleasure of working with awesome “non-technical” people that could fire up a team. Can you be a team coach without mastering software development? Sure! There are football coaches who never played a game in their life. The best ones, however, have learned their trade on the field.
Learning to code is difficult and it’s a hard business to get started in. A lack of software development skills is a handicap in a tech team. Let’s not lie about that. Let’s not make the mistake of pretending all that techie-stuff is irrelevant just because it’s hard.