The Escape from Developer Hell

Comments 0

Share to social media

“C’mon Phil! You can’t blame developers all the time! You must have encountered a really bad DBA at least once in your working life!”

The developer flushed angrily as I rambled on, recounting some of the hilarious mistakes that developers make when tackling databases. Somehow, my SQL horror stories didn’t strike him as amusing.

“Well, strangely enough, yes. Once, the boot was on the other foot, entirely. There was a time when I directly experienced the sort of hell that Dante would have dreamed up for the sinful soul of the dead developer”.

I leant back in my chair, and put down the soothing cup of Darjeeling tea.

“But we escaped relatively unscathed in the end….”

The scene goes watery, and there is weird music…..

It was during one of those sporadic downturns in the industry that I was ejected from a rather cozy job with an international Financial Services Provider. I’d been a Technical Architect specializing in documenting and maintaining the corporate data model. A CV that mistakenly lists this sort of esoteric skill is anathema: the phone never rang, and my CV hung limply on all the jobsites. Eventually, I did what everyone does in these circumstances and reverted to being a VB developer. I’d used the language now and again, though I’d never previously admitted to it. It was like confessing to unnatural practices.

Soon, I was sitting at a desk in a vast office-block in London, heading up a newly formed Dev Team of six developers and ten testers. We were tasked with writing a Database-driven ECommerce application.

As there was not a line of code written, the testers busied themselves scanning social networking sites on the internet and trying to look important. I looked around for the Development DBA. There wasn’t one. The Project manager told me in hushed tones that they had just acquired an expert in SQL Server. Apparently, he used to be a big cheese in Microsoft but was now an independent consultant; one of their top people, I was told. I felt it prudent to keep quiet about my many years of Oracle and SQL Server experience in view of the fact I’d majored more on my VB skills in my job-application. No lies, you understand; just balderdash.

By the time Benjie finally arrived, the team had worked itself into a fever-pitch of anticipation. A real Microsoft expert! Wow! I phoned a few of my Microsoft contacts but they couldn’t place his name. Benjie, a most affable and charming Nigerian, was introduced to the team by the deferential project manager. After a month of work, he produced a ER diagram of the database for the application. I was slightly apprehensive, since it looked wildly complicated. ‘What,’ I remember asking ‘is an EventHospitalityGiftItem table for?’ I gave the diagram a bleak, but thorough, inspection. It was scarily awful. I was full of forebodings.

A couple of weeks later, he had created the database and provided a stored procedure-based Interface. I’m all in favor of stored procedures, except that in this case the spCustomer procedure had 92 parameters, all of which, he said, had to be supplied on every call. The devs hadn’t been consulted, and they started to give vent to their discontent about the endless problems this interface was going to cause them.

Unfortunately, the project manager was still hypnotized by the aura of Microsoft magic surrounding Benjie. Under this zealous protection, Benjie basked in the glory of his facile dictatorship, and the wacky interface was imposed on us, despite all our protests.

And so began a period of Developer Hell. For a month, we suffered The Curse of The incompetent DBA. Nothing in the database worked reliably, so the Developers became very adept at their error handling routines. The design was so mad that even the simplest data sets were tedious to extract. All our requests for extensions to the interface were refused on grounds that it wouldn’t scale, offended against the relational model, was against the corporate data model, was a security risk, would overload the server, or was unnecessary. We had, of necessity, to add business logic on the client that should have been done on the server. The database became a no-go area. It was worse for me, as I could see simple solutions for problems that kept us programming into the evenings, and ,besides, I had used all of Benjie’s excuses myself in the past. There is nothing worse than having to program to a cockeyed database schema.

Eventually, the team got so restless that we decided that something radical had to be done to save the situation. In desperation, I phoned a friend who worked for Microsoft in Ireland, at their support center.

“Keith, I’m working on an ECommerce project with a guy here that used to be with Microsoft. His name’s Benjie. Do you know anything about him?”

“Benjie!” trilled Keith, “Give him my love. What a nice guy! We took him on as part of our first response team at the call-centre, as he had such a good phone manner. The trouble was he knew almost nothing about the technology, so we had to let him go in the end.”

“Well, he’s turned up here as our database expert” I told him, dejectedly.

There was a strange wheezing sound from the other end of the phone.

“Database expert you say? Gimme a break! My pet terrier ‘Buster’ knows more about databases than Benjie!!” Keith hooted with laughter. “He’s a VB programmer by trade, I believe: well that’s what he told us. He’s quite a character though. I remember when he offered to show us his Mapouka Dance at our Christmas party. Epic: we still talk about it to this day.’

I immediately set off in search of Benjie. When I found him, I could see immediately that he was already in a state of considerable panic. It seems that, through canteen-gossip, perhaps, the Production DBA team had got wind of the news that a database-maniac was on the loose. The Production Manager and senior DBA had just marched into our project manager’s office and demanded a formal review of Benjie’s work.

I added to his misery by telling him that I’d rumbled his CV. His eyes swiveled in guilty remorse. He looked so dejected and morose that I felt a surge of pity for the chap. Anyway, my own CV as a VB developer wasn’t exactly whiter than white. In fact, there was a strange symmetry here. Here was a VB programmer masquerading as a DBA and there was I, a DBA, pretending to be a VB programmer. Damn, there must be some way out of this. There was a quiet pause as I tried to think of something and Benjie blinked sadly and stared miserably out of the window. Suddenly the solution came to me. ‘Benjie,’ I started, ‘I have a solution, but it will hurt; you, not I…’

The following week, the Production Manages arrived, with a team of DBAs in tow, to perform the review. He gave Benjie the look that a huntsman gives to a cornered fox. However, in contrast to the mayhem and confusion that had defined the previous weeks, today all was sweetness and light in the office. The developers all looked relaxed, contented, and busy. Had any bird been able to do more than cough asthmatically in that part of London, you’d have heard sweet birdsong and Elysian harmony.

The server was given a thorough review. No stone was left unturned. The data model, documentation, build scripts and interface specification were all scrutinized in great detail…and pronounced it to be near-perfect! The DBA team left, frowning in puzzlement.

I’d completely re-written the database over the weekend, with the help of a couple of the Developers who knew the ropes.

Benjie had happily agreed to my terms. This included the condition that he must reveal to we developers the secrets of the the quivering Mapouka Dance. Also, from now on, he was to be just a figurehead and wasn’t allowed to touch the database without my approval. However, he had squeaked with delight when I showed him how to rewrite his 92-parameter stored procedure. He seemed amazed that one could provide default values to stored procedures in SQL Server, and that one could also detect what parameters had been supplied.

From that point on, I and an accomplice administered the database and did all the database dev work, while Benjie happily settled into his new role.

We kept the secret without problems. Any seasoned DBA knows how to look busy without really doing anything, but I was able to give Benjie a few good tips such as …

  • If you are seen to be studying an ER diagram, nobody thinks you are idle
  • Always have animated performance graphs on your screen, displaying as many criteria as possible.
  • Have several open DBA reference books on your desk.
  • Never automate any of the routine tasks such as scripting out, doing backups, testing restores, BCPing out tables, running and monitoring data feeds

The project proceeded harmoniously, and met its dates. As the recession eased, I was able to crawl out from my agreeable shelter and get back to my primary career. Benje left at the same time, unsurprisingly.

That should be the end of the story but, to this day, I still keep hearing stories about Benjie’s subsequent career. His CV positively glowed after his success at our project. He is such an engaging character that he continues to carve out a career for himself around London. Last I heard, he was working as a DBA for a media company.

Long after his IT contributions are forgotten, I will still cherish his descriptions of the quivering Mapouka Dance, and of the musical language of the Yoruba.

Load comments

About the author

Phil Factor

See Profile

Phil Factor (real name withheld to protect the guilty), aka Database Mole, has 40 years of experience with database-intensive applications. Despite having once been shouted at by a furious Bill Gates at an exhibition in the early 1980s, he has remained resolutely anonymous throughout his career. See also :

Phil Factor's contributions