Career Advice For DBAs
Updated in June 2001:
Introduction
I get emails quite often from DBAs, mostly from junior DBAs
or those new to the field, but occasionally an intermediate level, all of whom
are wondering where should they focus, what skills are required, etc to be a
successful SQL Server DBA. Since I am only a SQL Server DBA (for now π )
I can only try and give my opinion from this viewpoint. I suspect that for
Oracle, DB2, MySQL, or any other DBAs, the outlook and career advice might be
quite different.
Before I begin, let me say this is only my opinion and not
backed up by statistics, facts, or anything other than my experience. One of
these days, I will update my resume to a detailed vitae so those who read my
work may better understand what experiences have shaped my opinions. But for
now, this is what I think.
Update:I updated this article in May 2001 as the economy has changed quite a bit in
the past six months. I am including the original Outlook in May 2001 along with "hot skills". After
these sections I have included an update that reflects my update in the current market.
The Outlook in November 2000
As I write this, SQL Server 2000 is a little over a month
old and represents the fifth evolution of the product from Microsoft (those
being, IMHO, v4.2x on OS/2, v4.2x on Windows NT, v6.x on Windows NT, v7.0 on
Windows NT, SQL Server 2000 on Windows 2000). I have seen the product grow and
evolve from a low-end client/server database for workgroups to the current
record holder of the TPC-C benchmarks. Now I know what benchmarks are worth, but
this is still an impressive feat.
SQL Server is still making inroads as a low cost RDBMS that
is easy to administer and develop applications against. While the recent
changes to the licensing model may change this, for now it is a very
inexpensive, yet widely adopted technology. It is very easy to install on
anything from a desktop to a multi-processor server and the inclusions of many
wizards for most tasks make it simple for anyone to create and setup a database
(I could probably teach my eight year old to install the server and create a
database).
The ease of developing applications in VB and other 4 and
5GL languages with their wizards and templates also enable rapid development of
applications and prototypes using SQL Server. I have seen quite a few Internet
startups begin developing applications using SQL Server because it was much
easier for the developers and network administrators to setup and begin working
with. I have never installed Oracle or most of the popular RDBMSs. I did
install MySQL and that was pretty easy, though I have not developed anything
against this. I will say that I think regardless of the truth, the perception
is that SQL Server is very easy to install and administer (though there is
still skill required to do this well).
Enough of the marketing speak and a little disclosure. I do
not work for Microsoft, and do not receive any compensation from them. I do own
their stock, think it is a good company and they develop good, widely accepted
products that have provided me with a great career. I have not had the need or
much of an opportunity to develop on Oracle or other RDBMS, but would be happy
to if I get the chance. The bottom line is that there are more than enough jobs
with SQL Server, so do not worry about job security.
Skills That Are Hot
Todayβs DBA should be a jack-of-all-trades and a
master-of-one (SQL Server). Understanding how a network operates and computers
communicate is important in the era of distributed applications and
multi-server transactions. The Internet and World Wide Web are used in so many
applications that to support and troubleshoot applications really requires
knowledge of the differences between an Internet application and a
client/server or local LAN application. I really think that the skills the MCDBA
requires are good to learn. If you pursue this certification, it will behoove
you to really learn about the Operating Systems and the network as you study.
If you get a certification without understanding the concepts, you do more harm
than good to everyone in the industry.
There are also a number of areas in SQL Server that are
growing rapidly. XML has really started to gain in popularity and I see more
companies everyday starting to incorporate this technology into their
applications, especially inter- and extra-net applications. You could spend
quite a bit of time in this area if you like dealing with the exchange of data
and the challenges in making this work.
Data warehousing is growing extremely fast according to most
of the press that I see. The incorporation of the Analysis services and Excelβs
OLAP capability are really increasing the adoption of this. If you enjoy
working with lots of data and using statistical techniques to analyze this
data, you could probably make a twenty-year career in this field.
Of course, there are a number of people who enjoy the
challenges of administering a server or two, getting four or five βninesβ of
uptime and troubleshooting problems in real-time. Not too many people like
this, but it can be a challenge and I still enjoy developing administrative
solutions (see my series on automating the gathering of information).
Lots of Talk, Whatβs the Advice?
As a DBA, I find the work to be the same at most every job
that I have had. The work is pretty much always standard RDBMS stuff and the
pay is about the same at most companies that are looking for a senior DBA. So
how do I choose a company? I look for a good team environment, people I like, a
fairly low-stress job, few database servers and good management. I am fairly
far along in my career. I have more experience with SQL Server than most people
who interview for the same jobs as me. Lucky for me, in this economy, I can
pretty much pick and choose.
My advice for those getting starting in the SQL Server world
is threefold. First, you need to develop a solid foundation in SQL,
specifically T-SQL, but try to stick to ANSI standards as much as possible.
There are lots of resources in the Internet and some great books out there (see
my book reviews). Also send your code to colleagues and friends and get their
opinions on how it looks.
Second you should understand SQL Server itself. Again, use
all the resources you can and read and learn as much as possible. Columns like
this one are good places to learn, but be sure to learn what Microsoft
publishes first. This will give you a solid foundation from the people that
have written the product. I would bookmark these sites and read everything on
them:
www.sqlservercentral.com (You're already here and
registered. Take advantage of all we have to offer.)
www.microsoft.com/sql (read all the
whitepapers)
www.mssqlserver.com/faq (the primary
FAQ on the Internet)
www.sql-server-performance.com (the best
source for performance information)
I also have some book reviews you can check out. A number of
columnists on the Internet do the same. Most SQL Server books contain about 80% of the
same information. So spend a few minutes browsing and pick one that seems easy to read.
Also, be sure you experiment with what you are reading. Follow the
examples and write some of the SQL code in the articles and see what happens.
Setup your own experiments to understand what the author is writing about to be
sure you understand. Many times you will read differing points of view on the
same topic. Both authors may be correct, or one may be wrong in your
environment. If you do not do some R&D and testing, you may not find out
which it is until something breaks.
Lastly, continue to learn more about different technologies
and skill areas to learn what you like as well as round out your knowledge
base. I firmly believe one of the main reasons for my success is a strong
background in networking and software development before I started working with
databases. It has helped me solve problems and develop innovative solutions (I
think) because of my understanding of the whole environment outside the
database.
The Outlook in May 2001
Since I wrote this article in November of 2000, the economy has soured, there is talk of
recession, and it has been many weeks since I have gone without seeing at least one dot-com
company either fold or layoff a substantial number of employees. In fact, my wife's company
laid off quite a few people, a dot-com that employed a good friend of mine failed, and I have
some (slight) worries about my company going under. Internet.com, for which I previously wrote
articles, has restructured, laid off a number of staff, and lost my services.
So how does the job market look for SQL Server Professionals? Well, this site launched with
myself and a few other talented professionals. This past Sunday, I saw 2 SQL Server DBA positions
in local companies in Denver. The current count of DBA positions from a random sampling on the Internet
is:
- Monster: 200+
- Dice:1000 +
- Just SQL Server Jobs:337
I didn't check all these jobs, but on Dice and Just SQL Server Jobs, most appear to be DBA positions. If
I narrow my search to Colorado (where I live), I get 1 (Just SQL Server Jobs) and 24 (Dice). Not great, but not bad, though
hopefully I will not be performing any real-world testing anytime soon. The positions
still appear to be spread out around the country. The salaries also appear to be what I expect.
The news media has made a big deal of the layoffs and failures, but
Conclusions
The main point in all of this is that you should pick the
area that you are interested in and spend time working with it. Take some time
and develop βpetβ projects that incorporate the technologies you want to learn.
Most managers will allow you some leeway to βresearchβ a technology that is
related to your job. Who knows, maybe you will come up with a solution that no one thought of. Most of
my ASP experience was gained during such projects where I hacked around and
built an administrative subsystem for myself that saved quite a bit of time and
allowed me to distribute functionality to end-users that needed it (like in
administering users).
I firmly believe after ten years in this industry and a few
more in others, that you should choose to do what you like. You will spend more
time at work than at home. So you better enjoy that time. You will spend more
time with colleagues and co-workers than your spouse and children. It had
better be worth it. No amount of money or benefits can make up for the time you
lose with those you love. Keep that in mind. I enjoy and think I am well paid for
hour 1 through hour 40. However, I could not put a price on and do not think m employer
could pay me enough for hour 50 through hour 60. Those are almost always reserved for my
kids.
Steve Jones
dkRanch.net June 2001