As usual, it all started out innocently enough. Susan [ed: names have been changed to protect privacy] had no way to meet the deadlines her bosses had set for her. Bob had recently and abruptly left the company, and Melissa was on an extended medical absence, leaving Susan to do the work of three people. That is, three people each trying to reconcile a few dozen 40,000+ row Excel spreadsheets representing the general ledger of the Fortune 1000 company they consulted for. She was about to brush off ever-chatty and annoying Michael from Compliance when, for once, he recognized the stress she was under and said something useful.
[Tim here: I didn’t write this! I read it on a mailing list, uh, somewhere, by Dave, uh, somebody, and I asked Dave “Where’d you get that? I wanna link to it!” and Dave said “I wrote it, go ahead and share it.” Dave doesn’t have a canonical URL, he says, but this gentleman clearly needs a blog.]
Useful and dangerous, that is.
“Hey, let me give you something that’ll help. A friend introduced it to me, and it’s made my life amazingly easy ever since,” he said. He handed her a USB stick.
Susan was understandably wary – the security team was always harping on not plugging in USB devices from untrusted sources, and Michael wasn’t exactly the type she would want to hang out with after work. But security didn’t have to close the books, either, so she reluctantly accepted it and plugged it into her workstation. Virus scans came up clean, and there was just one file on it:SQLite_Installer.msi.
She created her schemas and loaded the CSV files in. Everything was consistent. Numbers added up. The rush was incredible. For the first time since taking this job, high strung Susan felt a rush of euphoria. The books would close on time!
Susan wasn’t a daily user at first. Just a bit to help her get through the hard times. But a couple times a month turned into a couple times a week as the demands mounted. Worse, SQLite was starting to fray at the edges with its value-typing. The euphoria just wasn’t the same. Desperate, she turned to something stronger. MySQL fit the bill and the price was still right. Data types matched up again, and she was no longer stuck reconciling mismatched data. Oh, how good it felt to be on top of the world again.
And that was when the dealer entered into the scene. Forget your notion of the sketchy thug with a gauche display of jewelry. No, Ashley McIntyre was a well-articulated, friendly, and slightly diminutive lady in proper business attire. Ashley pointed out the dangers of how Susan was using MySQL: no backups, no way to recover the precious data she had so painstakingly entered in. One bump on her old Dell laptop, and the high she felt now would be nothing compared to the depression she would feel having lost all the data. Ashley got her set up on a full Oracle installation with consultants to get everything moved over.
This was pure dopamine. Not only was it consistent, it was fast. It took anything they threw at it. Yes, “they” – Susan had introduced others in her department to it. It wasn’t free anymore, but – she rationalized – you get what you pay for, right? And it easily fit within their budget.
Until, one day, Ashley returned – with a team of equally well dressed thugs from the license audit team. “You’re running this on a 32-core machine. That’s not what you’re paying for. You’re going to have to true-up.”
Susan panicked. She tried to explain how it was a virtualized server – “We’re only using two cores!” – but her pleas fell on deaf ears. The “diminutive” Ashley was unrelenting and threatening. Susan couldn’t let the books not close, so she had to find some way – any way – to keep the Oracle hits coming. She did what any addict did: she stole from other departments. In her mind, she rationalized her decision – “I’m just adding a few line entries into their accounts; we’re just ‘moving around’ the money.” But, of course, reality eventually caught up with her. Any legitimate accounting firm couldn’t risk having someone on their payroll with a less-than-stellar reputation. Officially, Susan was let go by “mutual agreement” – i.e., they paid her a bit of severance to keep her quiet – but the reality is that she was fired, unemployed, and – worse – unemployable.
Sadly, Susan was never able to get the help she desperately needed. She can now be found floating around between various DBA contractual agencies, ranting about denormalization and first-normal database schemas.
[This story brought to you by HARD – Humans Against Relational Databases – a 501(c)(3) non-profit dedicated to ending the cycle of addiction to database licenses.]
[Tim again; I’ll forward fan mail to Dave, and point you at his inevitable blog when he launches it.]