All this week I’ve been in Oracle training to learn more about SQL, PL/SQL, and DBAing. I completed the classroom excercises well ahead of schedule, and since there was no Internet access, I had but one activity left: thinking.
I was quite suprised that while our instructor knew many of the ins and outs of Oracle, basic questions I had about the language, it’s syntax, or why things were the way they are, that the instructor didn’t know, and worse filled in the gap of knowledge with double talk.
On a side note, that really bothers me. If someone says they don’t know to me, that’s a perfectly acceptable answer. I don’t expect experts to know everything. I’ll research elsewhere, and if I find the solution, I’ll make sure they get the answer too. However, when it’s a matter making up cruft to save face, then I have a problem and I lose confidence in the expert on a number of grounds.
But back to the original train of thought. It was spawned when the instructor said “many of the DBAs out there don’t know PL/SQL” — this is an acceptable fact, as PL/SQL is an Oracle-thing. But when the phrase “or how to program” was added, I started to take notice.
How come an Oracle DBA can make a six-figure salary with such a limited set of generic skills, while numerous people I know dripping with portable skill sets are struggling to find jobs paying half that amount. Then it hits me:
1. Their lingo covers it up to make the technical sound unapproachable. For instance, IBM mainframe consultants will talk amongst themselves about a ‘DATA SET’ — however if you the low-level peon happened to learn “that’s just a file like any other you use” then you’d start to get a little pissed about the value you were getting. And so, much of the Oracle training went: there were all kinds of techno-babble names for things which I remember learning in BASIC classes in the 6th grade. None of these application-terms seemed to match the terms already in use by the mathamatics community.
2. Supply and Demand. Let’s pick on Oracle again just for fun(personally, I think it’s the best of the commercial databases out there). Oracle is expensive. Oracle training is expensive. You don’t need many Oracle experts to do things “right” — but you do need at least one. Consequentially a company will put all of it’s eggs into one basket and train one person to be the DBA. Then they keep them there with golden handcuffs. Now, look at C/C++ people. You can get programmers a dime a dozen. Unfortnately there’s no real way to rank how good one is over another without doing some tedious work. Oracle solves that problem by handing you a certificate. Like many training classes, you get a certificate for paying tuition. Naturally, you’d think that an employer would be smart enough to look for a certification over a certificate (which usually means you passed a test). However, testing is no match for experience. I’ve known a number of MS certified people who were clueless. Before I ever wrote a line of Java code, I was able to pass their certification test. Finally, in your daily commute to work, how many drivers do you see doing illegal (or just plain dangerous) things on the road who “passed” driving certification from the DMV? The whole point is that expense and convolution can keep supply low and demand high.
3. But the real reason is: these people are solving real business problems. Everyone loves a hero. Fire fighters get more praise than fire prevention marshals… yet, who saves more lives in the long run? Your typical programers and highly-skilled techies are able to build amazing things, but it will always be the instant gratification of DBAs and Unix Admins that will draw managements attention. The interesting part is that those techies have the knowledge to do these jobs already, but aren’t challeneged by them and the domain terminology is used as a barrier to create frustration. The secret is that these positions don’t deal with technology nor products! They deal with *service*.
All one has to do, it seems, is pick a domain (like Unix systems or databases or something) which there are a large number of consumers within an organization, learn -just that domain-, and understand how to make reasonably decent trade-offs [e.g., space vs. speed].