This article is more than 1 year old
Dear Stupid, I write with news I did not check the content of the [Name] field before sending this letter
This is what happens when database field names are changed without proper documentation
Who, Me? Ah, gentle readerfolk, welcome once again to Who, Me? in which Reg readers much like yourselves regale us weekly with tales of technical disasters of their own making narrowly averted – and sometimes not averted at all.
This week meet a reader we'll Regomize as "Stan" who once worked as the subscriptions and IT manager (an odd combination of job functions if ever there was one) for a business magazine. Stan's chief responsibility in this dual role was to manage the FileMaker database containing the names and addresses of the magazine's ~20,000 subscribers.
As it was a business magazine, that database featured substantial overlap between the recipients of the magazine and the sales department's advertising contacts. The latter usually are often sent free copies of magazines.
Both types of subscriber were lumped together in a single table that included an an enormous number of fields, many of them obscure.
Stan didn't design this dastardly DB. He tells us it "had been managed by a succession of people with almost no knowledge of IT, including the CFO". He also learned that nobody was really sure why some of those obscure fields had been used, or what they contained.
So the only fields Stan worried about were "name, street, postcode, town and ID."
- Sysadmin infected bank with 'alien virus' that sucked CPUs dry
- Mixing an invisible laser and a fire alarm made for a disastrous demo
- When we asked how you crashed the system we wanted an explanation not a demonstration
- Programming error created billion-dollar mistake that made the coder ... a hero?
Then as now, magazine publishers are always looking for ways to increase circulation and revenue. One day, the boss was looking over Stan's shoulder while he prepared a run of letters to subscribers, and noticed a field he hadn't spotted before: Name2.
"Oh, do we have a second contact at some of these places?" the publisher asked.
Stan looked and, indeed, some five percent of the Name2 fields did indeed contain data.
He did not, unfortunately, check what that data was. But before long the publisher had decided the 1,000 or so folk in the Name2 field all deserved their own magazines.
"Just duplicate all the rows which have a Name2 and add them to the table," Stan was told.
Stan did what he was told and set about printing up ~21,000 subscriber letters to accompany the next distribution of the magazine. He worked long into the night, printing letters, restocking the paper trays, taking the printed letters out and stacking them in boxes to be taken to the fulfilment house.
In the morning, a sales person wandered into the area, picked up a printed letter, and read out loud the following greeting at the top of a letter:
"Dear don't let him get drunk or he'll bore you to tears, I am delighted to enclose the latest copy of …".
Another was addressed to "Dear get her drunk and she'll do anything".
Stan checked the address on the latter letter. It was going to the sponsor of that very issue of that magazine.
At this point – and not before – Stan inspected the content of that Name2 field. Among some actual names, some odd but benign comments could be found – and 23 highly derogatory comments.
All of the 23 nasty "names" were associated with important advertisers. Suffice to say it would be a very very bad idea for the intended recipients of those letters to open their mail.
Staff were therefore recruited to go through the 21,000 printed letters, find the offensive ones, and destroy them.
When the CFO arrived, he was informed of what had (almost) happened. "Ah," he said, "a while back I renamed the Comment field to Name2 as everyone was just using it to put in the name of a second contact."
Have you ever inherited a badly built system and suffered unforeseen consequences as result? Tell us all about it in an email to Who, Me? and we'll share your pain with others. ®