Many developers know the database administrator as a curmudgeon who’s favorite word is “no”. DBA’s aren’t mean or grumpy at heart; they just want stability and order. They succeed when the database stays up and get fired when it goes down.
When brash developers come along and change things, it threatens stability, and they deny, or at least grumble about change. This is good for stability but not great for project velocity.
I like the idea of having a tactical DBA on the project team. The TDBA is responsible for things like:
- Creating tables based upon the domain model
- Implementing good indexes
- Tuning queries
- Managing ETL tasks
- Making other DBA’s feel good
I’ve worked on teams with a dedicated DBA, and it is awesome. Application developers don’t have to slow down to dust off SQL skills or negotiate with the omnipotent DBA. Everyone can do what they’re good at, and progress is accelerated.
Sadly, it’s a hard to convince managers that a team deserves a whole DBA just for their project, but I think it’s a pitch worth making.