We have all heard the term “best practices” to describe something in software development, maybe coding patterns or an agile process. But, over the past few years, I’ve adopted a new term, “leading practices,” and I think you should too.
The Problem with “Best Practices”
What the heck are best practices in software development anyway? The way I hear some people talk about them, you’d think they are some sort of holy grail. It sounds like a tried-and-true method everyone should follow to improve the quality of the software you create.
In reality, there is no definitive list. These practices vary between organizations, teams, and even individuals. What one person sees as the best way to do something will differ from how others would like to see something done. Sure, we can agree that things like code reuse and testing are good patterns to follow. But, the best practice can be vague and context-specific. There’s no magic solution.
However, this term’s vagueness is not my main issue. The term implies a finality that doesn’t fit the evolving nature of our field. It is called software for a reason: for its ability to be molded and changed over time. What was “best” a few years ago may not be effective today due to new technologies or simply because new patterns have emerged. We need to reframe our thinking while still having shared language that allows us to share what patterns work best within specific organizational or team contexts without creating a sense of inflexible commitment to these practices.
Why “Leading Practices” Makes More Sense
The term “leading practices” was something I was introduced to a few years ago and aligns more closely with the inherent change and fast-paced software space. Unlike a “best practice,” which suggest we have reached the pinnacle of achievement, “leading practices” better help us embrace continual learning and evolution of our field.
Adopting leading practices is nothing more than changing your mindset to recognize that even if something works today, you might need to reevaluate it tomorrow. It encourages teams to constantly look ahead, anticipate change, and adapt their strategies accordingly. “Leading practices” are about staying agile and open to weaving in new ideas and breakthroughs instead of feeling obligated to continue using practices of the past. “Leading practices” may not solve the subjectivity that comes from the world of “best practices,” but it moves us toward a more responsive and agile way of thinking.
Next time you find yourself needing to communicate about a pattern, use “leading practice.” It may just help you stay flexible and focus on continual learning.
I love this! I often say “current best practice” or “the best practice is X. This could change, best practices evolve, blahblahblah disclaimers…”
“Leading practice” sums it up well. I wonder if people understand what it means though without having to explain it. It’ll be nice if the term takes off.