
You've heard the horror stories: X-Ray machines that deal out lethal doses of radiation or large medical machines with automated movement that start lowering on a patient and don't stop. Luckily this story isn't one of those.
But it does involve poor design which threw $19,000 in tickets to a driver Alabama with a license plate reading "XXXXXX":
"Racer X's" vanity plate just does not compute in city computers — and it's helped him rack up about $19,000 in tickets in Birmingham, Ala.
Scottie Roberson bought a vanity plate with seven X's to pay homage to his racer nickname. But that causes a bit of a snafu when parking patrols put the plate into the system. Officials usually put seven X's in place of the number for cars without license plates.
Sure it's not as bad as the German driver who racked up 15 violations in 11 minutes, but at this point this guy is getting billed for as many as 10 tickets a day.
The real question here is "who designed this system?" Besides the fact that this system doesn't use null values appropriately to denote missing information is the fact that someone assumed that 7 X's would never be used. Where was this design requirement? The fact is simple: whoever made that call made a faulty assumption that was not duplicated system-wide - for instance in the plate creation system.
But the real issue here is not bad programming. It is lack of desire for good programming. There is a huge difference between someone creating a "while not EOF" loop without a "move next" (been there, done that*) and someone doing this. It shows the developer (or at least the spec designer) doesn't care.
The first question that should be asked here is "do we know that 'XXXXXXX' will never be a valid value?" If that question isn't asked, I have to believe the person is not a developer by desire, but one because it pays the bills. Because any true developer asks these questions and strives to make great code even though bugs come with the territory.
And the best part: the state will have to pay for code design, coding, testing, verification against other systems, etc. just to stop the inconvenience of one man. It's just amazing what one developer who just wants to make a buck so he can get home and watch reruns of M*A*S*H can do for the bottom line.
*At least this one is always found in debug mode and very quickly.







