Friday, February 12, 2010

Scrum and the Real World

Recently, I attended a two day CSM (Certified Scrum Master) training class from a local company which both practices Scrum internally as well as serving as coaches and teachers to other companies wishing to move to Scrum. It was a good class, though I'd attended essentially the same class about two years ago when I first came to my current company.

Let me start by saying I'm a fan of Scrum, I tend to think it's a reasonably sane approach to managing a project. But I don't think it the be-all-end-all fo software development and I think there are other ways to get to the same destination, namely, high quality software, happy people, and minimal overhead.

My biggest problem with Scrum is that I feel sometimes it's proponents sweep "real world" issues under the table a little too quickly. Namely, they often lack a certain pragmatism. In fact, at least one of the two instructors this time around seemed fairly pragmatic. But I wrote him after the training and here's the email I sent.

I hate to sound like a broken record, but where I come into conflict with those who preach Scrum (being a big fan) are that they presuppose a "start state" that just does not exist in many cases. Some of the biggest mistakes I feel that I’ve made with Scrum have been to cede authority to the team, who were simply not equipped to handle such responsibility properly.

I liken it to giving a credit card to a college student away from home for the first time. This student should be responsible with his credit card. He should pay off the balance each month so there is no interest. He shouldn’t make purchases he would not otherwise make if he didn’t have the credit card. These are all absolutely reasonable
expectations to have for the recipient of our credit card.

So, we give him the credit card. He’s "empowered". What does he precede to do? Maybe he does exactly those things. But for some, even though previously they might have been fiscally responsible, the notion of a credit card is intoxicating. A person from such a group suddenly finds himself racking up all sorts of purchases he can never pay off and with no one watching over him slides deeper and deeper into debt from which he can never extricate himself.

So, is the answer then to never give this person a credit card? How do teach the person to use the card responsibly without giving him a card with a 20,000 limit off the bat?

Some of my failures with Scrum were due to placing *too* much into people who didn’t really deserve it. Oh, they seemed to deserve it, but they didn’t. And fundamentally that comes down to people. But "people" are always the hard part. As I think you guys mentioned, put a team of great people on a project and irrespective of methodology they’ll figure it out.

If the prerequisite to make Scrum work is a team of highly motivated, competent people who value the things that Scrum values, I’d submit it’s not adding much value. They would succeed anyway. Sure, Scrum’s a great way to get to that destination, but I’d submit plenty of other approaches that would work just as well.

Just teaching people Scrum and repeating the tenants of the Agile manifesto to them doesn’t make the *truly* value those things. Some percentage will really convert, but many will still value what they always valued. They will never apply Scrum with enough thought or criticality to be successful. And if they do, I would submit they’d probably succeed just as well without Scrum (or with a whole lot of Scrum-buts).

To me, the real promise of Scrum is for teams that *are* dysfunctional. What if everyone isn’t motivated? What if everyone isn’t competent? Because in more companies than not this is the case. Sure, you can say fire the bad people, get only good ones, etc (and I try to do this), but let’s be frank about the reality of many people’s lives. I would suggest Scrum still holds an awful lot of value. And that’s where the gap is. Making Scrum work with the dream team is easy. How do you make it work with reality is what is so tough and what I think sometimes is neglected.

2 comments:

Joshua DeWald said...

Would love to have seen his response, as I think you bring up good points. The members of competent team is... competent and will get the job done whether it is within, or in spite of, a methodology or not.

But in practice, there does need to be some real guidance because even if the member are competent, the team itself might not jel and really needs something above to keep them moving forward toward a deliverable.

Code Monkey said...

Well, unfortunately I muddied the waters by immediately writing him a second email about the job postings is company had, expressing surprised that they were very "traditional" with requirements like "X years of Java experience", etc rather than the more loose 'Smart and gets things done' type listings I personally prefer.

So, he responded to that one, but I think it distracted him from answering these specific questions.

My personal take is that Scrum is either equal or better to most other methodologies, but it certainly has its challenges when the team is not composed of "great" people. Again, my main beef is the somewhat dismissive tone I think Scrum proponents take when you start bringing up real-world difficulties. That doesn't mean I don't think it can work in such situations, just that most of the formal Scrum literature glosses over these things and you're left to try to figure it out on your own. I think Scrum people do themselves a disservices by doing this.