Today we have a guest editorial from Grant Fritchey as Steve is away on his sabbatical.
It’s almost impossible to overstate just how important testing is to those of us in IT. Yet, it’s so frequently overlooked, ignored, played down, and just flat out dismissed, that I have a hard time understanding it. Very recently, NASA (you know, rocket scientists) reported that if they had not caught a bug in the software of the new manned vehicle, Starliner, it could have cost the lives of the crew (or at least the loss of the capsule in a test).
I’m a huge advocate for adopting DevOps practices. Getting teams to communicate and tear down unnecessary barriers that are slowing down development and deployment are so important for modern systems in order to move at the speed of business. Oh, yeah, and building in automated testing at multiple stages in the process in order to ensure that you’re not just introducing bad code to production faster. I advocate for a thorough DevOps process because, in my experience, and supported by our recent 2020 State of DevOps Survey, DevOps adds protection to your production environments. It doesn’t speed things up by taking away protection. It speeds things up by ensuring that your code is good before you get to production. DevOps and testing are joined at the hip.
But hey, let’s not talk DevOps. Let’s just talk technology. How do you know if the new index you’re proposing will speed up your queries? Don’t tell me execution plan, because that is not a measure of performance. Are you, maybe, going to do a little testing? See how many reads you had before and after the addition of the index? How fast the query was before and after? Yes.
What about introducing a new technology? We’re moving to SQL Server 2016 (I’d advocate for at least 2017, but that’s another discussion), but we must keep our databases in 2012 compatibility mode because of reasons. Just go with me on this. Can we still use clustered columnstore indexes and update the data in them? I honestly don’t know the answer, but you know what’s going to tell me? Testing.
Most of us are not going to kill people because we introduced a bug into production. However, we could cost the company millions. How are we going to move ahead as technologists in an ever changing, fast moving infrastructure that consists of change? Testing.