The true meaning of ‘no silver bullet’
We often hear the tired old cliché that “there is no silver bullet”. The way most of us interpret that statement is to mean that there is…
We often hear the tired old cliché that “there is no silver bullet”. The way most of us interpret that statement is to mean that there is no product or method or a trick that can guarantee successful results. In whatever it is we are doing.
So, any time someone mentions the latest, most exciting breakthrough, or development, skeptics always meet such enthusiasm with the sobering “there is no silver bullet”.
But I’d like to examine that saying a bit further. I wouldn’t want to toss the baby out with the dirty bathwater, therefore I’m interested in understanding what is meant by the ‘silver bullet’.
Let’s look for example at a weight loss program: if I realize I’m overweight and I want to shed some kilos, I know that I must change something in my lifestyle. I am not going to childishly believe that those kilos will miraculously just melt away because I wish it to be so.
What are my options then? I could change my diet, or I could improve my exercise regime. Or both. Whatever I do, I am expecting positive results. But again, if I don’t do anything, I cannot expect noticeable reduction in my weight.
Now, we all know people who decided to go on a weight loss regime of some sorts (e.g., changing their diet or changing their exercise routine, or both), and who, after trying for a while, gave up. They threw their hands up in exasperation, claiming that nothing works, nothing helps.
To them, the promised ‘silver bullet’ (i.e., the change in regime which was supposed to deliver promised results) does not seem to exist. They are then quick to write the proposed regime off, and call it ‘snake oil’.
After being disappointed and burnt by such negative experience, they may feel the urge to generalize it and insist that there is no silver bullet, period.
But is that really true? If we were to examine what’s going on a bit more closely and carefully, we would probably notice that the practitioners were most likely not sticking to the required practices. We all know how easy it is to slip and skip a day or two, to have unplanned eating binges, and so on.
After slipping in our practice like that, to blame the regime and the method for poor results would disingenuous. But we see it happen all over the place. People are quick to exclaim how there is no silver bullet!
In reality, however, if we were to stick to the prescribed regime (i.e., eat healthy and in moderation, exercise daily without missing a beat), there is absolutely no possibility that we wouldn’t be able to see positive results within reasonable time frame. What we can conclude is that there is actually a silver bullet, but no silver bullet can guarantee successful application of its promise.
To put things more bluntly, you can lead a horse to the water but you cannot make it drink.
Silver bullet in software development
Many software professionals are quick to point out that there is no silver bullet in software development, maintenance, and releasing. But similar to the failed attempts in losing weight, many of those people have tried certain silver bullets, as prescribed in the industry, and failed to apply them consistently. As a result, they got frustrated, annoyed, and dropped the planned regime, insisting that it’s nothing but a bunch of buzzwords, or snake oil.
For example, one of the proven silver bullets in software development is Test Driven Development (TDD). Applied properly and consistently, TDD guarantees brisk delivery that has technical excellence as its underpinning.
However, TDD is not something that could easily be done after getting acquainted with the method by reading a blog post or two, or watching a couple of instructional videos. Same as one cannot become a chess master by learning the rules of the game and watching a few notable chess tournaments, one cannot become good at doing TDD by investing only few days/months. It takes serious practice and dedication to master TDD. But when we do master it, we realize that it’s indeed a silver bullet.
Same goes for many other time-tested methods and practices in software engineering. It takes considerable effort to master those practices, but in the end one gets to the point where one realizes those practices work as advertised — they are silver bullets.
The conclusion is that, while there are indeed silver bullets, no silver bullet can enforce its proper application. It is our individual weaknesses and inadequacies that make silver bullets inefficient.