It then occurred to me that most of the readers, who are reading this post now, already know or can imagine the benefits of hiring a DBA to take care of their system.
So what I want to offer is a case based on the emotional benefits and value a part-time DBA can offer you and your business.
1) Peace of Mind
A DBA can offer you peace of mind that one of your core business components is being taken care of. It is like maintaining your house gas boiler or car every now to keep it running in good working order and preventing it from blowing up. Except that in this example, if it does break, you can't use the entire house or car until they are fixed.
What is important to remember here is that there is no immediate justification for spending money on maintenance. There is even a sense of loss when you do spend the money without seeing any value from it. You are left in a mental tug-of-war between the possibility of downtime and loss of profits to the immediate hit to your cash flow.
What usually helps here is to calculate the cost of downtime with the estimated time and effort to recover from it divided by the chance that it will happen.
In the event that your main database servers breaks down:
- How much money are you losing from sales?
- How much money are you losing from possible future sales? (For example, sales people and marketeers cannot send people to the website or loss of reputation)
- How much money will it cost to get people (even at the dead of night) to resolve the problem? (people multiplied by hours or overtime hours)
- How much disruption will it cause later on? (For example, sales people need to speak with clients to assure them everything is OK for two days instead of finding new clients)
Divided by - the chance that your database servers will break down.
- Are we expecting any seasonal bursts of traffic and will the database servers handle it?
- Will the hardware that the database server sits on hold up in the next 6 months?
- How many single-points-of-failure are there in the environment where the database servers are?
- How many people have DROP TABLE access to your servers and how often to people run "heavy" reporting queries on them?
- How high is your developers skill level when it comes to writing efficient queries that prevent high database usage? (When releasing a new product or feature)
Once you answered all (or some) of those questions and jotted down some numbers, you will then have a figure of how much money you should spend to prevent downtime. This is a very basic risk management formula for managers and will allow you to get some perspective.
The mental tug-of-war can take a break as you are now allocating resources for something you planned a head of time.
2) Preventing loss of confidence
More often then not, I see a lot of small companies have people maintain their databases who do not have a lot of expertise to do it. Typically, if you have some developers, you ask one of them to do it. If you have a system administrator then that usually falls under that responsibility.
What happens then is that those people (usually, but not always) not fully understand their databases and just "keep them running". If something comes up that is a bit out of the ordinary then things start to get stressful.
I've even seen the database becomes the "don't touch it or it will break" system in the company.
At that point, you lose confidence in your system and prefer to not have to deal with it as much as possible.
3) Energy, Focus and Flow
When you have people with database expertise on hand, you can solve database related problems very quickly. Problems that were once difficult and complicated suddenly become straight forward.
For example, instead of having meetings discussing how to implement a very data intensive operation in the best way, you now have someone that can provide a quick answer or at least a direction to help implement it based on best practice and experience.
Your team can become more cross-functional as the expertise gets shared and solutions come more quickly.
You feel more in a "flow" - that things are moving in the right direction. You can focus on things which you would rather focus on you feel more energetic because of it.
4) Trust, Knowledge and Speed
Having an expert in your business and part of your team is very comforting. The more this expert is involved your business, the more this expert knows, understands and appreciate how your business runs and solves theirs problems. There is a cost benefit of having someone you trust and is knowledgeable about your business when you compare it to:
- Finding a new expert (Possible additional fees for system or agent that found the expert).
- Evaluating the person is in fact, an expert in their field.
- Explaining what the business problem is
- Double-checking if their solution does work or fully solves your problem.
- If you are not happy with them, go to step 1.
- If there was a misunderstanding in communication, go to step 3
- Implement solution
Put a price on each step and compare it to writing an email to your expert saying "we have a problem with that thing we spoke about a while back. Can you please take a look at it?"
In fact, I would go one step further. If your expert is part of your team and they "own" and are responsible for your database system, there is a good chance that they would have come to you after finding the problem themselves and with a possible solution.
I never fully appreciated outsourcing a lot of core parts of a business to one-time development shops. I believe there is valuable business-knowledge that gets lost and that the additional overhead to manage everything becomes very high.
I truly hope that this post may benefit people by giving them peace of mind, confidence and a clear direction that will help them with their business and make it more enjoyable.