Whenver we start a somewhat big IT project, it is natural for us to build a team dedicated to the project, and the team is usually made up of a project manager, a technical architect, a business analyst, developers, and QAs etc. (Of course, the team can also have some other members like, a data modeller, a DBA or a technical writer etc)
However, I seldom see any company which is big enough has paid enough attention to building a strong DBA team from a project perspective. These days, the database administration domain is so big that any individual can hardly be a person of all trades in the db administration world. As we know, a team's power (of course, if managed well) is much bigger than the sum of each individual in the team because of the synergy inside the team.
IMO, a DBA team should be somewhat similar to a natural project team because in essense, a project team is formed based on the assumption that there should be at least one person dedicated to a specific field in the project, and this assumption also applies to the database administration because of the complexity of this domain.
For DBAs, our ultimate goal is to keep a a highly efficient / available database system within the boundary of existing hardware / OS / system resources. Though this is a never-ending "project", I still think that to achieve the best result, it deserves to build a DBA team dedicated for this forever on-going project. To maximize the synergy , I come up with the following roles and their tasks in a DBA team
# | Role | Task |
1 | Database administration Manager (DBAM) | Resource allocation, task prioritization, stakeholder communication, and responsible for the whole database administration standards esp. in the context of Service Level Agreement |
2 | Database administration architect (DBAA) | Explore and research the new efficient ways to tackle current administration work, prototype innovative idea, introduce the new best practice, and ensure the administration quality / efficiency.(see my detail thoughts about this role at http://www.sqlservercentral.com/articles/Miscellaneous/2989/) |
3 | Database administration librarian (DBAL) | Build team knowledge base (including categorizing / version-controlling the resources) and set up a knowledge-sharing framework which everyone can contribute but what contributed will be QA'ed by this DBAL This person should be the key person for other DBA to look for resources (I will blog more details about this role in future) |
4 | Database administration developer (DBAD) | Develop a fully functional solution based on DBAA's prototype and also develop scripts / reports at DBAM's requests. (I will blog more thoughts about this role in future) |
5 | Database Administration tester (DBAT) | Set up the system benchmark by developing various test cases, test and tune the application components in a database. (for details of this, pls see my previous blog at http://blogs.sqlservercentral.com/jeffrey_yao/archive/2008/02/29/new-dba-type-test-dba.aspx) |
6 | Production DBA | Monitor and manage the sql server system, all the regular tasks a DBA should do, such as backup / restore, db creation, system setup, applying hotfixes / patches, and trouble-shooting any issues |
Of course, in a team, one DBA can be assigned multiple roles depending on the workload involved.
For this "DBA team" concept (similar to Center of Excellence), I think this is mostly useful for consulting companies, who take the outsoucing contracts to take care of the clients' database administration work.
In short, I believe a strong DBA team is made up of people who are experts in their specific fields (necessary to tackle the tough and complicated db administration environment) and when getting together can generate a huge ROI for the consulting companies.