Thursday, 20 November 2008
Agile -- Epic Fail?
Hiya CardMeeting Users,
My reaction to friend/buddy/pal Jim Shore's blog post on Agile going pear-shaped.
I smelled this coming. There have been a couple of articles in the past two years that confirmed some suspicions of mine:
- Good Agile, Bad Agile
- Agile: Anatomy of a failed project
- and now Jim's really straightforward one: The Decline and Fall of Agile
I think Jim really gets to the nub which is that the painful parts of Agile are avoided on projects, and teams only do the fun/easy stuff. My response is, "Well what did you expect would happen?!"
Developers are lazy, but it's not just them and it's not really that. I think people are uncomfortable with being diligent and responsible. No one can say developers on a death march are necessarily lazy; heck, look at the hours they work. But are they being responsible? Is the team fully taking charge of their situation? Being on top of things constantly can be stressful, and grinding through tough times is often the least confrontational way to go. (Unfortunately, there never seems to be a way to grind your way out of a grind, you just sortof grind yourself into lots more grinding later on until you're finally all ground up. :)
The critical factor on the few Agile projects I've been on has been the project/product manager. What do I see in a successful Agile Project Manager? I see: a skillful politician, a visionary with the voice to clearly project his vision (the "keeper of the vision"), a proactive facilitator for developers, one who keeps the project from drifting by enforcing timeboxes and most importantly, one who has the guts to pull the plug on a failing project at the earliest possible point. Save everyone the trouble and anguish, and kill failing projects early on rather than deluding everyone into thinking that we can pull up out of the nosedive before we crash.
But guess what: ALL projects need that kind of management, and those kinds of strengths can make even challenging projects succeed (or fail gracefully.) There's nothing agile-y about having a great project manager.
My take as a non-Agile Methodologies Coach/Expert/Thought-Leader? Success in the chaotic world of software development requires bravery, drive, terrifying conviction, and a collective paranoia. I'd throw in righteous indignation, and patience and ethics of a saint if I could, but we're not there yet. Methodologies are second, let's start with endowing our people with spines, especially management.
I think everything Jim said about Agile being a good idea and being a success hundreds of times over is true. I like the humane way Agile approaches software development, I just think it's sometimes implemented too blithely.
Anyways, how does the threat of Agile going out-of-fad affect CardMeeting? Well, I've started by taking the word Agile out of the website, to be more agnostic. So, while I'm hoping Agile folks will continue to consider CardMeeting as a worthwhile tool, I'm also looking to add features to widen the appeal of CardMeeting beyond the Agile and Scrum circles, just to hedge my bets.
Speaking of CardMeeting, since the new website rollout, I've been focused on bugfixes and getting more server-side code written. The end of year is always crazy, so my progress has been slowed, but I'm encouraged by the recent uptick in CardMeeting traffic especially in the holiday season which has traditionally seen a drop in traffic. If you've been sharing CardMeeting with your colleagues across industry, please keep it up; the increased interest in the product has been very encouraging to me.
Thanks for using CardMeeting!
Cheers,
Dave Woldrich
Followup - 11/20 6:30pm
There was more I wanted to add to this post about what I think should happen with Agile going forward, but I ran out of time on my break today.
The first thing I thought was, "All that Agile and Scrum and all these methodologies need is more structure and formality. We need a certification process!!" Hehe, but then I stopped myself, because I realized that those sorts of things already exist, and yet here we are.
Actually, that last link, wevouchfor.org, is kindof interesting because it's like a referral network for professionals. You can't go naming everyone as being a great at what they do though, there's a limit to the number of folks you can vouch for. So, getting well known names to vouch for you sounds like it could be pretty valuable.
It's a neat idea, but I don't think wevouchfor is a resume builder in the same way that certifications can be. Plus, I see critical mass as an issue for wevouchfor, turning it into a bit of a navel gazing exercise for me. Therefore, if I wanted something like wevouchfor, I'd probably ask my peers for thoughtful recommendations on more heavily trafficked sites like LinkedIn. But I don't, so I haven't.
Then I thought, "College courses! We need college degrees in software engineering methodogies." Hmmm, on second thought, maybe we should establish good/useful Computer Science programs before we start getting all ambitious. :) My college program got me familiar with data structures and programming languages, but when I got out into the workforce, it was a shocker how little I knew. Ok brain, next thought!
Ok, and now I'm thinking ... "Uh... apprenticeships? Have a programming guild like we were plumbers or something!?" Well, the first thing that came up when I googled for programmer's guild was this: programmersguild.org. Thanks, but no thanks, I'd never want to add 'Exorbitant Union Dues' as a line item on my monthly budget sheet.
So ... without certification or vouchers or degrees for the professionals, I can't see "Is this agile thing a good idea?" question getting any easier to answer, because honestly if your people can't/won't implement with a proper methodology, then the possibility of failure increases, right?
Therefore, I think the way forward for Agile should be the addition of gravitas. Make 'going Agile' a really big deal, take it up to the CIO if you have to. Hold people more to account, I say. If you're going to do Agile, then the process of picking and choosing which parts you want and don't want should now be looked at with a WHOLE lot of stinkeye. There, the way forward is: Agile & Stinkeye. :D
