Skip to Main Content
  • Questions
  • Process in order to estimate how many DBAs are needed to support a project

Breadcrumb

May 4th

Question and Answer

Connor McDonald

Thanks for the question, John.

Asked: September 16, 2020 - 4:47 pm UTC

Last updated: September 17, 2020 - 1:59 pm UTC

Version: 12.2.0.3

Viewed 1000+ times

You Asked

GM,

Do you guys know of a whitepaper or training that describes an approach to estimating how many Oracle DBA hours are needed to perform X, Y, Z? We are bidding on an effort, and I would prefer not to have to reinvent the wheel if something already exists.

For instance, if a project has these requirements:
DBA shall setup a three node 19c RAC cluster with ASM.
DBA shall tune the system
DBA shall be able to restore the database within a day with minimal data loss
DBA shall It will need to be tuned.
DBA shall setup a disaster recovery site using data guard
DBA shall setup security to meet NIST-3029

I have started to break down all of the 50+ major tasks to satisfy the above requirements, and and threw in there rough daily estimates for each step.

Database Security 10 days:
o Database instance security hardening setup 3
o Database server security hardening implementation - 2
o Security scanner software setup and troubleshooting - 1
o Troubleshooting false positive security findings and waivers - 2

Oracle install and dB creation with RAC- 5 days
o Clusterware setup- 3 days
o RAC database creation- 1
o Licensing - .5
o Database Shutdown and Startup setup 1

Backup and Recovery Setup- 2
etc.

Thanks,

John


and Chris said...

This reminds me of the old joke:

How many DBAs does it take to change a lightbulb?

One to many


I'm not aware of any whitepapers etc. that will help you here. The problem is the time it takes to complete a task depends on many factors.

Even for something straightforward like installing the database, how long it actually takes can vary a lot based on factors such as:

- If you're using cloud, physical, or virtual servers
- To what extent the DBA will be expected to do sysadmin/networking tasks (provisioning the servers, etc.)
- What level of automation you have in place currently (and how much effort you want to include for adding/improving this)
- The skill/experience of the DBAs you have
- If you're building DR/test/dev systems too
- etc.

When you get into areas like security and tuning the range in tasks you may have to do becomes even greater. In a well-written application, there may be little for you do to in these areas. On the other hand, if the application's written poorly (e.g. lack of bind variables, lots of row-by-row processing, etc.) these could be endless tasks.

On that point think carefully about what the scope of "the system" is. If the application's slow, to what extent will you be expected to help out and solve the issue? What if the problem comes down to poor coding practices?

Getting the balance right between helping the customer out and taking on more than you can handle is tricky.

Also consider: if there are generally available task estimation tools/formulas available, your competitors are likely to use these too as the basis for their bids. Which can lead to many similar bids, making it hard for you to stand out. Focus on the value you can provide to the customer over the time it takes you to complete the task.

Ultimately one of the more effective estimation techniques is to think of times you've done similar tasks in the past and use these as the starting point for your effort estimates. e.g. if the last time your team did a security audit and associated hardening it took 2 months, estimating 10 days this time around is a little optimistic.

I'm sure others will have opinions and advice on this topic - keep an eye on the reviews for these.

Rating

  (1 rating)

Is this answer out of date? If it is, please let us know via a Comment

Comments

A reader, September 17, 2020 - 10:33 pm UTC

Chris, thanks for your valuable insight. Estimating this is a very frustrating request. There are so many variables. First, it is unknown how much time the DBA has to spend time on nonDBA tasks like company administrative stuff like training, reading emails, attending meetings, etc. Then you have support staff requirements needed by the DBA to get database systems setup like system admin, storage admins, etc that vary from place to place. Also, every DBA isn't created equally. Finally, as you mention you have varying needs on development efforts, various different issues that can arise from say the RAC/clusterware setup, etc.

I totally agree on your advise of "Focus on the value you can provide to the customer over the time it takes you to complete the task." The problem is that the DBAs who will work on the effort isn't even known which makes this type of request even more insane.

"Ultimately one of the more effective estimation techniques is to think of times you've done similar tasks in the past and use these as the starting point for your effort estimates. e.g. if the last time your team did a security audit and associated hardening it took 2 months, estimating 10 days this time around is a little optimistic." Again, the problem is that I don't even know the DBA who will be performing it.

More to Explore

Administration

Need more information on Administration? Check out the Administrators guide for the Oracle Database