What Skills Should I Learn To Grow As A DBA?
My answer to this question, could surprise you, because today, I am not going to talk about technical skills at all.
This is a follow up on last week’s post How To Become An Awesome DBA – 3 Skills I Learned From My DBA Mentors. I’d like to add to those skills a few more.
Why am I not covering any technical skills? Because, technical skills are easy to learn, especially if you are in the industry for some time. This article is not about learning tuning skills, or backup and recovery, nor 12c new features (which are not as new anymore).
The article is about soft skills, and psychology, as you grow in the DBA role.
These skills will set you apart from the crowd. These skills will be the icing on the cake.
The three skills I will cover, are:
Skill #1: Develop Big Picture Thinking
This skill goes back to last week’s article, about learning and planning. Learn as much as you can about the environment you work in. Learn as much as you can about how the applications
are related to the database: where are they running from, how do they connect to the database, what user do they run as.
Let me give you an example. Let’s take PeopleSoft application. This application has many moving parts and components, such as the web server, the process scheduler, the app server, and the
database. Even if you do not manage the application, you need to know some basic things, such as what is the purpose of the web server, where is the web server running. Same applies for the
Learn as much as you can about the physical servers where your database resides, and the storage/disks.
I highly recommend a visit to the server room, and also a trip to the business users that are using the applications. Seeing things in action makes it easier to understand the importance of the database for the company you are working for and for the users you are supporting.
The more you learn and understand about how the databases, servers and applications are working together, the better your
Big Picture Thinking gets. You will develop an “eye” for seeing things that others don’t. You will better understand the impact of any change to the system. You will provide better service and availability for your users.
Skill #2: Speak Your Users’ Language
When you talk to the users of the system about a work related problem, remember they don’t have an understanding of Oracle or SQL Server databases. They don’t know what a tablespace, role or execution plan is. Instead of talking to them in database (technical) language, just use plain English. Listen to your users speak, and use the same words they use.
This is a very good exercise for you to practice. Explaining things in English, not in Oracle or SQL Server language. You really know your thing when you can explain it to anyone, and they do understand you.
Let me give you an example. An important report is running slow. You are the DBA that is investigating and you determined that the execution plan has changed. The user is asking for an explanation of what happened. Imagine the look on the user’s face when you tell them:
“The Optimizer has decided that a hash join would be better than a nested loop, thus it changed the execution plan of the sql query you were running. I implemented a hint at the beginning of the sql statement, and the report runs fast again”.
Rewrite the above statement to:
“The way the database retrieves the data from the tables has changed, because the database decided it would be faster and better. In this case it was not,thus the report ran slower.I just had to tell the database the previous way to retrieve data, was better, and now the report runs smoothly again.”
Don’t try to “educate” your users to speak the database language. Always speak your users’ language!
Skill #3: Curiosity
Have you ever had a conversation with a 4-5 year old kid? Have you noticed the amount of questions they ask you? Do you think they want to annoy you? No, they ask all these questions out of curiosity. Do you know what they ask the most? WHY? And when you answer, the next question is “But, WHY?” They will ask as many times WHY, as needed to understand what you are saying.
Kids are curious by nature, and with the years we lose this curiosity. We start to get in the habit of doing the same thing again and again, forgetting to ask the question WHY are we doing it. Don’t be afraid to be curious.
Don’t be afraid to ask WHY are you doing something the way you are.
Maybe the approach worked 3-4 years ago, and the circumstances have changed.
I remember working as a new DBA, and the “best practice” rule at work was, to have the maximum datafile size of 4GB. This was 8 years ago. Do you think this rule would apply today too? I believe it would be ridiculous.
It is refreshing to train a new DBA on the job, because they would put you on the spot and make you review some of the “best practices” of the site, as they ask many “WHY” questions.
Be curious in learning new skills. Be curious about 12c, about the Oracle optimizer. Be curious about Unix. Be curious about what other DBAs are doing, and why they are doing it.
How can you get better at these 3 skills?
There is no magic pill.
The only way to perfect these skills, is by practice and conscious effort to do so. The more you practice it, the better you get at it! This is what I tell my kids too!