Friday, June 01, 2012

Getting Help

First of all, let me state that this is not meant as an insult. 

Secondly, most people in IT suck at designing databases.

Third, it’s not their fault.

There is an art to designing a database correctly, from determining the correct number of filegroups, the indexes that need to be created, the clustered keys, the primary keys, when to use GUIDs vs. Identity columns and when to use stored procedures vs. dynamic SQL.  There is a lot to learn to become really good at it and when you come across someone who is good at it you know. 

I worked with this guy who would stare at the diagram of the tables for a long time, not moving, just tapping his fingers.  Suddenly he would start typing madly and in ten minutes he would have solved a couple of the hardest database issues you could throw at him.  He was never sure how he did it, but he said that he visualized the tables in his head and all of the primary and foreign keys and moved things around until they looked “right”.  He was very good at squeezing every last bit of performance he could out of the system.

Not everyone can do that.  Not everyone should be able to do that.

What you need to be good at is recognizing when you need help, recognizing that there is an issue in front of you that goes beyond your expertise and asking for help.  Too often our egos stand in the way of us actually getting the help we require because we believe that others expect us to somehow know everything about everything.  It doesn’t work.  Know enough to know when to get help.  That is the key to success.

No comments: