In a recent forum, the questions of scarcity of DBA’s came up and I wondered if DBA’s are scarce, if people don’t know how to apply, or if we are posting jobs poorly. Over my career in IT, I’ve hired my share of DBA’s and systems analysts and I am always amazed at the varied applications I receive for a job posting. The duties of the DBA have changed drastically through the years, and as SQL Server has grown easier to manage, most employers expect more from a DBA than backup/restores. Installing SQL Server 6.5 meant rigorous research for sizing the containers, backups needed strict timing as they impacted performance drastically and the install process was not always smooth. Now almost anyone that can click “Next” can do the basic install and setup a maintenance plan. So how do I hire a DBA and what am I seeing in the market?
First I Try to Determine the Need
My current shop is a buy it, not build it shop, with hundreds of various vendor supplied medical apps to support, Terabytes of storage, DB2, Oracle, SQL Server, FoxPro, Access and Sybase databases, and so many servers we’ve lost count. My current need is someone with SQL/clustering/SAN experience to maintain a new vendor supplied SQL Server based OLTP and OLAP system that will serve as the hospitals base registration/scheduling/billing/document management system. So knowledge of ER diagrams and methods of implementing from Logical to Physical models is good, but I don’t dwell there as most vendor supplied solutions won’t let you alter existing structures.
But I do ask questions about Codd’s normal forms and if you don’t at least understand atomicity, you are in trouble. As much as I dislike being a systems administrator, you simply can’t do base DBA functions without knowledge of the OS, clustering, disks (now SAN’s which require network knowledge) and overall hardware architecture.
Programming - I expect the DBA to know T-SQL very well, not just DBCC commands, but how to return data that makes sense. This includes aggregate functions, all join types, ordering, datetime manipulations, temp table usage, parameters and the dreaded cursor.
Beyond that, it really depends on the job and what languages the apps/projects use. Obviously with 2005 we have .net languages that expand T-SQL functions greatly, so any .net knowledge is good, but I leave real programming to the developers. Unfortunately I see lots of postings for DBA's that are very heavy on the developer end. Postings that want the DBA to know JAVA, C++, PHP, PERL and a host of other languages. The developer demands probably take a priority in those positions and I suspect they will not allow DBA's to focus, thus losing important SQL skills.
I see data warehousing in many of the packages we buy and I think data warehousing is a natural extension of data management, so that is a growing area of experience that I look for. Now I know what kind of DBA I need so I post the job and cross my fingers.
How I Post the Position
Once I know the essential functions of the job I put together the minimum qualifications and preferences. Over the past few years I see DBA postings getting wild with demands, that the DBA know too many varied languages. I’m not sure if there is not a good understanding of what a DBA does, or if employers are just casting as big of net as possible hoping to land the dream candidate that can do everything. Regardless I believe it’s a mistake and limits how many good candidates will apply.
I work at an Academic Intuition, so we have a formal process that has to be followed. The formal process is good as it really interrogates the need for the position and desired skills, but typically there is little money for external postings. So I only get apps from people that go to our HR web site (which is terrible to search), local free posting sites and sometimes Dice. I am not the only person in this situation, so if your job seeking, definitely expand your searches past Monster and Dice.
How I Assess an Application
The first thing I do is look at years of experience. I am a DBA snob, I believe the skills needed, even at a junior DBA level, require at least 2 years of systems analyst experience. This should include OS setups and writing SQL or reporting of some flavor. I tend toward people that have been with different companies, so they get a range of experience, but not jumping every year or two.
Next I look at training/education. I like to see a college degree in something. My degree is in Forest Management, so I don’t care if you have a CS vs biology degree, but having that piece of paper means you have the fortitude to get through 4 (or more) years of being abused. I don’t put a lot of weight on certifications as you can go through the courses without any experience and still pass a test, but going through a SQL Administration course is helpful so I give it some points.
Assuming I’m still looking at your app, I start to scrutinize job duties. I get a lot of apps that list SQL Server installation as a duty, but if that is the only reference to SQL on your duties, please do not apply. I like to see that you have generated reports, imported data, done backups/restores, installed servers and done some performance tuning. I also read through your cover sheet and any goal or experience statements you make. I see many people state they have data analysis experience, and then don’t list it under any of their job duties or training. So where did the experience come from? If I have to guess, I typically move to the next candidate.
During the Interview
You made it past my app review and now the interview. I do the normal questions about teamwork and your goals so I have some idea if you will “fit” in with the team. I am always impressed when people have done a little homework about my organization know a something about what we do and incorporate that into their response as to why they want this job.
Then the fun stuff; expect to be drilled on concepts like normalization, SQL aggregates, joins, DBCC functions, security and system administration. I also do a written test, usually 5-10 questions. I like to ask logic questions where I give you some tables and give you a query, then ask what records are returned. Then I’ll ask you write some SQL based on those tables and what I want returned.
I hate suit and ties type jobs, but at the interview I expect you to look appropriate. I interviewed one guy who wore jeans and tennis shoes that were grass stained as though he just came from mowing the lawn – next! I know a lot of people look for eye contact, but lets face it, we’re computer geeks, I know you would much rather stare at a screen, than me; however an occasional glance upward lets me know you can interface with another human being outside of IM/e-mail.
What am I Seeing in the Market
The applicant pools I’ve seen are changing through the years. In the late 90’s I would receive lots of MCSE’s with little experience. Early 2000’s I got lots of legacy programmers that were uprooted by Y2K shifts. In 2002 I searched for 6 months trying to find a DBA, but got mostly desktop support techs with no experience in SQL. This year my pool has changed to mainly network analysts or developers. With the exception of 2002, I have always been able to find some DBA’s to interview and one to hire. This year was no exception, but I did notice it is getting harder to tease out the true DBA’s. Most apps had .Net programming experience and listed some SQL experience, but it was tough to tease out what they were really doing with SQL Server.
Hopefully I have not scared anyone off, but I do take being a DBA seriously. I get lots of questions about growing candidates and certainly I try to do that, but I would rather hire you as a systems analyst and grow your skills there, then move you to a junior DBA position. If you’re just starting out, you may be better off applying for jobs where you get to use SQL, but are not a DBA. Once you get a few years of SQL under your belt, then its time to look for a DBA position.
If you’re an employer looking to hire a DBA, really scrutinize the posting and what you are asking for. If you set too high a bar (or too broad), you will not get any good candidates. I’ve had problems getting good DBA candidates for the past 10 years – but my current posting has yielded fewer candidates (even those not qualified), so I think the problem is three fold, the need for DBA’s has grown in the past few years as more vendors push database products, employers don’t understand what a DBA does and request too much in job postings and people’s resumes don’t convey what they really know.