posted on Monday, June 19, 2006 12:47 PM
by
bakerjon
Thoughts on Hiring a DBA
There is a new article by Chris Shaw on SQLServerCentral.com about "Hiring a DBA". I want to start off by saying that Mr. Shaw is right on, and thanks to him for writing this! Having just gone through a hiring process, which was like many I've had in the past, I feel his pain.
Hiring an employee or a consultant is always an adventure. As Chris put it, it's more art than science. Sometimes you just know one way or the other. Sometimes, you are just wrong! I recall one instance where the candidate interviewed with me and another Sr. DBA. The guy answered many technical questions correctly, said "I don't Know" in the right places, and seemed to communicate very well. However, when he arrived on site, he sadly did not work out due to lack of initiative and creativity and lack of ability to work in a highly available environment. We were just wrong!
Hiring is typically a time-based task. Very rarely can you wait around for the absolutely perfect candidate to show up on your doorstep. I liken it to buying a house. You can't buy the best house in the world (well, most of us can't anyway). You buy the best house on the market when you are looking, where you are looking, and in the price range you can afford. You recognize it might need some fixing up or doesn't have all the ameneties you were looking for, but that's OK. You might add/fix it later or live without it. As long as the candidate has the basics and the personality matches, that's often enough.
In Chris' article he breaks down the process into a few stages, including position definition, position posting, resume review, and interviewing. I really liked the first two sections, and I have things I'd like to add to the last two.
Resume review is something that comes with a good bit of experience. After talking with a number of candidates after reading their resume, I've learned to spot quite a few things, now. Some of my favorites are
- Search and replace of Oracle and/or DB2 with SQL Server. This one kills me. It's obvious on the resume when a candidate doesn't really know SQL Server. This last round we had a candidate that had the title of SQL Server DBA, but all the tools listed were Oracle (TKPROF, OEM, etc.). I realize that Oracle has a larger market share than Microsoft, so it's likely the person did both, but the resume didn't read that way at all.
- Developers trying to become DBAs. Yes, there are 2 types of DBA; Production Support and Application Development. I am all for people expanding skillsets and working into new positions. I just wish they were upfront about it. I see alot of applications developers applying for Production Support roles, and the resume reads "developed SQL and stored procedures for .NET application", or "designed tables to support data storage." When this type of candidate is asked about fragmentation or database consistency or backups, s/he really doesn't know. It's just too far of a stretch. That's an easy one to see on a resume, though.
- Lots of job/contract hopping. As Chris points out long tenure is easy to spot on a resume. So is job hopping. While I understand that "long tenure" has a different definition today than it did 20 years ago, it does seem reasonable that a person would catch on with a company for a couple of years at least. There are exceptions to this, such as project related consultants. Typically, that type of person is easy to spot, too, due to the high level of project tasks and variety of technologies used. When I spot these types of people looking for long-term gigs, I like to phone interview and find out why. Sometimes the reasons are legit and the person will work out. Other times, you may be just the next hop.
Interviewing is also something that comes with a good bit of experience. Many people think that answering technical questions and being funny or nice is all you need to get a job. Actually, I've recommended people for hire without asking a single technical question, and been right! More than knowing book answers or being able to quote a popular website or magazine, I like to learn about a candidate.
I prefer a two stage interview. First the phone interview, then the face-to-face. The phone interview is crucial. Unless a candidate comes recommended by someone I respect, I do a phone interview, and sometimes even then. I like to ask a person to tell me a bit about him or herself and what recent projects s/he has done. I can quickly tell about communication ability and enthusiasm or passion from these questions. I might lob a few softball technical questions at the person on the phone, maybe more than softballs if s/he is long distance and would need to travel for a face-to-face. BTW, pay attention to the sounds on the other end of the phone. If you hear mouse clicking or keys tapping, the person may be googling or looking in BOL for answers (ask me how I know!).
Next is the face-to-face, and I hope you are wearing anti-perspirant for it. It could get messy. I prefer a group interview with some senior people, possibly even developers. I try to push the person until I learn what I need to know to recommend or hire the person. I'm really looking for the following:
- How does a person handle stress? I'll use questions or scenarios to get the person to a point of stress to see how they handle it. My friend Scott Sawatzki likes to say people handle stress in 3 ways; Fight, Flight, or Freeze. I avoid DBAs that freeze. There is a lot of stress in the DBA role, typically. If you've ever had a cubical full of managers waiting for you to restore a database or restart a service, you know what I mean. How a person will behave in this type of situation is crucial to his/her success.
- How does a person handle lack of knowledge. Like Mr. Shaw, I like to hear people say "I don't Know", or "I would look that up". Think of an interview as an adaptive test. It will get harder as the candidate answers hard questions, and it won't stop until "I don't know" is reached.
- How does a person solve problems? Does s/he work them out silently or verbally, or not at all? If given a scenario question where a long answer with multiple steps are required, what does the person do? There is so much problem solving for DBAs, it just requires a good problem solver. Whether it is troubleshooting or SQL development, a candidate must be able to solve a problem on his/her own. I tend to get a hint of organizational skills here, too.
- How much information does a person offer when answering questions? Does the person give short, terse answers, or does s/he prattle on and on getting off topic completely. Like Chris Shaw mentions, this is typically a sign the candidate doesn't know and is trying to divert. I like answers to be somewhere in the middle of these 2 extremes. I recall a hire where I did not recommend the candidate, but he was brought in anyway. I didn't like the fact that he talked too much in the interview. In the end it was discovered the guy really didn't have the basic understanding needed and spent most of his day socializing. He was let go in under 6 months.
There are many discussions about the types of questions to ask in an interview. Given there are a number of sites that already list questions, I won't add to that. I think this is a good starting point. http://vyaskn.tripod.com/iq.htm. Vyas has provided questions by category, which is helpful when you might be interviewing for different roles. Obviously, I have my own set of questions, but a candidate should at least be able to answer a set like these that are readily available. Essentially, I like to ask questions that are representative of what the person will be doing. I like Chris Shaw's idea of making a list of tasks and projects. That will narrow down the types of questions to ask. I also like scenario questions where the person must give more than one word answers to demonstrate technical knowledge.
Hiring is hard. It bogs down a staff trying to do it, and unsettles the team for a month or so afterward. That's why its important to do it as infrequently as possible by getting the right candidate the first time.
What are your hiring or interviewing experiences? What do you think of my additions to Chris' aritcle?
Jon