I’ve been aware of the term ‘smell’ as related to software for (at least) over a year now. A smell in testing terms is an oracle; something fails the sniff test. We may not know exactly what, or why, but something just doesn’t smell right when you open the fridge editor.

Smells are useful.

Smells lead you to bugs.

But I realized there is a (near) fatal flaw to smells. The problem with smells is that they are trailing indicators. That is, they confirm something we already thought. Unit tests, green bar and high coverage are all trailing indicators.

What we need is a set leading indicators to help us treat software quality holistically rather than just a phase in a larger process. I don’t have a list to provide, but my gut makes me think that these are less about the code and more about the people that produce the code and the culture they operate.