I’ve spent my whole life riding and training horses. I was always generally happy with the job I did training my horses. But as in software development, thought leaders in horse behavior have discovered better training techniques. And just as I always strive to learn better ways to deliver magnificent software, I also work with expert horse and donkey trainers to hone my equine training skills.
Today, my donkey trainer, Tom, helped me with some issues I’ve had with my donkeys. He pointed out that as prey animals, donkeys don’t respond well to predator behavior. Say I’m leading Marsela, and she stops to eat some grass. If I also stop, move towards her, and jerk on the lead rope, I’m mimicking what a predator might do. That isn’t going to inspire a good reaction in my donkey.
It’s much more effective (as Tom demonstrated) to keep walking, but make it exceedingly uncomfortable while Marsela’s head is down in the grass. That way, deciding to not try to eat grass is her own idea. She can eat grass and be uncomfortable, or not eat grass and be left alone. My habit is so ingrained, I found it almost impossible to not stop and move towards my donkey. Yet, this does NOT work!
In my experience, people developing software fall into the same trap. Here’s an example. I worked on a team whose managers talked a lot about agile, but where chaos still prevailed. I got an opportunity to apply agile principles to one critical project. The project was a complete success. I thought, hey, now we will get to try this on our normal development process! But a busy time period was upon us, and everyone panicked and reverted to the same old habits that didn’t work.
Falling into comfortable habits, even when they don’t deliver success, is apparently human nature. I suppose that’s why my sister can’t quit smoking. I don’t understand why we humans do this to ourselves. But every time my donkey puts her head down to eat and I stop, step towards her and jerk on the lead rope, I remember that this is NOT what will help my donkey walk willingly with me without grazing!
Nevertheless, I will keep practicing until the new habit of continuing to walk, while making it quite uncomfortable for the donkey to graze, and hopefully it will become my new habit. Same with software development – we have to practice new, more effective habits until they are second nature to us. Don’t beat yourself up for falling back into comfy old habits – but do keep pushing yourself to adopt the new, more successful ones.