Let’s ban Superstition-Driven-Development (SDD)
The bane of our profession (software creation) is Superstition-Driven-Development (SDD). It seems to be related to the prevailing culture…
The bane of our profession (software creation) is Superstition-Driven-Development (SDD). It seems to be related to the prevailing culture of machoism in the field of software engineering. The so-called ‘brogrammer’ culture seems steeped in heroics, one-off bragging rights. The field is still littered with gurus, ninjas, sherpas and swamp guides.
Where does superstition enter the picture? Well, ask any of the alpha male brogrammers who have the boomiest voice in the team and who are speaking over everyone else in the meetings. For example, I can’t remember how many times I’ve asked an alpha male brogrammer if his team is doing refactoring, only to receive a cocky answer: “No. Refactoring is stupid because it takes away precious time that we can better spend solving customers’ problems!”
Or ask some of those Übermensch brogrammers if they’re doing Test-Driven Development (TDD). You may get a similar answer in a booming voice “No, because any time wasted writing tests is much better spent writing shipping code!”
Or, you may get a pushback from another side. Try to explain to those top dogs, who are coercing their team members to observe certain code coverage threshold, how code coverage is a meaningless metric, and they’ll fly off the handle. They will defend the usefulness of that metric with religious zealousness.
When you ask why, you’ll get a lot of macho posturing, with very little concrete evidence. It’s all about the prevailing sentiment, and very little (actually, nothing) about observing the facts, or god forbid, conducting some experiments.
Creating software by following some cargo cult drenched in some groupthink sentiment is what I call Superstition-Driven Development. You’ll easily recognize that type of development by the fact that it always triggers angry reactions whenever asked to examine some hard facts. Some of those brogrammer gurus act like My Pillow guy who recently had explosive temper tantrums when asked to supply evidence for his claims. “Forget the evidence!” screamed the My Pillow guy. “Listen to your patriotic feelings!”
When I try to demonstrate to some of those SDD gurus how I can easily achieve extremely high levels of code coverage by writing tests that exercise every line of the shipping code while asserting some meaningless truism (rendering all tests useless), they get angry and resort to yelling. They refuse to consider concrete facts and insist on the groupthink sentiments.
What’s that if not superstition? And shouldn’t we all agree that superstition has no place in any area of engineering?
It is high time we ban this type of thinking and working, and go back to the facts-based engineering.