Tuesday, October 11, 2005

Oracle: a suitable career for a young person?

A while back someone posted a pertinent question on the OTN DB forum, Is it Worth to be DBA?. The poster was in their last year of college, studying computing. They were wanted advice on the merits of various different technical jobs: sysadmin, networks, DBA. Alas they never replied my response (how did they want to measure worth: salary, intrinsic job interest, long term career prospects, fringe benefits?) and the thread withered.

Still, the question remains: how should we advise a young person wondering whether to become an Oracle DBA? Obviously being an Oracle practioner has done well by me and many of the readers of this blog. It's been my prime focus of work for thirteen years, and there's still some juice in it yet. For most of that time I have been a developer, designer and latterly architect but my time spent doing DBA work has undoubtedly informed my knowledge of Oracle. It is good for everybody who builds Oracle systems to understand the database from the perspective of a DBA, because in production the application is only going to run as well as the database permits.

Whilst I was pondering this question someone else pops up, asking how they get job as a DBA. I do find this desire to become a DBA slightly puzzling. The work, particularly in production, is generally dull except when it gets exciting, and that's when you remember that "May you live in interesting times!" is a Chinese curse. Being a DBA requires you to know the purpose of 257 parameters, 266 V$ views, 415 DBA% views, let's not forget the the X$ views... There's dry stuff like sizing redo logs, taking backups, applying patches, running installation scripts written by developers who haven't tested them, etc, etc. What precisely is the allure?

Partly it's the mystique of being in the know. The DBA is the gatekeeper, the person with the authority to run your code in production, the one who can tell you why your code is running like a three-legged dog in a vat of cold treacle, the person who laughs when you ask them to make the USERS tablespace bigger because you keep getting this ORA-1555 error. Knowing the SYSDBA password is the database equivalent of the sysadmin's got root? T-shirt. In fact, the DBAs and the sysadmins tend to inhabit the same room (and indeed are quite often the same people) but it is easier for a SQL developer to move into being a DBA than it is to become a *nix administrator.

Also, being a DBA is a glamorous job. It's not really of course, but most of the luminaries of the Oracle technical world are (or seem capable of being) DBAs: Tom Kyte, Jonathon Lewis, Connor MacDonald, Cary Milsap, Mogens Noegaard, the list goes on. But how many App Server gurus can you name? If you're developer, who is there to look up to? Steven Feuerstein and, er, that's it. (I know if you're into Java you could cite Steve Muench and Duncan Mills, but Java with Oracle is a distraction.)

So everybody wants to be a DBA because it's all about the data(base). Does that mean a person leaving university should try to become an Oracle DBA? Almost certainly not. There's a reeason why most DBAs are gnarled, bearded men: we need experience as well as knowledge before we are ready to become a DBA. It's just not a role for a neophyte. Besides, with the increasing commodisation of databases the role of the DBA is going to decrease in importance and sustained interest for the majority of people. Not to mention considerations of whether Oracle is a legacy technology.

If long term career prospects are the main concern I think a fresh graduate with a technical bent should get into networks: database, platforms, operating systems will come and go but everything about computing in the foreseeable future will still require networks. And with the rise of wireless the amount of time spent crawling under desks should be greatly reduced. If salary is their main driver then a graduate should seek to get into management, which mainly requires shedding all their technical knowledge as soon as possible.

However, we all spend the majority of the day, most days of our life at work so it is important to do something that continually engages us. There's no doubt that most Oracle roles are capable of offering stimulating work alongside the humdrum. How much time we spend doing the latter over the former is a measure of our talent. Good people understand the need to do the tedious stuff in order to get the interesting work right, so do it well and quickly; the very best know how to spin the dross into gold.

But for a job that's interesting day after day, that's full of surprise, delight and moments of wonder, that's always worthwhile despite all the poop it entails? Well, there's only parenthood. Nothing else comes close. Still, maybe not the thing to do right after graduation (unless gowns and mortarboards make you hot).

10 comments:

Anonymous said...

>Being a DBA requires you to know the
>purpose of 257 parameters, 266 V$
>views, 415 DBA% views, let's not
>forget the the X$ views...
Do you really knows all these parameters, v$ views and x$ ???

Your article is very intersting. Thanks for all comments about "become a DBA", I transmit, if you're agree at very young colleague who wants become dba...

Best regards,

APC said...

>> Do you really knows all these parameters, v$ views and x$ ???

No of course not. But then I would not consider myself to be a DBA anymore. I wouldn't mind betting that the OCM guys understand most if not all of them.

>> I transmit, if you're agree at very young colleague who wants become dba...


By all means spread the word.

Anonymous said...

Andrew:

Nice article. I always wonder about those coming fresh out of college wanting to be DBA's. Although I do enjoy the work, it was not high on my career list way back when.

All the I wanna be a DBA posts kind of remind me of a 10 year old kid in my group when I worked as a camp counsellor. When asked what he wanted to be when he grew up he said "I want to be a dermatologist".

Fahd Mirza said...

very nice post.

Anonymous said...

Hi... I'm a freshly-minted DBA, just promoted a few months ago from a software development position (I work for the government). I really dig this job, and I totally understand why younger generations want to get involved with it.

To the guys who say they don't understand why a young person would want to be a DBA, I say you need to step outside of yourselves for a minute and view the situation as a young programmer might.

They can try for a programming position where they won't have any real long-term prospects (outsourcing, offshoring, etc), and where they'll only be a tiny cog in a big machine that doesn't care about them. They'll have deadlines, stupid managers, backstabbing consultants, improbable or impossible user requirements, and all the other Dilbertesque glories of software development.

Or they can try for a position in the data center, where they will eventually be a DBA in charge of the company's crown jewels -- its data. Whether Oracle is a "commodity" or not, SOMETHING is going to be running on the server. And as data breaches and privacy leaks become more visible to the public, companies are going to be MUCH less likely to outsource these roles. For a young person, being integrated with a company's core data sounds GOOD. No, it sounds better than good; it sounds like a career.

I'm pretty happy with it. The system I'm responsible for has more than 11 million records in it. Every day I'm learning something new. This is a great gig, I'd recommend it to anyone. It kicks the hell out of programming...

Anonymous said...

Nice one , look at similar blog
How to become apps dba at

http://becomeappsdba.blogspot.com
http://atul-oracle.blogspot.com

Anonymous said...

I recommend Oracle to a lot of young people today. I started as an Oracle DBA/Developer in High School, at the age of 16, and it has done me extremely well. 10 years later, and I'm going strong.

I'm actually becoming more and more involved with the Oracle Academy, which aims to teach Oracle to high school students. I think it's a great idea!

F L Brown said...

A DBA once explained it to me as being part of an exclusive group.

Anonymous said...

DBA=more responsible=more pay :D
John

sarita said...

Nice Article! I never wanted to be a DBA though....I wanted to be something else and due to some reasons I am in this DBA job...but my question is.....OK...I read your profile APC....You wrote at the end "If mud is dirt plus water, what is clay?

The stuff that feet are made of
"----------------------->WHAT DO YOU MEAN BY THAT????