Last week I polled you on Junior DBAs and what was a good set of skills they should have. It didn't go quite as planned, and it seemed lots of people want to argue about whether we should have titles, salary, etc. Those are all great points, but the reality is that titles exist, we need to grade people out slightly, and this is one way.
This week I moved on to senior DBAs because I think they're the next easiest to define. It's the mid-level that I expect to be the hardest to figure out. I'll leave that one alone for a few weeks since I think that it's less interesting and I'd like to address a couple points that people raised in another poll next week.
So here's the poll:
What's a Senior DBA?
We're mainly talking SQL Server here, someone that does administration or development, but I would think that a senior level person wouldn't be frightened if someone dropped them on Oracle, DB2, or PostgreSQL. They should be able to figure out how to connect and how to translate their skills into basic work on other platforms.
But it's the SQL Server skills that are harder to determine. I think that a senior level person may or may not be specialized in one of the subsystems. I guess lower level people could be experts at some particular system, like SSIS, but for the most part I'd expect that someone at this level is definitely stronger in some areas than others.
The top level of this area is hard to define. I'd like to think all SQL Server MVPs are senior level, but I'm not sure if that's true. I'd like to think I'm a senior even though no one mistakes me for an MVP.
On the experience side, I may be setting my bar too low, but I could see someone with 5 years of intense SQL Server responsibility and experience, someone who's really worked to learn the product, being a senior level DBA. I wouldn't expect most people to be at this level and it would be the rare individual I'd grant this status to with less than 7 or 8 years of experience.
For skills, I'd expect at a minimum that any issue that came up, the person would feel confident digging into BOL and other resources to get it working. That includes merge replication, even if you've never used it. That includes setting up Service Broker without ever having implementing a messaging systems. You get the idea.
I think backup and restore is critical, so I'd expect that any backup/restore scenario could be handled, including point in time or named transaction restore. I'd expect the individual to also understand the high availability technologies (all 4) and know where when to implement them as well as understand how to structure a backup scheme to meet business needs.
A senior person should be familiar with SSMS/EM inside and out, including all types of administration: SQL Agent, jobs, multi-server jobs, alerts, mail, service account choice and implications, server name changes, and any database rename/move/alter that is needed. Security should be a strong part of their job with groups, roles, users, logins, etc. being something they can easily set up. A senior should understand the schema as well and how it fits in the old owner/object model. I expect you can profile and performance monitor a server.
On the T-SQL side, I don't expect you to rival Ben-Gan or Ken Henderson, but I do expect you to be able to write queries with lots of tables, CASE statements, GROUP BY, ORDER BY, HAVING, TOP, and pretty much any clause. I expect stored procedures and functions, TVFs, and before long, CTEs. I'd also expect you can tune queries, spot cross joins, cover queries, and find unnecessary columns or qualifying clauses.
I'd expect that you have some solid experience in some aspect of SQL Server: SSRS, SSIS, SSAS, Service Broker, replication, something. It's hard to spend a decade or more with SQL Server and not have gotten some good experience in some area. It's possible, and if you are a generalist then you should be comfortable having to delve into any area if required.
For a senior the biggest thing I'd expect is some good database design skills and business knowledge. You should understand how to work with other people, mentor them, and ensure that you work with SQL Server in an efficient and effective manner for the business, not because something is cool. A senior needs to make things better, not maintain them the way they are.
Lastly, I'd hope a senior person to contribute in some way to the community. Maybe it's a little self serving at this site, but since most of us have asked a question or received help at some point, I'd hope that if I'm paying you senior dollars, you do senior, professional work.