I wrote Write The Perfect Question (Of The Day) last week and yesterday dropped a note here about my latest question, Schema Renaming Fun. I’ve got a couple more in the pipeline (The Unusable User, and Alas Poor Snapshot, I Knew Him Well). Lessons learned/thought of so far:
- Make the case consistent on the queries, unless the goal is to make them think about case sensitivity or to inject a red herring
- Don’t post the clean up code with question, it can provide hints – better to just create it in TempDB, or create a question specific database that can be dropped, or put clean up code in the discussion (note to Steve Jones, would be nice to have a separate box on the submit form for clean up instructions)
- I think questions should be fun while still teaching something. Fun can be as simple as personalizing it, as you can see by my reference to “Mr. Grant” in my question View My Definition which is about issuing a grant
- Along with that, it’s fun (or annoying) to mildly confuse the issue by using what looks like a reserved word – here I created a database called Trustworthy for a question about setting trustworthy called In Database We Trust. Possibly too cute this time.
- I think a fun and even a bit misleading title can be useful
- Telling them it’s easy (or hard) can be a way to set expectations or confuse them. Not something to use every time.
- Not published yet, but Alas Poor Snapshot I Knew Him Well is an example of giving clues that require the reader to have some experience and make some inferences – it’s not a question where A + B = C if you’re a new DBA. These can be frustrating because of that, but also can spur growth. We’ll see how it’s received.
- My ideas come from stuff I work on, stuff I learned, stuff that surprised me. Don’t worry that it’s obvious, it’s probably not – and so what if it is? Not every question needs to be a PhD level one and its always good to circle back to basics once in a while.
- Start with that bit of info, then think about how you came across it. Is that the story, or do you need to create one to lead them to it?
- I’m not fond of questions that rely on large amounts of double back flip TSQL. Maybe that’s just because it’s out of my comfort zone sometimes, but I really want questions that teach me something. Debugging a script is fine and sometimes fun, but trying to visualize debugging – not so much.
- Its fun to write tricky questions, but will it be fun to try to answer it?
I’m planning to write a half dozen or so more. Fun to write something different, good to learn some new skills.