Devs and DBAs can’t find peace, but could they call a truce?


Picture this scenario: You’ve just joined a new tech company, excited to start onboarding and dive into your first projects. But soon, it hits you – the tension.
Developers gripe about sluggish and obstructive DBAs, while Database Administrators grumble and murmur about the constant stream of poorly optimized queries, chaotic code, and last-minute demands from developers.
Did you stumble upon a toxic workplace? Not exactly. It’s the age-old clash that’s been brewing for decades between two ‘tribes’: those who want to build quickly and those who safeguard stability.
So, do DBAs play the role of protectors, or are devs just a tad bit spoiled?
How did we get here?
The friction comes from a classic disconnect: speed vs. stability.
Developers are eager to ship features as fast as they can (preferably yesterday), often under pressure from clients, management, or some other deadline-driven force, while DBAs are focused on ensuring the database doesn’t crash tomorrow.
When these priorities clash, chaos is inevitable – and I know this firsthand because I’ve been on both sides.
Let’s take a closer look at it from a developer’s angle
- ‘We need to speed up our delivery!’
The main argument is that developers often work under tight deadlines. To them, a database is just a tool – the simpler, the better. Why involve DBAs early if it slows down prototyping?
There’s also a prevailing ‘good enough for now’ mentality, where getting a working prototype is the priority.
- ‘Setting up new databases takes ages.’
Waiting for approvals, scheme checks, or infrastructure setups feels like watching paint dry.
- ‘Getting DBAs involved can feel like pulling teeth.’
When DBAs push back on quick fixes or demand documentation, developers see red tape rather than guardianship.
Now, let’s dive into the DBA’s side of the story
- ‘We’re called in too late!’
DBAs often inherit poorly designed schemas or performance nightmares. Fixing a burning database at 2 a.m. is never fun, especially when you don’t know anything about it or where to begin.
- ‘Devs don’t listen.’
Recommendations about indexing, query optimization, or security often fall on deaf ears – until an outage happens. No matter how many times you share documentation, hold knowledge-sharing sessions, or discuss the topic, it sometimes feels like no one listens.
- ‘We’re the unsung janitors.’
While devs chase innovation, DBAs clean up the mess. Their priorities – backups, scalability, and compliance – may not be glamorous, but they’re non-negotiable.
If a company wants to make it in the worldwide market, it needs to be compliant with numerous regulations. And that is just the beginning – data needs to be secured, and data leaks and privacy concerns aren’t fun for anyone. We need backups and replication set up for disaster recovery, satisfy numerous architecture decision records, and all that complicates the process. It will never be as simple and fast as just deploying a DB locally in Docker.
So, what do devs and DBAs really want?
DBAs just want preventative care – they’re like doctors urging you to eat your veggies, not just treating heart attacks.
On the other hand, devs need speed without fallout. They want to innovate without waking up to a dumpster fire.
But do devs really want to own databases?
Sure, devs can deploy their own database, but maintaining performance, security, and costs? That’s a full-time job – one many devs aren’t signing up for.
It may sound great at first, but once you deploy it, the database works fine – until it doesn’t. It’s just a matter of time before the first issues arise. And surely, devs would rather spend their time programming than maintaining and troubleshooting a database.
Think it can’t get worse? Well, say hello to AI
Enter AI and vector databases – tools promising lightning-fast analytics.
The number of new vector databases is skyrocketing, and devs want them all, each with a specific feature they need. But for DBAs, this is a nightmare. Integrating a new database is a slow and painful process, as all checks for security, compliance, and requirements need to be tested and approved. New database types (e.g., vector DBs for ML) often lack mature tooling or expertise. DBAs scramble to secure and scale them, while devs resent the learning curve.
So, who is right?
They both are, and at the same time, they both aren’t – much like the relationship between devs and clients.
Devs often complain about clients’ broad demands, tight deadlines, and constant changes. Sound familiar? The Dev vs DBA battle is similar: devs forget that, as clients of DBAs, they’re the ones pushing for deadlines and changes, just like clients do to them.
So, devs must make compromises with clients because the company’s revenue depends on it. However, I think DBAs tend to be ‘harder’ on their clients since they don’t face the same pressure of potentially losing business.
Is there hope for peace?
There isn’t – at least not a simple one.
But we can all work together to reduce tension and aim for some kind of truce. We need to be more understanding.
Devs should recognize that DBAs aren’t just complicating things for no reason and should involve them in the service architecture process. On the other hand, DBAs should view devs as clients, understand the need for compromise, and simplify the process of providing databases by using automation or internal tools whenever possible.