SQLServerCentral is supported by Red Gate Software Ltd.
 
Log in  ::  Register  ::  Not logged in
Search:  
 
 

Is all code really code? One question from an interview

By Andy Warren, 2004/07/09

Total article views: 11803 | Views in the last 30 days: 4

When we hire new employees (at my day job) we start with a phone interview. I've got a list of a couple dozen questions we run through that give us an idea of whether we should consider bringing the person in for a more in depth interview. While a discussion of those questions is probably worth an article in itself, we'll stick closer to SQL today and talk about just one of the questions I ask of candidates for senior developer positions.

Here it is:

"A junior developer comes to you with the following problem. They have a SQL stored procedure comprised of about 200 lines of business logic. The procedure executes without error but does not return the expected results. Without looking at the code, what guidance would you offer that would help them solve the problem?"

Think on it for a minute, I imagine you'll think of a couple different options and maybe a couple questions. What do you think is the common answer?

Answer: Add print statements to the code.

Other answers I've been given:

  • You shouldn't have that much code in a single stored procedure
  • I'd have to look at the code
  • Have them check the data

In 10% of the interviews they'll suggest using a debugger, either the one in Query Analyzer or the one in Visual Studio.Net.

So let's talk about what I think about the answers briefly. Adding print statements isn't the worst idea, similar to adding debug.print or debug.writeline statements or whatever your language of choice supports. What I look for is do they go the extra mile, suggest putting one inside every branch, or putting one halfway to cut in half the lines of code to inspect. Too much code in one proc? Hard to tell based just on lines of code, but I don't see 200 as excessive - still, I'm open to a discussion on that point. Looking at the code? Sure you want to look, but I'm looking for someone who doesn't HAVE to look, they can explain how they solve the problem to someone else in repeatable fashion. Checking the data? Definitely part of the process, bad data happens far too often, always a factor to be considered.

Possibly you can tell I'm a fan of the debugger approach. Why? Suppose we reframed the question to look something like this:

"A junior developer comes to you with the following problem. They have a VB6/VB.Net method comprised of about 200 lines of business logic. The method executes without error but does not return the expected results. Without looking at the code, what guidance would you offer that would help them solve the problem?"

I'd be willing to bet that almost every developer will say that you should step through the code. Why does the answer change? Developers think of VB6/VB.Net/C#/whatever as code, but stored procedures as magical things on the server. If you're using VB6 or whatever you have a very rich development environment - step through, watch variables, etc, but for some reason developers don't think of stored procedure code as code. Even when they make that leap, few stop to realize that they are debugging stored procedures with techniques worthy of the early nineties.

As far as the interview itself, this question let's me see if they can see outside their world a little, see how the react to a small challenge, how would they do as a mentor? Standard stuff I think. While you you might not agree with the question, I hope you'll think about the range of answers and why so few developers use a debugger on stored procedures.

By Andy Warren, 2004/07/09

Total article views: 11803 | Views in the last 30 days: 4
Your response
 
 
Related tags

Miscellaneous    
Programming    
 
 
Contribute

Free registration required...

To read the rest of this article, and access thousands of other articles, we ask you to register on the site and subscribe to our newsletters.

Login (existing users)

Login

Email:   Password:   Remember me: Forgotten your password?

Register (new users)

Register

Email:   Password:
Confirm:

Subscribing to our newsletters gets you:

  • ALL of our content (thousands of articles, scripts, and forum postings)
  • A daily newsletter (example)
  • A weekly news round up (example)
  • The opportunity to ask and answer questions in our forums
  • A daily Question of the Day to test and help you increase your knowledge of SQL Server.

Steve Jones
Editor, SQLServerCentral.com