Michael J. Swart

August 10, 2012

Avoiding Problems

Filed under: SQLServerPedia Syndication,Technical Articles,Tongue In Cheek — Michael J. Swart @ 8:00 am

Takeaway: None really, I just wanted to tell a few stories and draw a bit

A long time ago, I had an interview and I was asked a question that (I’m guessing) was designed to evaluate how I approached problem solving. It went something like this:

Interviewer: “Say you’re a farmer who has a cow in a fenced field. But the fence is broken and you need a nail to fix it. The nail you need is inside the barn and if you retrieve it you leave the cow free to escape. What do you do?”
Me: “I think I would just go fetch the nail. I don’t think the cow will get out”
Interviewer: “But you can’t leave the cow alone”
Me: “I don’t know. I’ve been around cows and they’re pretty stupid. There’s a good chance they don’t know the fence has a hole in it. It will probably take me under two minutes to get the nail.”
Interviewer: “Ohh… You’re a problem-avoider.”
Me: !!!

“Problem Avoider”? That label took me by surprise. And even though it wasn’t meant as a criticism, maybe I did feel a little slighted by it. The implication is maybe that I don’t face problems that ought to be faced.

Since then, when I face a technical problem I often ask myself: “Am I a problem avoider?” “Am I refusing to deal with a particular issue, hoping it will go away?” I’d like to believe that the answer to those questions is yes and no respectively: I am a problem-avoider but I do not have my head buried in the sand.

Unapologetic Problem Avoider

Sometimes taking a step back to try another approach makes the problem go away. I was asked something like this recently:

Friend: For this set of data, how do I get the min, max, median values. As well as the value at the 25th percentile and the value at the 75th percentile.
Me: Oooh, I know this one…

I googled “NTILE” and was soon looking at the books online topic wondering if this was appropriate. After some thinking I decided to maybe avoid the problem:

Me: How many rows are we talking about?
Friend: Umm a couple hundred… maybe up to a thousand max.
Me: You can do this in C# right? Just load the entire dataset, sort it and then do index look ups after doing some arithmetic.
Friend: I was thinking of that, but I wanted to know your opinion.
Me: I think that’s the way to go. SQL Server already has to do the reads. The only thing we’re not saving is the network bandwidth. And that’s not much any way.

Problem avoided. But I think that the important part here is that the problem is still being faced; it’s just being faced in the right place and by the right person.

Taking Responsibility

But there are times when you can’t avoid a problem and you have to take responsibility. I’m not going to preach against procrastination. Mostly because I think Nike already has the best advice.

But I want to talk about procrastination’s second cousin: Doing-fun-work-first. Man, I do that a lot. Probably too much. I still struggle, but lately, my approach has been

  • to prioritize things and then be as objectively honest about the priorities as possible (no kidding).
  • Or deal with crummy tasks first in order to “get them out of the way”.

If you got any tips of your own, send them this way…


  1. It occurs to me that the interview would be 100x better if we replace the cow with a velociraptor.

    Comment by Michael J. Swart — August 10, 2012 @ 2:28 pm

  2. The Kobayashi Maru of SQL Server interviews.

    Me: “I take the cow with me to get the nail.”
    Him: “So you carry your burdens with you.”
    Me: “OK, I put the cow in the far corner of the field so that I have the best chance of getting the nail before he escapes.”
    Him: “So you rely on luck.”
    Me: “Alrighty then, I’ll stun the cow by beating him over the head with the fence rail until he’s in a stupor.”
    Him: “Security!”

    Sometimes you can’t win.

    Comment by Dale Burnett — August 11, 2012 @ 8:12 am

  3. I think the “problem avoider” is absolute hogwash. If we’re going to apply labels then if anything it should be “risk taker.” I’d rather have the latter to push a resolution then someone who’s going to sit on their hands. Should you decide not to leave the fence then the situation is doomed to ever being fixed. It’ll be just you, the cow, and the broken fence. Log jam. Status quo. If you leave to get the nail and the cow doesn’t leave you’re heralded a hero. Woe to the individual who does nothing and expects something external swoop in and save the day. They’ll be waiting a very long time.

    Comment by Gary Ciszewski — August 13, 2012 @ 11:51 am

  4. Dale,

    That’s hilarious. Wikipedia’s link (http://en.wikipedia.org/wiki/Kobayashi_Maru) on the topic is a good read too.

    Comment by Michael J. Swart — August 13, 2012 @ 12:05 pm

  5. Well put Gary,

    But maybe the experience did have some benefit, It made me take a look at my decisions from a point of view that I don’t think I would have before. I’ve worked with a few individuals who sit on their hands the way you describe. Based on the tone of your comment, so have you. Am I right?

    Comment by Michael J. Swart — August 13, 2012 @ 12:07 pm

  6. Yes Michael, you are quite right. My view is how can you break something that’s already broke? A fence? A query? A stored procedure? Although it’s true that you don’t want to add to any given single problem by creating a bigger mess, there is a talent for knowing when to push the issue and when to pause, wait, and re-evaluate, and try something different.

    Comment by Gary Ciszewski — August 14, 2012 @ 8:30 am

  7. […] Avoiding Problems – Powerful professional development stuff delivered with artistic flair, it can only be Michael J. Swart (Blog|Twitter). Just don’t call him a “Problem Avoider”. […]

    Pingback by Something for the Weekend - SQL Server Links 17/08/12 — August 17, 2012 @ 6:04 am

  8. […] as a veteran problem-avoider, I now feel distrustful and wary of the MERGE statement. And maybe I don’t mind the multiple […]

    Pingback by Be Careful with the Merge Statement | Michael J. Swart — August 17, 2012 @ 8:38 am

RSS feed for comments on this post. TrackBack URL

Leave a comment

Powered by WordPress