A recent thread on SQLServerCentral.com had an individual what it took to be a successful DBA. Couple that with a RunAs Radio podcast with SQL Server MVP Brad McGehee on Being a Better DBA and that raises the question, "What does it take to become a DBA?"
I came at being a DBA from a round about route. I was first a developer, became a system administrator, went back to being a developer, and then finally became a DBA. While I primarily work directory services and architecture now, I've worked to keep my DBA skill set, because being a DBA is something that I loved doing and still love when I get a chance to dive back in full throttle. Therefore, I thought I would offer some thoughts on what I think it takes to become a DBA. In this post I'll talk about some of the "soft skills" or concepts to becoming a DBA.
There are a lot of reasons people are looking to become DBAs. In the podcast, Brad McGehee referred to both salary and job security as two reasons why some folks look to be DBAs. Those aren't the only reasons, of course. I know one individual who loves the mental challenge and number crunching related to performance monitoring and query tuning. That's what led him to being a DBA. Another friend of mine loves the fact that relational databases work on set operations. As for me, I love the fact that DBA work blends the type of work load handled by a system administrator with that of a developer. There are backups/restores and performance monitoring on the one side and SQL queries and query tuning on the other side.
If you're thinking about becoming a DBA, what does it take? First and foremost, the definition of DBA is more ambiguous than ever, at least in the SQL Server community. Therefore, the first place to start is to determine what kind of work you want to do. If you like maintain systems and dealing with hardware, there are DBAs that do only that. If you want to write code, build reports, and do query tuning, there are DBAs who focus on those tasks. And then there are DBAs who do a mix of both. As with any other goal, knowing exactly what you want is important.
Next, do your own skills assessment. I don't mean IT skills, either. Most DBAs are meticulous about their work. DBAs have to be. Not being meticulous means not having a backup at a critical time. DBAs have to be planners. When faced with balancing multiple databases across several servers, A DBA must place databases appropriately to ensure optimal performance. The DBA must ensure backup jobs aren't competing with each other (and stealing valuable I/O from database operations). In addition, the DBA must keep an eye on space. A DBA who focuses on development must take into consideration the same sorts of concerns and address them during the development process. If it sounds like DBAs must have planning skills and a details-oriented focus like a project manager, they do. Also, a DBA, whether operations or development oriented, works with a lot of different individuals with a wide spectrum of personalities. That means a DBA must have at least marginal "people" skills. The better a DBA's interpersonal abilities, the more likely the DBA is able to convey concerns and have them addressed by developers and system administrators.
Finally, consider your opportunities. If you are employed as a developer or as a system administrator, there may be a position within your organization to switch over to being a DBA. if you're a senior developer or sysadmin, this may mean accepting a junior position to learn the ropes. If this isn't the case, breaking into a DBA position can be difficult. Most folks who want DBAs want people with experience. So how do you get it? This is a common Catch-22 in IT today. The answer is to look for volunteer opportunities. There are a lot of small businesses and non-profits that are dying for quality IT help. Many of them have small databases that are in dire need of a careful eye. Even if the database is in Microsoft Access, it's still a start.
That wraps up the soft stuff. Next week I'll look at how to develop the technical skills to become a DBA.