The Database Administrator is going away. That DBA is the old school DBA that guards the data assets of the company not only from outside interference but also from internal developers who might damage the reliability of the database. Yet that same DBA is stuck working at the bottom of the data stack, with only the database to manage and protect. They are the person who is unable to enable developers to make best use of the data.
This is an issue that is not about technology but of roles so...
Say goodbye to the DBA. And say hello to the Database Advocate, the person who ensures that developers' first stop for information is the database. The new Database Advocate is there, not to optimise queries but to show developers how they can optimise what they do for best performance and data quality. The Database Advocate for the agile age isn't going to be the gatekeeper of the database, but the gate greeter there to welcome developers in and help make sure they are properly equipped to work with the database or databases.
But why the change?
Today's most creative developers are usually agile developers. The tools they work with are no longer confined to a server in a basement but stretch across the internet – deployment systems, CI platforms, distributed version management, content delivery networks, remote conferencing and screen sharing and many more. The thing is, these developers aren't waiting for someone to grant them the access to those services on a need to know basis. Instead they may come as build your own, from open source, or from open source-based services, or from some more traditional model of SaaS.
The developer's job is to be as agile as possible in creating reliable processes to deliver the company's applications. Then they get to face the in-house database with its traditional database administrator. The traditional DBA has been charged with the task of protecting the database and its data and one of the simplest ways to protect is to build a moat around it. The database administrator can then take control of their domain and deliver the reliable, backed-up, available, secure and consistent database that they can manage. Cloud databases are out of scope for the database administrator and even an anti-pattern to good data management in their book. Schemas are carefully cultivated, views kept clean and each new load on the database is carefully examined before deployment, because that's how you manage a database.
Except the agile developer will want to try out a range of strategies for acquiring information from the database. They'll be looking for best performance to put in front of the application user. The needs of the database will come a second or third or further down the priority list. And there is the point of unnecessary friction, where the development process grinds slower and sparks are generated. The worst part of the conflict is that the database administrator has knowledge and skills which could enhance the developers ability to extract data. If only they could work together...
What is a Database Advocate?
The database advocate's job is not to guard the database from the world but to advocate the best ways to use it and offering the tools to optimise that usage. The database is wherever the data is. This means the database advocate will be the "go to" person to find out where data is, what databases and services are right for applications and to ensure that no isolated islands of data appear. Databases can be on premises or in the cloud – the database advocate looks after the data and makes sure that the data is available, backed-up and secure.
But the real challenge for the database advocate is in education. Developers have been generally bad at working with databases. Forgetting there are various limits at play, they can end up treating it as a black box which should return results instantly. This ends up sucking the performance out of a database without realising what part an application is playing in it. Database advocates will know that a stable database doesn't just have its performance fall off a cliff without something happening to push it, be it a large data load, an unoptimized query, a new application module just plugged in or a spike in particular queries.
A developer is often not equipped to see this and can only judge things based on application performance. If, of course, they are measuring application performance, the advocate can assist them in coming up with a performance monitoring framework. When a problem does happen, the advocate should be able give them access to logs and other diagnostic tools so they can isolate what the problem is. Where the meaning is unclear, the advocate can show them how to interpret the data. And when they have isolated the problem, the advocate can be there to offer options to fix the problem.
For the database advocate, ensuring good performance doesn't mean trying to hardware admin, it means being able to bring good data and database practice to the whole stack. It means teaching and enabling developers to find their problems early and know that sub-par performance early on could easily lead to no performance in production.
The database advocate is there to speak for the data and the database. To work with the whole stack, not just the provide the cornerstone of it – corner-stones are hard to move when everything is loaded on them.
Who is a Database Advocate?
This is where something amazing happens. Database Administrators have the skills to become Database Advocates, all they need are tools. It's reasonable to remember that Database Administrators already have their plate full of responsibilities though and shifting to an advocacy role will take time as would any shift from legacy to modern. But it's time well spent to get the information agility that the future is demanding.