The problem with helpdesk ticketing systems is there's rarely anywhere to file a ticket about them, but that didn't stop the users of WTF U's incident management system from raising hell when their new staff cellphone numbers caused this error:

Like all diligent university procurement departments, WTF U's had carefully considered their approved list of Highly Paid Consultants and then hired two of their own Computing Science majors to develop the Integrated Departmental Incident Outcome Tracker, rolled out with slight customizations to all university departments. Being in Greater London, the values entered in the phone number field had always been ten digits long and in the 020 local exchange — the leading zero being dropped when interpreting the number as an integer. The campus IT department, pursuing their mandate of never leaving anything bloody well alone, had recently rolled out mobile phones to their technicians so they could be harassed by professors whilst on vacation. UK mobile numbers begin with 07 followed by nine digits, and as soon as a tech tried to enter his new number in the tracker, he was confronted by the foregoing error.

The original developers of the incident tracker were long gone: one had graduated and become a Highly Paid Consultant, the other was now an adjunct professor at U of WTF away in Northumberland. Ebony was the new student hired to maintain the incident tracker, and she hadn't been on the job long when the screenshot arrived, attached to a nasty email from the IT department. After staring at the screenshot for a while and wishing for something stronger in her mug than coffee, she dove into the application.

The code behind the offending phone number field didn't disappoint. It featured a somewhat defensively-toned comment explaining the convenience of representing phone numbers as ten-digit integers, and she couldn't disagree: while all the traditional typographical conventions of phone numbers were rebuffed, the system was ready if people one day decided to prefix them with a minus sign. Nonetheless, the system as written wouldn't tolerate a mobile number, since even without the conventional whitespace entered by the screenshot's submitter, any mobile number in the UK would still exceed the 32-bit integer limit... even if she simply made the field unsigned int.

Ebony made the argument to her manager that phone numbers were essentially character and not numerical data, even though most of their contents were digits. Storing them in a numeric data type didn't make sense as you couldn't logically perform any numeric computations on them. While consistency was important, she argued, they should (carefully) validate entries in the application layer and store the phone numbers as character data. Her manager, a senior developer, was sympathetic but not hopeful: he explained that the university's procurement department technically owned internal systems like the tracker, and they were very conservative about changes.

"After all," he said, "in their minds, this system has worked rather well for years. Why change it now?"

"Because its users have changed!" Ebony said. "Mobile-number use is only going to increase. Would it suffice if I merely changed the existing field to a 64-bit integer? It's still stupid, but at least it would hold a mobile number."

"I hate to say it," her manager said, "but they're less likely to approve even that change than to argue that mobiles are a passing fad."

So it was that Ebony learned what "maintaining" the Integrated Departmental Incident Outcome Tracker really meant: she closed her IDE, opened her email client, and apologetically suggested that the technician enter the number for his desk line instead. Without spaces.

[Advertisement] BuildMaster allows you to create a self-service release management platform that allows different teams to manage their applications. Explore how!