Another month, another T-SQL Tuesday. Edition 180 already. Our host is Josephine Bush, and she opens a topic that hits close to home for me: is good enough, perfect?
I know my weaknesses. I know that my perfectionism is one of them. I know that striving for perfect is not always the best thing to do. I know that perfect is the enemy of good enough. And yet, I also embrace my perfectionism, allow myself to indulge in it … at the right time.
Sometimes, good is good enough
I am a consultant. Customers pay me money in exchange for fixing their problems. I am always aware that every minute I work on their problems, I impact their bottom line. I am always aware that I need to provide value in order to warrant my rates. And so, I know that I have to contain my perfectionism. If they send me a query for a report that has to finish in less than 5 minutes but currently runs for over an hour, then my work is done once I have found a way to get it to complete in less than 5 minutes. Even if, looking at the query, I feel that if I just work on it for another hour or two, I might get it even to less than 15 seconds. It might still annoy me to submit an improvement that doesn’t make the query as fast as I think it can (and should?) run. But I get paid to make the query run fast enough. Not to make it run as fast as it possibly can.
But it’s not just paid work where I choose to contain my perfectionism. A few years ago, I started my YouTube channel. The first videos there were recordings of sessions I had live presented to an audience. Often as a remote presentation, which was the only way I could present during the Covid pandemic. And later I decided to also put recordings of my other conference sessions there, or even completely new sessions that I had created specifically for this channel. Such as for instance the Database design made easy series. For all those videos, I made the deliberate choice to keep this a (relatively) low effort work. Basically, the live presentation experience, but then recorded. During a presentation, I will stammer, I will look for words, I will misspeak and then (hopefully!) correct myself. And there will definitely be umms and coughs and all of that. I could, in theory, edit the videos to fix all of that. I could allow my perfectionism to run wild and spend countless hours to make it the perfect video. But I don’t. I made the conscious decision to stick to the live conference experience. Just me talking, not scripted, minimally edited. The only thing I invest real time in is to add proper captions – because auto-generated captions suck!
And sometimes, it just isn’t
But there are also things I do that I consider my “love babies”. Things that are very close to my heart. My blog is one of those, and I really put in a lot of effort to make sure that there are no mistakes in my posts – and yes, I know that despite all that effort, it still happens from time to time. But I try!
I put even more effort into the SQL Server Execution Plan Reference, a free resource where I describe every operator you can find in an execution plan in minute detail, sharing everything you might want to know about it (and probably even some things you would rather not have known). This is a product of meticulous research. And where my blog is mostly write only, the Execution Plan Reference is not. When I find new information, when I discover I have been wrong, when new versions of SQL Server change the behavior of an operator, I will go back and edit the corresponding page, as soon as I find out. And if someone sends me feedback on anything I have documented in the Execution Plan Reference, I will always check to verify, and then update the page with the new information. The Execution Plan Reference is “my baby”. My gift to the SQL Server community. I want, no need it to be as close to perfect as I can. No matter how much time that takes.
And then there is the SQLServerFast Execution Plan Video Training. A project that started when Pinal Dave, after attending my pre-con on execution plans, suggested that I should record that pre-con, so that more people can access the information. I liked the idea, but also realized that this would be an opportunity to provide even more, to include all that extra information that I had no time for in my pre-con. Even though it is far from finished, it is now already at over 18 hours of content, and I expect that, over the coming years, at least 10 to 15 more hours will be added. Now, this is paid content. I think the prices are very reasonable, but I do indeed charge money for most of this content. So I feel that I have to make sure to put in every effort I can to make it worth the money you pay to access it. So here, once more, I allow my perfectionism to run rampant. I carefully prepare the script for each video, weighing each word you hear me say. I invest the time to edit the recording, removing uhh’s and hmm’s, and even too loud breathing. When I make a mistake, I will re-record that segment of the video. When, during editing, I notice an annoying background noise, I will even do the entire recording again, just to ensure that you have the highest quality I can deliver. This does not come for free. Since starting this project, I have invested over 850 hours of work in it. That works out to over 45 minutes of work for every single minute of completed product! But I do not regret it. I will not cut back on my perfectionism. I want each and every one of those videos to be a product that I can be proud of, and a product you won’t regret buying.
If you do consider buying access to these videos, then now would be an excellent time to do so! My Black Friday sale is open and lasts until the end of November. All prices are cut in half. And if you happen to have a discount code from attending one of my sessions or pre-cons at a conference, then you can use those for an additional 10% or 20% discount on top of that!
Conclusion
Perfect is the enemy of good enough. But sometimes, good enough can also be the enemy of perfect. When I work on the customer’s dime, I need to contain my perfectionism, because I am spending someone else’s money. But when I’m on my own dime, I am free to pick the projects that I will simply do good enough … and the projects where I will indulge my perfectionism to create something truly awesome!
Thanks, Josephine, for hosting this T-SQL Tuesday!