Thursday, 4 March 2010

Rise of the SQL Server DevBA

Something that has got me thinking recently is the distinction between an SQL Server Developer and a DBA. I imagine that most people would describe themselves as one or the other exclusively. My CV for example says I'm a developer - that is what I am. I would never market myself as a DBA; aside from the fact I just don't have the full skillset of a DBA, it would just be an insult to the real DBAs out there whose knowledge and experience in that arena far outweighs mine. Ask me to set up RAID, a backup/disaster recovery strategy or a SAN, and I will give you a blank stare. More than likely, I'd make a speedy exit through the nearest door/window/cat flap.

I'm surrounded!

I signed up for the recent SQL Server Dynamic Management View training offered by Quest Software - a free, one day online conference. This was a very popular event - after all not only was it free, but there were 3 great speakers presenting a range of sessions at levels ranging from beginner to expert. The notes, slides and links can be found here. Midway through, I started wondering how many other "Database Developers" had signed up, as I was surrounded (albeit virtually) by DBAs, and very proficient ones at that. This naturally got me thinking...

Why am I here?

It turns out the answer is pretty simple - to make myself a better Database Developer. Performance and scalability are very important, and are always at the forefront of my mind. As a developer, I want to design and develop a database to support the system I'm working on, that will perform and scale well. For me this involves thinking about the bigger picture. Not just how it performs at the time of development with relatively low volumes of data on development servers but how it would perform with current live data volumes and expected volumes in the future. Thinking about things from a DBA's perspective, understanding the issues a DBA has to deal with and what skills they use to keep a database server running smoothly is in my opinion, a valuable asset to have. I don't mean that I should be able to do even half of, what a DBA can do - that would have been a different career path had I wanted to head down that route. But some DBA skills are very beneficial for a developer to have - at least I find they are in my role.

Rise of the "DevBA"?

An SQL Server Developer with a bit of DBA thrown in. Knowing how to diagnose performance issues, make use of DMVs, pinpoint and spot potential bottlenecks has been extremely valuable to me. It's led to me broadening my horizons, and fine tuning my skills as a developer. For those of you who perhaps work for a small company without a specific DBA role, where pretty much everyone mucks in, I think you're in the prime DevBA territory.

Another carrot being dangled

The upcoming SQLBits event I recently blogged about is another opportunity I'm looking forward to making the most of. Sessions are currently being submitted in Dev, DBA and BI disciplines. The Dev ones are obviously of main interest to me, but there's also some DBA sessions that I'd like to attend. I can't actually recall the point at which I started becoming more aware of DBA-oriented topics, but it's something that is happening more and more.

Am I a wanna-be DBA? No.

Could I double-up as a DBA? No.

Does being a "DevBA" make me a better developer and increase my technical ability? Yes.


  1. Totally agree. I also think the same thing in reverse is just as important. As part-time DBA myself, I often think it's invaluable to have an understanding of things from a development perspective such as the ability to read complex SQL statements, even if I couldn't sit down from scratch and write them myself!

  2. I could not agree more. I originally started learning more about the database to make my applications run faster and scale larger. It's been such a fun journey along the way. These days I occupy a really weird world between a Developer/DevBA and a DBA. Either way, I only wish more developers thought like you.

  3. @yatesy - it's good to hear it from the other side!

    @Jeremiah - thanks for the great feedback. I think it's one of those steps that a lot of developers find themselves making, when working on a project that really requires scalability. Until that point, it's easy to not be so concerned about the other side of things, as performance is "fine".

  4. Great post and great points. Nowadays it definitely pays off to know a little bit about everything because that one 'SELECT *' can/will affect many people down the line but you have to understand WHY it is that it does. Thank you for a great write up.

  5. @Jorge - cheers for the comment - and of course when it affects many people down the line, it usually climbs back up the line to bite you!

  6. Performance tuning is an extension of the database developer toolset. It's not, in my opinion, a DBA thing at all. The DBA skill set is the one getting rather mixed up these days, not ours. So I'd say that you're not a "DevBA" at all -- just an advanced database developer. (A very good thing, in my opinion, in case you take it otherwise.)

  7. @Adam - Yes, I agree with that as I truly see it as part of what a SQL Server Developer's skillset should include. It's definitely something I see as highly important in my role. I often feel certain aspects are seen as being "for the DBA" when they should also be things a developer should be aware of.

  8. Sounds to me like you've caught the bug!

    I too have developer roots. Way back when, dare I say, I originally started out as a JAVA programmer would you believe. I soon however found myself getting stuck into all manner of SQL Server tasks that came my way, doing whatever it took to get the job done and learning along the way as necessary.

    My journey has provided me with opportunities to work with the full spectrum of SQL Server technologies and features, albeit my current focus leans to the DBA role.

    Versatility is an incredibly powerful quality. Those that can freely roam comfortably and skilfully between the various flavours of data roles are what I consider to be the complete “Data Professional”.

    Great post, thanks for sharing!

  9. @John - "Data Professional" is a great description. Glad you liked it!

  10. I'm one of those weirdos who is a DBA by choice. I started off as a database developer and became a DBA later. I've worked as both a SQL Dev. and as a production DBA. However, with the direction that SQL Server has taken, I no longer consider myself a development DBA. I lack experience in C# and CLR development.

    These days, I just call myself a DBA.