April 25, 2008

...Learn TDD with Codemanship

Dependency Rejection

One of the risks in being helpful - in any useful or practical sense - is that you can wind up creating a dependence on your ability to solve other people's problems.

If you fix the build for someone, then there's every danger that the next time their build breaks, they'll come to you to fix it again. If you solve a design problem - like how to map a complex or derived association using Hibernate - then the next time they have a fiddly bit of O-R mapping, they'll be knocking on your door.

And in the longer term, by stepping in and fixing things for them too readily, you're not doing them - or you - any favours. I dated a girl when I was 16 whose mother washed and ironed all her clothes. Whenever she needed her pink blouse or her 501 jeans or her Frankie Goes To Hollywood t-shirt she would go to her Mum. And if her Mum was busy, or not there, she would stamp her feet and get very frustrated. It never, ever occurred to her to stick any item of clothing in the washing machine or run an iron over it herself.

When she got to university, she had her boyfriends wash and iron her clothes, I was reliably informed. And I heard gossip recently from an old school chum of hers that her husband does all the laundry in their house. I wonder if he'll teach the kids to do their own washing and ironing?

Anyway, I digress. As a coach and consultant, I'm learning that the kindest thing you can do for your clients is to let them figure things out for themselves. That's the best way to learn. It's the only way I've seen lasting change happen. When we step in and steer the boat for them, they tend to take their hands off the wheel and leave the driving to you.

Potty training didn't go exactly as planned

But it can be tough - like leaving a child crying because he needs to learn to go potty by himself. Sometimes it takes real resolve to stop yourself from stepping in.

And, yes, that does mean that - in the beginning - there will be palavas and tempers and tantrums, and sometimes you'll end up with poo on the floor.

But if you can get over that difficult stage of breaking the dependency, you'll more likely as not be rewarded with a client that has really taken the lessons on board and who takes responsibility for solving their own problems more readily.

Lest you wind up just being the "build guy" or the "Hibernate guy", which means the moment you walk out the door, there'll be poo on the floor again.

Posted 13 years, 1 month ago on April 25, 2008