The first guy was so irate and literally yelling about his entitlement to punish us for making bad architectural decisions that I thought he was joking. I just laughed, but he got angrier. Then it clicked after maybe five or ten seconds – he was in the process of verbally punishing us for querying the database too much.
The second guy was similar, but didn’t yell. Still super protective of his domain, almost antagonistic about us integrating with the database at all.
Both brilliant, taught me more than I can recount here, hilarious and interesting… But total jerks too, and both let go more or less for that reason.
One they had a great system in place and the product felt mature, the companies axed them.
They also earnt good money for a while. When I worked for Oracle, there were lots of stories of Oracle consultants being payed day rates which would still be considered high today.
Networks & DBs present abstractions, but they're very leaky ones, yet developers often expect to just treat them as magical black boxes about which they don't need to know much of the inner workings, constraints, tradeoffs etc. That makes the interface between the network engineer or DBA and software developers a natural site of conflict.
(You even see this above in this very thread, someone complaining that a DBA was punishing developers for "querying the database too much". Most likely the DBA was actually upset about how they were querying the database, not that they were querying it too much, but the developers want it to "just work" so the distinction isn't important to them.)
[0] The mechanic is also being paid by you to fix your screwup, in proportion to the severity of the screwup. Your colleague is not.
The DBA's job doesn't generally extend to fixing your code to use database features correctly, write SQL in a sane way, etc. Even if it does at your company, unlike the mechanic they're not being paid by you to do that work; they get their salary regardless. So it's natural that if you keep bringing unpleasant work to them because you're bad at your own job, they're going to get upset.
I tried to hire a guy for a postgres DBA at a company I had worked at. I knew him from before as a MS SQL DBA from a previous company and hoped he could fulfill the role, he said he could. The guy saved our asses in the previous case.
We gave him like a month paid time to get acquainted with postgres. Dude DISAPPEARS, gets his vpn keys revoked and everything because we're like what the hell. A month later he sends this big long email saying how he got in some altercation with the police, and landed in jail... it was just way too rambling to take seriously. We ask a mutual friend what the hell was up and he said that since he was working too much his wife CONFISCATED HIS CELL PHONE.
I think we called him 'ballgag ***' (fill in the blank with your least favorite person's name) after that
These guys are worth their weight in gold though, I think I heard he ended up getting a job at Microsoft down the line
We used to joke that he was reading/writing so much all-caps SQL code that his brain altered to scream more :)
- DBAs have the most important thing under their management: data
- Any fault they make can result in downtime, data loss, data corruption, etc.
- They typically have to deal with the same (basic) stuff from developers
- I haven't seen any DBA get involved in the data modeling.
- Work on production is usually when the shit hit the fan
- Work on production can be slow (live, large datasets), which makes things more stressful
Just by having a different role, title or label attached to you can be pretty stressful by itself, specially if you are out numbered and decision making is done by number of hands.
The majority not always get that. Also is so common to be exposed to other people's frustration when explaining things, or denying a request, balancing between letting someone shoot their own feet, explaining once again why that is not a good idea, or just restoring a backup later.
Only thing, was this guy had zero programming experience outside SQL and Bash. Anytime he had a question in a meeting about some calling Java process, he used to wait until the meeting was finished and then grab five minutes with me privately to ask about whatever. So there was this perceived weakness that his professional persona "knew everything", which meant he couldn't ask fundamental questions or try to (publicly) learn things outside his domain.
In the end, we moved to Amazon Redshift, and he was progressively moved into a smaller and smaller role, where now he just curates 2-year old JIRA tickets. Probably knows he can't get a similarly well-paying gig elsewhere now.
I'm now wondering if there is something about the role that lends itself to such behavior. One day they are super pleasant, helpful and friendly. The next they are chewing people out for seemingly minor and random transgressions and saying things like "ruining my fucking database".
Today these guys remind me a lot of JK Simmons character in "Whiplash"
There’s something to your observation. Ok, I’ve held enterprise and application DBA roles, literally decades of experience. Sometimes the cruelty and dominance is necessary because of the responsibility focused on the position. I’ve often proposed being over-accommodating is important for non-architect application DBA roles, whereas the implications of SRE and resource planning might require an enterprise DBA to immediately and summarily cut off stupid/ignorant ideas before they acquire momentum and screw things up for the business. A DBA might not have time to be patient when resource constrained. Also, all too often people ‘suppose’ what the data specialist is doing and gum things up trying to be “helpful” when they should be asking for help, costing much frustration.
I’ve had developers try to take on DBA responsibility and find enlightenment when they learn enough to grok the rationale behind my seemingly arbitrary demands...I try to spend time as a developer periodically so I can refresh my developer perspective and not just expect engineers to automatically conform to my narrow perspective.
The impact that you describe very broadly reminds me of https://en.wikipedia.org/wiki/Stockholm_syndrome. I'm still learning about the subject, so the only nearby useful axis point I'm aware of is the concept of chronic trauma, which I'm surprisingly unable to find a synopsis on in Wikipedia (the closest I can find is https://en.wikipedia.org/wiki/Complex_post-traumatic_stress_..., which is vaguely in the ballpark but a couple notches too far).
Personality disorders have the potential to have the same sort of impact as water on a rock over time. I wonder how this person impacted other people at the company - and whether the boundary-defying nature of this sort of problem caused the line between "broken individual" and "DBAs are scary" to be blurred.
It could be very interesting for the various decisionmakers to wind up in a conversation with a good psychologist (psychiatrist?) who might be able to make that line a little bit clearer for everyone (and provide closure) and perhaps even outline ways to screen for this sort of thing happening in the future - which may be the speedbump everyone's (very quietly) stuck at.
He got let go for basically having a really bad temper, and we decided not to look for a new DBA. I was sad he was gone but also glad to not be getting screamed at. It feels silly, but I've got really unresolved and mixed feelings about the whole thing. I genuinely really liked the guy, loved talking music and movies with him, but he would heel turn in an instant and just ruin your day.
Honestly wish we had a DBA, I ended up picking up a lot of his responsibilities. I'd love to have someone I could learn from. Basically, I'm getting real sick of optimizing reports.