June 23, 2008

...Learn TDD with Codemanship

Self-Directed Learning & A New Direction for Little Old Me

This is going to sound like a very damning confession from someone who earns his living teaching and coaching software developers, architects, analysts, managers and the like.

My own experience on the receiving end of the services I offer is that - while I'm quite capable of learning - I cannot be taught.

When I look back, I see a long history of my taking an interest in something, going out and buying a book or three about it, and figuring it out off my own back.

Being locked in a room for 5 days with some trainer with a data projector and a set of PowerPoint slides just never figured in my own professional development. Sure, I went on courses. But I look back and I have to honestly admit that I would have done just as well to read the book and try stuff out in my own time and at my own pace.

And that's my latest epiphany about what I do. Just as I finally realised that an architect can't really make all the design decisions for the developers, a teacher or coach cannot learn on your behalf. They can lead the horse to water, but they can't make you drink.

So if I'm sat in a room full of experienced developers and I'm supposed to be teaching them, say, Test-driven Development, or OO design, or UML, or whatever, the first question that pops into my head is "why don't they already know this stuff?"

If they really wanted to learn, than - at some point during their lengthy professonal careers - they would surely have picked up a book about it? The fact that they didn't sends a very clearly message. They don't really want to learn this stuff.

Which might explain why so many courses I've delivered, and so many coaching assignments I've done, have essentially been taken up largely by efforts to persuade people that this stuff actually has value and that they really should want to take the time to master it.

And that niggling little voice has been gnawing away at the back of my mind for years now. People - especially grown-ups - learn because they are receptive. The very fact that they have hired me to come in and try and bash it into them suggests that they were never all that up-for-it in the first place. And oftentimes, I'd just be wasting my time.

They're smart people, of course. They'll apply themselves and get through the training or coaching. But a few days or a few weeks with me sitting next to them saying "shouldn't we write a test for that first?" and "do you think we should draw a picture of this before we try to code it?" barely scratches the surface of their ingrained values and habits. The people who really learn and who eventually master these techniques do it the way I did - off their own backs through months and years of self-study and practice. They may have collaborated and helped each other out (as good students often do), but ultimately a lot of it was entirely self-directed - like anybody who gets really good at something.

My recent experience with BBC Worldwide has been one of the most satisfying professional experiences I've had in my career. And I put a lot of that down to the fact that I approached it with total realism for the frst time. Anything I genuinely believed wouldn't work, I didn't do. In particular, I didn't kid myself that I was teaching them to be better software developers. That has always been a great conceit on my part - and on the part of everyone who dares to believe that they can teach intelligent, educated, independently-minded adults.

Instead, I finally admited that my real job is to persuade people that they want to learn. And not in any bulls**t manipulative way. I've focused the largest part of my effort on being a catalyst to help recharge people's interest and passion for what they're doing.

And it was always there in each and every individual working in the IT department - even (gasp!) the project managers. Scratch the surface to see beneath the years of rough-and-tumble that jades all of us if we stay in any job long enough, and you'll see that even the most jaded of us really does care.

I haven't taught the folk at BBC Worldwide a single useful thing. They taught themselves, and continue to do a great job of that. If they're special, it's only because the BBC culture stills dares to cultivate passion and genuine curiosity and open dialogue, while many corporate environments try to stamp it out.

But I'll bet you this: every person in your IT team probably cares just as much as the folks at BBC Worldwide. Given the encouragement and support they need, they would be every bit as capable of the kind of transformation these folks are driving from the bottom up. It's all there - all that potential - bubbling just below the surface.

It takes a lot of courage to stand back and just let it happen. The managers at BBC Worldwide have allowed me to pursue a fairly radical way of catalysing change. And even when it really p**sed them off, they acknowledged the results and let me continue. Cultural change is the hardest of all, but it gets the best, longest-lasting results. I take my hat off to the boss who allows anyone to come in and start rocking that boat!

The experience for me has been transforming, too. I'm not the same consultant I was a year ago. And my career goals have changed as a result of this experiment. I now know that encouraging people to care and to take responsibility for learning and sharing knowledge as I have done, and the folks at BBC Worldwide are doing now, is the be-all-and-end-all for me.

Posted 23 hours, 48 minutes ago on June 23, 2008