In one of my many visits to InfoQ to review other presentations and articles, I came across a wonderful interview with Andrew Hunt on Pragmatic Programming. Andrew discusses many topics including the 10 year anniversary, Pragmatic Publishers, and his opinions on the current state of Agile. You can catch the full interview here.
The interview is quite good, but the content on the current state of Agile and how it has diverged from his expectations was the real gem of the interview. Andrew had these thoughts on the current state of Agile:
“One wish — and we alluded to this a little bit in the Park Bench last night when we were talking about what you do think about the state of Agile today? On the one hand, it’s really wonderful to see such widespread adoption of the sort of low hanging fruit, the easier practices to adopt things like interest on unit testing and now expanding that into behavior driven development and more user acceptance testing and wire applications to that.
But a whole a kind of testing idea mean has really taken hold and that’s really good to see. It’s good to see people at least trying to do things like some of the less of palatable things like perhaps pair programming, which is really very effective on many levels. There’s actually cognitive research that shows the benefits of pair programming. It’s not just some weird funky thing to do. There’s real brain science that this is actually helpful.
And various other practices like that. It is great to see those adopted. The downside of that — and this is where it gets a little frustrating — there’s this sort of pervasive attitude that you do Agile. I’m doing the practices, I’m doing Agile. And that’s great but that’s not what we intended. We wanted people to be Agile.
We want people to be able to reinvent what they’re doing as they’re doing it to solve problems in context. And that idea of Agile being constantly evolving and adapting and changing itself, that we lost along the wayside. And again, it’s not that I’m pointing fingers at us or at the industry or at the crowd, that’s just how these things go for widespread adoption. But in the last couple of articles, I occasionally write a column in the PragPub magazine and I tackled some of these things about, this is what we meant back in the day about Agile and Agile adoption and these are things we kind of lost sight of. So the fact that it is supposed to constantly reinvent itself, you look right now, what practices is anyone doing today that are brand new or that have evolved out of the stew. Very few.
There’ve been a couple. There’s the planning game, there are various things here and there. But by and large, it looked like the original 12 or 13 XP practices and they’ve largely continued to unchanged in 10 years.
And to me that’s a bad thing. It’s 10 years. We should be doing something completely different by now, better hopefully. So I can definitely see things not going the right way there. You get — as with anything you get this idea sort of sloganization of terms. People will say, oh, yes, we’re doing story cards or we’ve got this, or we’re Agile or whatever the buzz word is with no understanding of why they’re doing it or what they’re doing but they carry the brand name around and think that’s good enough.”
In particular, he shared his thoughts that occurred to him when he read Tina Fey’s Biography:
“Sure. And this was an article I did in the most recent, I guess the August issue of PragPub magazine. And it was neat so — as with many things, I’ll be reading something completely unrelated, some news article somewhere or some book and it’ll strike me, oh, you know. That’s really — I can get an Agile lesson out of that. There’s a metaphor in there. In this case I was reading Tina Fey in 3rd Rock and — 30 Rock, and SNL and in her autobiography, she was talking about doing theory of improv and giving the rules for improv and I could just imagine a bunch of developers thrust in to do an improv session, right? One of them comes in and makes a statement and then the next developer says, no, that’s not it. And then the dialogue stops. When the first one says, well, here we are on the moon. The second developer goes, yes, and the dialogue stops. And kind of I feel that’s where we are now. It’s like somebody comes out with a great idea and the other players are like, yep, okay. And that’s it, the action stops.“
The Improvisation Metaphor
After watching this interview, the Improvisation Metaphor really stuck with me. I thought it was very appropriate and I thought it highlighted some of the current challenges I also see with Agile:
1) How much are we agreeing AND augmenting Agile?
I agree with Andrew in this regard. I frequently see teams and companies using the Agile practices as published without customizing them or challenging the principles set forth. (some of them may not work in certain client or project settings) I have seen companies feeling that they have failed and are not Agile if they aren’t doing Agile by the book. (whatever that means!) It is interesting to note that there have not been that many new practices arise over the last few years when we consider the large number of teams adopting Agile practices.
2) Should Agile be a methodology?
Once we are comfortable stating that Agile is our Methodology, I would propose we are not longer Agile. We are just following a different methodology and this is just as dangerous as following the Traditional Methodology. (OK, not as dangerous, but certainly not the intent of Agile) If we blindly follow Agile, then we are going against having an Agile Mindset.
Are we really improvising or just reading from a different script?
Frequently people view methodologies are scripts. This I feel is a mistake. Our methodology should be the Problem Solving Methodology and we choose the appropriate tools based on experience, the problem, and the solution. Agile or Light Weight Practices are a critical component of our Problem Solving Methodology and we should really be striving for an open methodology where the team can select what practices make sense for their situation. (and create new practices!)
In short, we need to continue the transition from Actors to Playwright-Actors and ensure we aren’t just acting a new script someone else has written for us.