Imagine this scenario: Your new house is ready. Your builder welcomes you in, gives you a tour of the place, shows you the lay of the land.
‘And here’s your master bathroom. Gorgeous, right?’
‘Why is it outside?’ you ask.
‘It’s the latest rage. I was just at a builder’s conference in Thailand. Every new luxury home has their shower outside. You’re going to love it.’
‘But we’re in Chicago. Where do I shower in winter when it’s freezing outside?’
The builder scratches his head, looks at you, smiles, and confidently says, ‘Trust me. It’s one of the best practices these days.’
And there’s those words — ‘best practice’. It’s the end to an argument, in much the same way that Trust Me or You’re Wrong will instantly put an end to any discussion. How can you argue against best practice? It’s an effective, passive aggressive way to avoid explaining why your design is best. It’s especially effective when you have no idea why you chose a design other than someone else labeling it best practice.
In the fast paced world of technology, especially software development, it’s an expectation that we will apply industry best practices to all of our projects. The problem, however, is that best practices are always context and time sensitive. What’s best practice today may be old news tomorrow, and what’s best practice for one customer may be a total disaster for another. More importantly — who gets the honor to stamp a particular design pattern as best practice approved? Just because the vendor of a particular software product declares something as best practice does not mean it applies universally to all its users. Using two characters to represent the year was best practice in the 80’s when memory was a luxury, but Y2K showed its flaws, and memory is cheap and abundant today.
It’s our role as thought leaders to select design patterns from our library of experience (and Google/Stackoverflow) and creatively apply them based on our customers’ needs, budget, and long-term technical architecture. If you come up with a solution that hits all of these, but doesn’t meet the vague definition of someone’s ‘best practice’ — so what? You might just find that your new design pattern become’s someone else’s practice tomorrow.
…or, you can just close your eyes to reality and wonder why you’re taking a shower outside when it’s snowing.
This post was originally posted on Medium