Sunday, May 27, 2012

Doctors...

This recent blog post by Seth Godin reminded me a lot of my introduction to Effective Oracle by Design of a few years ago. What was true then is still so true today...

Here is an excerpt from my book that mirrors what he just wrote:


I will use yet another analogy to describe how this book will present information.  Pretend for a moment that the developer is instead a medical doctor and the application is the patient.  There are many types of MD’s:

  • The emergency room (ER) doctor. They do “triage” – separating the hopeless from the ones that can be helped.  Performing quick fixes to keep patients alive for as long as possible.  They strive for short term band-aids to fix up the patient.  They will take a patient with a heart attack induced by smoking, bad diet and no exercise and get them stabilized.

  • The operating room (OR) doctor.  They get the patient after the ER doctor has triaged them and patched them up.  They strive for long term fixes to keep the patient not only alive but as fully functioning as possible.  They perform the by-pass operation on that heart attack attempting to clear the arteries.

  • The physical therapist (PT).  They get the patient after the operating room doctor is finished and begin a long and painful (not to mention expensive) process of rehabilitation.

  • The preventative medicine doctor.  They strive to avoid the above three doctors at all costs.  They counsel the patient to quit smoking, eat a healthy diet, and exercise – developing a phased plan to get them in shape.  If they do their job right – with the exception of unfortunate accidents (like a car accident), the patient will never see the ER, OR or PT doctors.
Now, the world needs all types of doctors – accidents do happen after all.  But one of the most important types of doctors is that last one, the preventative medicine doctor.  The one that tries hard to avoid having their patient need the other three.

It is my belief (experience) that most people and books approach tuning using the mindset of the first three doctor types above.  They are in support of the hero developer; e.g. the ER or OR doctor.  Perhaps that is partially due to my observation that pre-emptive good design and implementation is mostly a thankless exercise.  These developers seem to get all of the fame as they snatch the patient from the grasp of death (save the system by doing something miraculous).  They get called in at the last moment; work horribly hard for an extended period of time trying to keep the patient alive (and get paid handsomely as well).  The physical therapists are the unlucky souls that get the system after the ER/OR doctor has patched it up.  They are the ones responsible for keeping this system going.

I feel I am well equipped to speak from that perspective.  I am in fact one of those “heroes”.  I am called in to “lay hands on” systems and make them better.  I could write that book, I’ve been told I should write that book – but I won’t.

What is missing is the comprehensive approach that includes the preventative medicine doctor training.  There are some out there – my favorites being Guy Harrison’s developer book, as well as Jonathan Lewis’s DBA book.  These books, including my own “Expert One on One Oracle” work to remove the need for the hero.  Remember – firefighters are heroes when they do their job, we all just hope we never need them personally!
POST A COMMENT

8 Comments:

Blogger Noons said....

The old adage - an ounce of prevention is worth a pound of cure - has never been more appropriate!

But try and explain that to those who prefer to call in external consultants to "fix the problem and tweak buttons" rather than let the dba get on with the preventive maintenance that will avoid the incident in the first place?

But of course, it's the "expensive dba" that gets the blame...

Sun May 27, 06:08:00 PM EDT  

Blogger George Joseph said....

You are a real hero!.

Wish you would write a book on emergency fixes also. People would be keen to know from your vast experiences how you fixed somethings quick, and then went on to fix the cause of the leak.

Perhaps you can make that book accessible only to folks, who have read,learned, practiced and graduated as preventative medical doctors first.

Some people are keen to learn all they can sincerely.

Mon May 28, 01:19:00 AM EDT  

Blogger Charlie 1 木匠 said....

Here is a similar Chinese story:

华佗是名医.

华佗的二哥学艺精良,他常常在肺癌还处在肺炎阶段就已经做出了确切的诊断,知道这个普通的肺炎存在着演变成肺癌的可能性,并在这之前就把这可能性扼杀在了摇篮里。

华佗的大哥超凡入圣,他常常在肺癌和肺炎都尚未发生,患者才咳嗽了几声时,就已经知道这毛病非同小可,不是普通的感冒,而是肺癌的前身,于是,他当机立断,采取独家秘诀,断了这咳嗽的根,使之连变成肺炎的机会都没有。

你要做华佗,还是做华佗的哥哥?

-木匠

Mon May 28, 05:16:00 PM EDT  

Blogger Phil Singer said....

Tom, I admire your attempts to rescue English grammar from IMspeak (whenever someone sends me an email with the pronoun 'U', I reply with 'U is dead' and the Wikipedia URL). It is in that spirit that I point out that 'preventive' is preferred over 'preventative'. http://grammarist.com/spelling/preventative-preventive/

Mon May 28, 05:54:00 PM EDT  

Blogger al0 said....

@Phil

Unfortunately, an analysis on grammarist.com is incorrect.

According to Merriam-Webster "preventative" is almost as ole as "preventive" (firstly use 1666 vs. 1639).

So there is no reason to prefer one of them.

Fri Jun 01, 10:08:00 AM EDT  

Blogger al0 said....

And sorry for a typo in my previous comment.

Fri Jun 01, 10:09:00 AM EDT  

Anonymous Lasse Jenssen said....

In real life people get by 99 % of the time without needing a doctor at all. How? We avoid the big mistakes! We don't climb big walls without a safety line. We don't jump of planes without a parachuter. We don't mess with someone 10 inches taler and 10 pound heavier than us. Well ... some do, and they do need a doctor once in a while - a good one. My point is: If developers learned a little more about the Oracle basics, then we didn't need a world of doctors. I was asked to look at this database the other day because of bad performance. Well ... All columns was defined as varchar2 (also dates and numbers). There was no foreign keys defined. There were histograms all over (also on dates defined with varchar2). There was lots and lots of row-by-row processing (from an application server) leaving almost 40 % of the wait as "SQL*Net message from client" (batch processing). The list goes on. But to keep this comment short: I'm the doctor, but I think I need some medicine myself. Could someone prescribe a good redwine or maybe a good Cognac?

Wed Jun 20, 02:36:00 PM EDT  

Blogger Thomas Kyte said....

@Lasse,

my preferred medicine is a Bombay Sapphire martini, dirty, with olives

Wed Jun 20, 02:39:00 PM EDT  

POST A COMMENT

<< Home