I have been writing technical blogs for some time now. Thank you for following my One DMV a Day series, a wonderful sprint of 80 days. It has been the most exciting time of my journey with SQL Server. Please do vote for my session for SQLBits XIV. I have submitted a session on Deep Dive into Delayed Durability.
Today I am taking a step ahead form technical blogs and writing this post. Recently many people have been asking me on various media about career path as a DBA and how to make best of it. So I have decided to write this blog with my personal experience as a pure DBA from the initial days of my career. In my past 6 years I have met people from various background ended as DBAs and at various experience levels. The one thing common in every DBA is everyone has their own way of looking at things. The diversity makes us unique as a DBA.
I would like to start with explaining why a DBA role is important. We sit at the very awkward position between frontend and backend. Although we are termed as backend, we are not. We are not at any end but spread across the length of both ends. The breadth of the databases is vast. So it is always best to have divisions within ourselves. There are three areas where a DBA can make his career. Development DBA, Production DBA and Infra DBA. Infra DBA is a new term. But I suit it to my experience so far.
Development DBA are more into development aspects of the databases. He is the one who has good understanding of the programming terms and the SDLC lifecycle. So he pitches in whenever a developer needs any help on database end. He also takes up the tasks like suggesting the tuning techniques of existing database code. Having knowledge on administration he can give best suggestion to developers on how to write efficient code and design aspects of new databases. He can move to database architect role going ahead in his career.
Production DBA – a major chunk of DBA s are into this role. They are into the core aspects of administration and monitoring. His daily job involves health checks, monitoring, automating alerts and whatever in his scope to keep the databases up and running healthily. He will also do major activities like installations, upgrades and migrations. The major projects and learning areas where he can be really critical are designing high availability and data movement using replications, always on and other technologies. Even though it sounds simple his is the major role as a DBA and held responsible for most of database related issues. Accountability is high and hence expectations. Following Service Level Agreements are crucial for this role.
Infra DBA – Although this term is heard less this is a very critical role in the DBA stack. He gets to deal with the toughest guys in the industry, the system and network admins. The first question anyone points out it is an issue with server or network this role is needed to speak their language. He is aware of the infrastructure like storage, server configurations and design, network setup etc. He understands the databases well and what is needed on the server and storage to run the databases without issues. His knowledge also expands to clustering issues, Storage issues and architecture, network limitations etc. The majority of his work sounds like a system admin but he is not a system admin. He knows only the best that works for databases. He can also work on projects like capacity planning, hardware consolidation to put the available hardware to the best use. Any justification for additional hardware like new boxes, extra memory, and additional storage is his responsibility.
Now that we have seen the roles and responsibilities of DBA, let’s see the career path. In my experience, a DBA career works best for people with analytical skills and logical reasoning. He should be patient and very good at looking at very minute details. This gets developed over time and each level needs more time as you go up the ladder. The below table is the average time you will need to step up the ladder. I have described the level of DBA and the time it takes to be in each position to gain the knowledge you need for next level.
These are not hard and fast rule on time taken. It will be mostly based on the intelligence and exposure of individuals. Most of the times they fall close to these timelines. The numbers are in months and on an average you probably will get a promotion as a DBA every two years. So if you start a fresh as a Jr DBA you will probably become a DBA lead in 7-8 years. The next steps would lead you to more managerial role or an individual architect or consultant role.
The other most interesting question everyone asks is how much am I worth in the market. The answer is a typical DBA answer – “It Depends”. The internal factors that may decide your pay will be your knowledge on the subject, your experience and exposure and your negotiation skills. Some external factors you may not be able to control are the requirements of the job you are taking up, can the company afford you, and are you going to learn something new.
A typical calculation I follow is very much suitable for most of IT professionals. Although this is more relevant to first 6-7 years of your career. After that you will be experienced enough to negotiate and know your value in the market. 😉
Sal = (Exp*2)*1,00,000 +/- 1,00,000
So if you are two years experienced DBA your package may range around 4-5 lakh (Indian Rupees). If you are earning more you have stared well and should justify your contribution. If you are earning less ask for a raise or choose a better company who can afford you. But keep in mind your skills while you ask for more. You should be able to justify what you ask for. So track all work you do as a measure for asking your employer or yourself.
Hope this post helps you in planning your career as a DBA and set right expectations. I will come back with more career guidance and technical blogs. Stay tuned.
Happy DBA career,