I seem to have a thing for data issues lately. Here’s the latest….
My son, Christopher, drives a Dodge Ram 4×4 pick-up truck. He recently registered online with the local Dodge Truck owner’s club. The registration process went smoothly, however, when he logged into the site he received a “Welcome Christophe” message. Needless to say – he was $%&&ed! It happens to him all the time. He could just use “Chris” but nooooo! Sadly I have seen this problem too many times!
The source of the problem: the database, input form, and output screen are out-of-sync. My guess is that the field size was never defined which allowed the user to enter a First Name with no constraint on field size (unlimited length). The database field was probably set to 10 characters and truncates anything greater than 10 (with no error message). The UI then displays whatever is in the database (bad data). There was no input validation (yes, I tested it). So when the name is displayed – only the first 10 characters are shown. He was born in Germany and my wife wanted to name him the German form “Christoph”. I objected, and now I’m paying for it.
But this drives home the need to include Test/QA during the requirements and/or design process. Would I have caught this in requirements review? I would. Would you?
This is an easily avoidable problem. First we could probably increase the field size in the database. But is that enough? Not to my thinking. If we are going to use the field in processing downstream (like displaying it). I’m probably going to ask for a limitation in the data entry form in the UI, and validation with appropriate error handling. And make sure they are in sync! If the database only allows 10 characters, I’m going to look for a 10 character limitation and error handling in the UI. BTW – I’m also going to object to the 10 character field length.
If I can catch this in a requirements review or a code review it is a relatively easy and cheap fix. If you wait until testing it’s gonna cost ya!