November’s T-SQL Tuesday is brought to us by Paul S. Randal (Blog|Twitter). Note that this T-SQL Tuesday is arriving earlier than usual because many of us in the SQL Server community will be attending the 2010 PASS Summit next week. Anyway, for this month’s topic, Paul has asked the question “why are DBA skills necessary?”
I’ve had both developer and DBA roles in my career. Working as a DBA definitely made me a stronger developer when I would switch back to that role. I can’t say the same of the other way around because my developer skills seemed to be a distraction when working as a DBA. Managers would give me development tasks when they were short handed or felt I was more capable for the particular assignment than the available developers, and I wouldn’t be able to give my DBA duties sufficient attention. Of course, never when working as a developer have I been asked to help with DBA tasks! That’s probably a topic for another day.
Why did working as a DBA make me a stronger developer? As a DBA you are working with application timeouts, backups/restores and other business continuity issues, user access, etc. After I did that daily for a while, then went back to development, database-related decisions never looked the same again. I ended up being a developer who points out that something will make the solution harder to restore, will cause excessive log file growth, etc.
Does the RDBMS platform in use impact the need for DBA skills? My first thought is that the necessity for DBA skills does not depend on which RDBMS is hosting data. Of course, I might be missing something and sounding like the Oracle DBA that I encountered one morning who believes that SQL Server doesn’t need a DBA. Years ago I was a DBA taking care of MySQL database servers, a job that kept me quite busy dealing with lots of corruption and similar problems. That wasn’t necessarily the fault of MySQL. Let’s just say that when software is “free” there can be a tendency to think it should be run on cheap hardware, plugged straight into the wall without uninterruptible power supplies, located in a room without 24×7 air conditioning, etc. DBA skills were necessary, but I was spending more of my time trying to keep data from disappearing than dealing with issues like performance tuning and optimization.
So with databases in “the cloud” one might imagine the polar opposite situation of what’s described in the previous paragraph. For example, there would (or should?) be no issues such as dealing with corruption due to unreliable hardware. Of course, there’s also no need for someone to administer backups and other such DBA duties. I imagine there is still a need for tuning and optimization, but techniques such as disk placement will not be available. How much will be abstracted away? Will you consider the person who does the DBA-type duties in a cloud environment to be an “administrator”? Will the job title change or will this role move into the development area? Just over a year ago, Buck Woody (Blog|Twitter) wrote a post titled Don’t be a DBA – Be a Data Professional when thinking of what might be on the horizon for DBAs as more data moves into the cloud. If you haven’t read this before, check it out since it’s relevant with or without the “cloud” context.
What about NoSQL… does it mean “NoDBA”? This probably falls into a case similar to the previous two paragraphs. NoSQL architectures are still a form of database management system, and the stored data has the same needs as data hosted by a RDBMS. The DBA skills might be different, but the need is still there if someone is depending on the data in that system.
Likewise, I don’t see automated solutions replacing the need for DBA skills anytime soon. They can be effective when utilized as starting-off points or tools for offering suggestions, but someone with DBA abilities and knowledge needs to review these, test them, etc. to decide what should or shouldn’t be implemented. For example, Microsoft offers a list of best practices for SQL Server. While attending Jorge Segarra’s (Blog|Twitter) presentation on Policy Based Management in a nutshell at SQL Saturday 49 I learned that these are available through Policy Based Management. Ken Simmons (Blog|Twitter) has a blog post on retrieving these policies, complete with a query for obtaining them, or you can use his post’s hyperlinks to learn more about each policy. Being able to incorporate these best practices into a solution like Policy Based Management is powerful, but you wouldn’t want to just turn it on and hope for the best.
With that, I’ll wrap things up because there’s probably no end to answering a question such as “why are DBA skills necessary?” In a nutshell, my DBA skills are always protecting my back, much like my two furry friends in the picture at the right! I am really looking forward to reading all the other contributions to this month’s T-SQL Tuesday and finding out how others approached this topic. Thanks much to Paul Randal for hosting T-SQL Tuesday #12, and thank you again to Adam Machanic (Blog|Twitter) for coming up with this monthly event!