It’s May 2021, it’s Tuesday; that means it’s time for T-SQL Tuesday, the monthly blog party for all SQL Server and Data Platform bloggers. This month is hosted by Andy Leonard (b|t). Andy invites us to share our thoughts on how we deal with technology changing as we are working on our projects. As an example, he mentions how, just after the release of his book on building custom SSIS tasks, he ran into things that had changed and had to publish an errata list.
My experience
Andy’s example hit home for me, because I regularly run into similar situations. In my case it’s not even always technology changing. No matter how much research I do, I regularly discover new cases that prove my previous understanding wrong. Or, rather, incomplete.
So, what do I do when I discover that content I have released earlier, based on my best understanding, is no longer correct. Or possibly was never correct at all?
Well, that depends on where and how I released that content.
Conference sessions
I’ve done a lot of public speaking over the years. Before Covid-19, this was usually in person at a conference, for the attendees, and once I was done the session was over. Only very rarely were sessions recorded and made available on channels such as e.g. YouTube later. The last year, due to Covid-19, conference sessions are delivered over videoconferencing platforms such as Zoom, Teams, and others. These have recording capabilities built into their toolkit, so now it’s much easier for organizers to record the sessions and make them available for later viewing.
When I present live, and there is no recording, then obviously the content is presented based on the as is situation of that time, and based on my knowledge at that time. When new technology emerges, or when I discover I was wrong on something, no one will expect me to build a time machine and alter history by changing my live delivery.
When that same presentation is recorded and uploaded, that recording typically becomes property of the conference organizer; they manage the upload process on their own channel. Even if I want to have the recording changed, I can’t. But frankly, I don’t want to. A recording of a session is exactly what you’d expect it to be: a recording of something that took place. It should not be changed later. Then it’s no longer a recording of that event.
Regardless of in person or virtual, conference sessions are given as is, and the recordings (if any) are a recording of that session at that time. You should expect them to become outdated over time. When watching recordings of older sessions, from me or from anyone else, always keep in mind that time has passed, technology has changed, and what you hear was valid at the time it was presented, not necessarily now.
Blog posts
I see blog posts, on my own blog but also those that I read on other people’s blogs, as a snapshot in time. They describe something that was true, for the writer, at the time of writing. When I read a blog post, I always check when it was written. The older it is, the more I am aware that I need to double check if what was true back then is still true right now.
I trust that others treat blog posts the same. So I make no effort to keep them up to date. I guess, if one were really interested, they could read my blog posts and actually make some interesting discoveries about when I discovered what about which subject, and how horribly wrong I have been before.
So this means that, as new technology emerges, or as I learn new things about existing technology, I will not go back and update my blog posts with this new information.
Execution Plan Reference
Where conference sessions and blog posts are by nature a snapshot in time, a reference is not. The Execution Plan Reference is called a reference for a reason. It is of course the work of a single person and as such it’s possible that it’s incomplete or incorrect, but I strive to ensure that the completed parts are as accurate as they can be.
So this is an area where I do get back and update existing pages when technology changes. If Microsoft releases new execution plan functionality in a new version of SQL Server, or even in a cumulative update, then I will update relevant pages with that new information. And if I stumble over something that I had overlooked or misinterpreted before, or someone contacts me to point out an error or omission, I will investigate the issue and update the relevant pages with new information as soon as I can.
For people who use the Execution Plan Reference purely as a reference, to find information when they run into something they don’t understand, this means that they can trust that the information they find is always up to date. Or at least as up to date as a project maintained by a single person can reasonably be.
For those who read all information I post to the Execution Plan Reference, I maintain a change log where I track all modifications. This enables people to stay up to date on all information, without having to constantly monitor all pages for changes.
Execution Plan Video Training
For the SQLServerFast Execution Plan Video Training, I have similar considerations. Okay, this is not a reference of course. It’s a set of pre-recorded training videos. Like a training class that you can watch when you are ready.
I sell these. And it would not feel okay to charge money for something that is outdated. Or incorrect. So this, too, is an area where I keep editing my videos with new or updated information as and when I find that something is no longer correct.
This can be a lot of work. I will of course not re-record a full 45 minute video if one or two minutes of content need to be replaced. I will only re-record the parts that need to be changed. But those who have worked with Camtasia will probably understand that editing the video with the new content can be a challenge. I use lots of special effects, animations, annotations, and other features, to enhance and enrich the experience of the viewers. Replacing a section of the video with a new recording that is not exactly the same duration is a real challenge. One mistake and all the effects and animations in the rest of the video are out of sync. Or the audio track and the video no longer align. Or the captions get ahead of or behind the actual audio. So that’s a lot of effort. But I feel I have to do it, for content I charge money for.
Unfortunately, Vimeo (the platform I use to host the training videos) has no simple way to inform people about updates. That can be a good thing: over the past months I have made several changes to the content that are really minor. For instance, while preparing the content for the advanced level of block 2, I decided to change the way the content is distributed over the chapters. In earlier videos I had already included “for more information see …” references to these chapters; I have changed these and nobody got a notification that they changed. Which is good, because it’s not really a change that warrants re-watching the video.
But sometimes, I make changes that actually add or modify information. For instance, when version 18.5 of Management Studio released and really changed the way Estimated Number of Rows and Actual Number of Rows are displayed in execution plans, I had to make major changes to some of my already finished videos and those changes did warrant a new viewing for interested people.
If you do want to stay up to date on major changes to already published videos, the best things you can do are to keep an eye on this blog, follow me on Twitter, and click the “Receive Updates” button for one of the already completed blocks (unfortunately, this button is not available on the page for the free first block of videos). That will add your email address to my mailing list, enabling me to keep you updated on major changes and upcoming new releases.
Conclusion
Andy wanted to know how we deal with technology changes. Some bloggers will probably use this opportunity on how they keep learning day over day to not fall behind, and I’ll read those contributions with great interest. I chose to not take that angle, but instead looked at how I deal with existing content as technology advances. Or my understanding.
The bottom line is that there is no single answer. For some content, such as the Execution Plan Reference and the SQLServerFast Execution Plan Video Training, I invest the time and effort needed to ensure the content remains up to date. Other content, such as blog posts and recordings of conference sessions, I consider to be a snapshot of a point in time, that represents the state of technology (and my understanding of it) as is.
Thanks for hosting, Andy, and for providing an interesting topic that, without your invitation, I probably never would have written about.