Imagine an ant working at the top of a mountain. Next to it, there’s a sluice of melt water running and, at that moment, the ant removes a tiny particle from the rock face. A few hundred molecules of water quickly seize upon the shortcut, and gravity takes care of the rest. The individual rivulets on the mountain’s face eventually run together in a small brook, jostling pebbles and twigs along its bubbly trough. Running ever downwards, doubling in speed and force, the stream now catches up rocks, branches and other streams join the flow. Almost effortlessly, a mighty river is born carving its way through the massive granite over millennia. The imprint upon the surrounding landscape is a culmination of billions of tiny actions – wind, rain fall, freezes and even one tiny ant.
No matter how small and insignificant you might be, you can still be a catalyst of powerful change. An idea may give somebody the “Aha!” moment which, in a heartbeat, literally changes their entire outlook on life. They impart this change upon others and the process reverberates outwards – babbling brooks forming streams.
Telling a developer about the importance of automated testing is a mandatory, minimum requirement of being a software development manager. Kinda like grade school. You learn how to read, write and do basic arithmetic. Maybe you can even remember a favorite teacher, but the rest is a blank.
Showing a developer the ease of automated testing might get a spark started – TDD can become infectious if done right. You’re implementing learned knowledge (and, more importantly, how to cut corners and save precious time for other activities). And, this, unfortunately, is about the highest level most folks ever reach. They survived the manager from hell that forced them to write tests and improve code coverage without really understanding the underlying principles.
You must convince developers that code quality is their responsibility. Such an idea is on par with a university course covering human ethics and engineering. This is the tiny rock particle I mentioned at the beginning. And getting it moved will be one of many causes of positive and lasting change.
Just like telling a three year old “No!” for the first time, resistance will be swift and firm. Most developers burst out in a tantrum of foot stomping and howling. They don’t have the time much less the training to write tests. It’s not their job. Remain firm and show the benefits of moving quality control upstream. Toddlers know, deep in their hearts, the difference between right and wrong. Once you convince them they have the time, developers will too.
Next up on the list – telling system administrators about the importance of version control!