SQLServerCentral Article

Inside The Question of the Day

,

The Question of the Day is just what it's titled: a daily question about some aspect of databases or SQL Server. It's designed to be a learning mechanism with a bit of fun and competition built into it. We have had a few a questions, comments, and a bit of criticism lately over the questions, so here's a bit of history and an explanation of how things work. I've also included a few suggestions that could make things better.

Let me make clear that I'm not complaining back to you, but rather trying to put this information out in a place I can reference it rather than posting this over and over every time I make a mistake, which is more often than I'd like.

History

Brian Knight, one of the founders of SQLServerCentral.com, started the questions a long, long time ago, in a galaxy very close to this one, right inside it as a matter of fact. He was searching for a way to boost the interaction between the site and people, and decided that a daily question was one way to do it.

He was right, and thus was born the question of the day. Myself and Andy Warren, the other founders, were concerned about the daily format and the load of building questions every day, but agreed to let Brian put it up if he wrote the questions. He did for a year or so and then the task fell to Steve (me), and I learned to loathe the grind as much as Brian. Since then Brian and Andy have moved on to End to End Training where they have once again found themselves needing to regularly come up with questions that engage people. Fortunately they don't have to do this daily.

Me (Steve), on the other hand, continue to get stuck with deliverying the vast majority of questions on a regular basis. At last count, we had over 2000 questions, most of which I have written. Depending on how far in advance of publication I might alternately enjoy the challenge (> 2 weeks out), deem it busy week (between 1 and 2 weeks out), loath their development (less than one week), or outright hate and feel panic over the question (due tomorrow)!

What is the Question of the Day (QOD)?

I can't speak for Brian, but to me the QOD is a learning adventure. I often try to pick items that I havne't heard of or learned something new about. My goal is more to get you to think about a particular area of SQL Server or databases and perhaps learn a few things. We don't necessarily try to create an "exam" environment, but more a tickler of sorts that might cause a piece of information to stick in your big brains and recall it at a crucial point in time.

We give points, but honestly I score more questions at 1 or 2 points. I used to try a 10 point scale, but it took too much thought to figure out if it was a 5 or a 6. I could go to a 5 point scale, though I'd like to know how I decide how hard things are.

We don't try to trick you, but there are questions that have wrong answers. I try not to deliberately have typos or syntax errors. I've learned over the years that I make more mistakes in those areas than I have questions, so if you see something that's a typo, it's probably a typo, not a trick. At least if I'm the author 🙂

The QOD is not designed to be an exam or prep for certification. It's not designed to show best practices, though we would like to avoid worst practices. It's more of a teaser and self-check, but it's not an authoritative resource.

PLEASE BE SURE YOU READ THE COMMENTS if you have any doubt over the answer or if there's more than a couple comments. We do find issues sometimes and it's entirely possible I misread something or it's mistaken in BOL. We do try to correct them if possible.

The Process of Development

Every once in awhile I open my adminsitrative queue and there is a question of the day sprinkled in among the various article and script submissions. I typically attack these eagerly, looking to get some assistance with the questions. However many of these are duplicate questions from the past, often simple ones (what is the maximum memory standard edition can use), and so I have to inform the authors we won't publish it. Still others aren't well written, or need clarification of what the intent is. I try to work with the authors if they've given me a reference and good explanation. If not, I typically discard them and build my own.

Every so often I get one that doesn't fit the mold, like the recent "What is the condition to be used to extract records of the employees joined in the month of Jan, Feb, March, April, May, Aug from table employee having a field of join_date? " (April 4, 2008) This one looked interesting, more like a puzzle than anything, so I scheduled it in the rotation. It turned out that most people were thrown by an answer having the wrong column, which was unintentional.

Typically I work on questions every week or two. Something makes me think it would be an interesting question (article, blog post, etc.) and so I try to find a BOL reference and then build a question. Writing questions is something that requires a bit of flow, so I typically try to write 4-5 on the same subject area at one time. I spread those out over a few weeks so you don't get 5 questions on INDEXED VIEWS in a row. I usually work in one section of BOL, say Tables in BOL. I might get 4-8 questions from the various sections underneath this page.

If I can spare the time, I'll then pick another section of BOL and try to write 4-5 more and schedule those out. Do this 5 times and I have 4 or 5 weeks worth of questions. If I get a few from the community, then one day can get me 6 weeks out and I'm happer. If I can keep 4-5 weeks in my queue, I'm in a much better mood.

I do try to get BOL references whenever possible, but the nature of the questions sometimes means I used a blog (preferably an MSDN one) or an article for a reference. If the article is wrong, it's possible the question and answer are wrong. I try, but I'm not an expert in many areas, like SSIS for example. I'm out of my element on a few of those questions.

The question is often based on a sentence or two in the article, BOL, etc., so you can look for it. If you can't find it, feel free to post a question. My or someone else will try to quote it.

Beta Testing

At one point I got a lot of complaints about the "quality" of the questions and suspect answers. It probably wasn't much different than the last week where we had 3-4 "suspect" questions, but I reacted.

So I called for help and beta testers. I coded up a test section, created a group, etc., and signed up a dozen or so people. All "future" questions were visible to them and they could read the question, possible answers, correct answer, and explanation. The feedback system was the highly reliable and well-tested email-Steve-with-issues framework and it worked well.

For a week.

Then all but 2 of my "helpers" dropped out and I never heard from them again. One more dropped out after a few weeks and only the ever-helpful and very detail oriented Brian Kelley continued to give me feedback for a few months. But Brian also has a real job and other work to do, and I'm sure this wasn't the top of his priority list. Nor should it be.

So, I don't have "testers" or beta people now. I don't even have the code in place to make this happen right now and can't easily cut and paste this stuff into a distribution list.

And I don't think I want to. Those that would be most helpful then wouldn't get to participate in the QOD. The people that notice the issues wouldn't be able to meet the challenge in the daily newsletter. And their comments, corrections, and complaints wouldn't be seen by others.

And those comments are sometimes the most valuable. Like Hugo's comments on Locking. Those explanations are beyond what I could come up with on a regular basis and they show someone who has really though about how this works.

Areas of Improvement

Now that you understand how these things are developed, maybe you have ideas on how to improve things. Now I don't expect everyone else to do the work; this is my job, it's a challenge, and I agreed to do it.

However I'd like to encourage a few of you to try and write a question. Not "what does Getdate() return?", but a real question you'd want thousands of other people to see. It's tougher than you might think. I don't suggest this to get back at you, or even so that you are more sympathetic, but more so that you understand how mistakes get into the system.

If there are enough people that really want to volunteer, then perhaps we'll rebuild the beta system. Really think about that because if we don't have 40 or 50 people, then it won't work in the long term. I think it would be better to just get your comments in the discussion for the question.

If you have ideas on the point system, or would like it overhauled, drop a note in the discussion.

I'll try to be more careful on all questions, but it's a time resource that I don't always have. There are times I am moving through things quickly and something will slip through. If you have ideas that might make things work better, please let me know. Maybe there's a good way to more carefully proof the content.

"Types" of questions you want is always a good idea. I might have to commission someone, but let me know what you would like. If you know book authors, send me 5-10 questions and I'll promote your book.

I'm sure I'm missing something. Let me know and I'll try to make this work better.

 

Rate

4.74 (23)

You rated this post out of 5. Change rating

Share

Share

Rate

4.74 (23)

You rated this post out of 5. Change rating