Re-Evaluating Best Practices


May 18, 2016 by Kenneth Fisher

I was reading a blog post from my friend Randolph West (b/t) on Best Practices and a thought struck me.

Best practices must constantly be reviewed/reevaluated as knowledge and technology changes.

Starting with Randolph’s definition of a best practice (he got it from Wikipedia and it’s more than good enough)

A best practice is a method or technique that has been generally accepted as superior to any alternatives because it produces results that are superior to those achieved by other means or because it has become a standard way of doing things, e.g., a standard way of complying with legal or ethical requirements.

Best practices are great. They give us a consistent starting point when setting things up. However not only are everyone’s requirements are different but they are ever changing as well. We have to keep in mind that a best practice is what works best most of the time and if it isn’t working in your situation you shouldn’t feel bad about changing it. Not only that, but best practices change over time. They have to.

If you go back a few years (~10) you’ll see best practices saying that your Page Life Expectancy should be 300 (5 minutes). Can you imagine that now? A quick look at some of the servers I work on and not one was under 150k (41 hours). Technology changed. Servers now have a great deal more memory than they used to. And in 10 more years the systems will have again shown a dramatic improvement. How about Max Degree of Parallelism. The best practice not that long ago was 0. Let your queries go as parallel as possible. Recently that’s changed. Now you might see 4 or 8 (as a starting point). This is because 10 years ago if you had 8 CPUs that was one heck of a system. Today servers with 64 CPUs isn’t that unusual.

Times change, knowledge changes so best practices have to change. Don’t rest on your knowledge or the knowledge of others. Make sure you understand not only what the best practice is but why it’s the best practice. And then question it. Should it still be the best practice? Has technology changed? Have you thought of something new? And if you believe a best practice has or should change then test, test and more test. Ask someone else to test some more. Pass it around. See what others think. Who knows. In 6 months we may all be using your new best practice!

7 thoughts on “Re-Evaluating Best Practices

  1. notarian says:

    Sadly, when I google “What should Page Life Expectancy Be” I go right to a 6-year old Pinal Dave blog post which references a 10-year old MSDN page and gives the answer 300. For this reason I still have to fight with people over this. I have many sad tales of fighting for ridiculously small amounts of memory and this 300 is one part of it.

    • Yea, all kinds of bad information is out there. Take a look at recommendations for Cost Threshold for Parallelism. If you look at the dates of the posts you’ll see a rather liner progression up-word over time.

  2. I could not agree more with this. Design Patterns and best practice can sometimes become anti- patterns over time.

    I really think what separates a good developer with a great one is keeping up with change and the desire to keep developing your skills.

  3. […] Fisher (b | t)  recently wrote about Re-Evaluating Best Practices and, reading his post,  I couldn’t help but agree with him. Especially with regard […]

  4. Neeraj Mittal says:

    in total agreement. it should be reevaluated every six months.

  5. […] To be honest I could have put the table in another database but generally everyone has at least CONNECT to master. Combine that with granting the INSERT permission to the public role and everyone now has the ability to insert into the table. Basically I’m avoiding potential issues down the line. To be fair this is somewhat of a “Do as I say not as I do.” situation. There are certainly other ways to handle this that might be better. This was just easy. On a side note you can read about my opinions on best practices here. […]

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

Enter your email address to follow this blog and receive notifications of new posts by email.

Join 3,755 other subscribers

Follow me on Twitter

ToadWorld Pro of the Month November 2013
%d bloggers like this: