What kind of DBA's (Database Administrators) are out there?
Microsoft SQL Server is a mature, expanding and incredibly broad product which can be broken up into various groups of similar skillsets. It is very uncommon for a single individual to possess the knowledge and career experience to work with everything in the wide SQL Server umbrella.
A comparison could be drawn to the automotive industry, even inside one manufacturer – it is unlikely that the same job skillset required for designing automobile bodies would overlap with the skillsets required for any of these tasks: manufacturing the tires, replacing a windshield, rebuilding a ruined internal combustion engine or registering the vehicle with the DMV.
Here's the different mix-and-matchable flavors that "SQL Server" work can be divided into. Most experienced, mid-level or higher SQL Server professionals will have four to six of these roles comfortable in hand. Certainly a "DBA's" skillset could be considered in high demand with expertise in just two or three of these categories, and it's common for even mastery-level professionals to lack significant experience in one or two of these categories.
- Responsible for backups, configuration, securing and performance monitoring of the server, including advanced or Enterprise-level security and performance features
- Primary practitioner of disaster recovery, database configuration and "ownership" of database stability
Database Deployment Administrator
- Solely involved change management, source control, code review and security, this career flavor is the "button clicker" for others' changes to a production server under controlled circumstances, and performing rollbacks when necessary.
- While not often the primary job role, single-tasked "deployment DBA's" do exist out there, with a limited skillset that combines IT governance, operations and leadership more than technical skills.
High Availability Administrator
- Becomes the lead designer, implementer and maintainer of HA features when implemented in a SQL Server environment, including but not limited to Windows Server Clustering, Database Mirroring, AlwaysOn Availability Groups.
- Highly involved in manual or disaster-related failovers, migrations and hardware upgrades, this role covers "on-call rotation" skillsets needed to ensure constant uptime.
- Responsible for "performance tuning" and "database optimization", this professional is very comfortable with database internals and can write TSQL code without templates. This covers the "rock star" skillset who can diagnose performance chokepoints, rewrite inefficient code and align indexes.
- The most transactional (wink) flavor of database professional, this skillset sometimes works side-by-side with software developers on .NET code, but can also provide performance tuning inside the database layer that is transparent to the application.
Relational Database Designer
- You'll notice I refrain from ever using the industry-loaded word "architect", but this flavor does lay down the blueprints for relational data storage before code is written.
- This most academic of skillsets should be comfortable with the process of normalizing conceptual and physical database models of databases, and a fan of CJ Date and EF Codd. This is the role that creates and maintains the Entity-Relationship diagram, for example.
Data Integration Developer
- In the Microsoft ecosystem, this role spends the most time creating and deploying powerful data-processing code in SQL Server Integration Services (SSIS), which is the industry standard for Extract, Transform and Load (ETL) operations.
- Whether it be a nightly warehouse process, data scrubbing, report data processing every five minutes, or a one-time massively-parallel data migration, the ETL Developer is in charge of your "Data Conversion" and spends long hours massaging the data into place.
Data Warehouse Designer
- The Relational Database Designer from another dimension (wink), this skillset creates data models that are intended to serve massive read-only requests from a frequently-updated "warehouse" of data that is used for large aggregations, year-over-year reporting, trending and heavy statistical analysis.
- Again I eschew the use of the too-broad term "architect," but this role does design the foundation that will serve the Business Intelligence needs of an enterprise by interacting directly with subject matter experts in the business.
Business Intelligence Developer
- Since SQL 2008 R2, this job role has exploded in value and capability, starting with SQL Server Reporting Services and a host of buzzwordy Microsoft products: PowerPivot, PowerView, SharePoint, PerformancePoint, plus Excel and more. The addition of the SQL Server Tabular Model of SQL Server Analysis Services also allows this role to far more easily provide the corporate "data cube," which presents aggregations of the enterprise's data warehouse.
- More than your basic "Report Developer", this skillset is growing fast and capable of so much more these days, especially with the presence of SharePoint in the enterprise and the easily-approachable SSAS Tabular Model. This role usually works under the direction of a Data Warehouse Designer.
SSAS Multidimensional Developer
- The rarest of experts are those with a skillset in the Multidimensional Mode of SQL Server Analysis Services (SSAS), Microsoft's time-honored OnLine Analysis Processing (OLAP) engine. An industry-standard "Data Cube" platform since SQL 2000, SSAS provides massive aggregation and fast ad hoc reporting for huge enterprise-level amounts of data.
- The original Multidimensional Mode of SSAS requires a focused skillset with little overlap and leverages the distinctive MDX language. On the other hand, the Tabular Mode of SSAS requires a skillset in DAX, designed to closely resemble the Excel function language, so that it is accessible to a wider range of Business Intelligence developers and "power users" in the corporate environment.
- The SSAS Multidimensional Developer is the most unique of SQL Server skillsets, as the MDX language is not easily approachable, especially for someone who already possesses a strong TSQL background. MDX development is useful and powerful but has a challenging learning curve.
Understanding the expanding range of skills involved in database work is important to recruits, hiring managers, technical leads, department peers, and SQL Server professionals themselves. We can best utilize resources and align their career progress with their strengths and development areas in mind.