This bank is upgrading its ACH capabilities -- that's the way direct deposits get made, among other things -- and it's turning out to be far more complicated than expected, says a pilot fish on the project.
"In the past, we were using an aggregator who accepted the transactions from us in a simple form," fish says. "With these changes, we would be going directly to the Federal Reserve banks.
"But the Fed's 96-byte, fixed-record-length file format was obviously written for punched cards. And there were batch and file header and trailer records, sums of credits and debits individually, check digits on account numbers, and checksums on bank routing numbers. Some actions took multiple records, some had optional additional records."
Another team is working on software to generate those files. Fish's assignment is to write a validation program to make sure the generated files will match the ridiculously complicated format, since the tools that have been acquired to do that aren't up to the task.
By the time he's done, fish's validator is more than 1,000 lines in the AWK scripting language. The validator is also flagging a lot of the records in the files being generated by the other team. Something must be wrong with my code, he figures.
But after a painstaking comparison of the flagged records to the official ACH standards, it turns out fish's code is correct. He reports that fact to the file team. They don't believe it.
That results in a meeting in which fish walks the file team through the format from the official ACH standard. The file team modifies its code. Fish's validator flags new errors -- and the cycle repeats numerous times until testing is complete.
Eventually the system is finished, the code goes live, and fish moves on to another job. Then one day he gets a call from an IT employee at the bank.
"She was my co-worker at an even earlier employer, and was now working at the bank," says fish. "It turned out that another developer added features to the file-creation code, generated a test file, ran it through my validator and got an error alert.
"Believing the alert to be wrong, he asked my friend to look at my code, since she knew AWK.
"Long story short, it turns out my validator was still correct -- the error was in the new code. To my friend, it appeared that the developer just didn't understand the error message."
Sharky wants your true tale of IT life in a nice, simple format -- just email it to me at sharky@computerworld.com. You'll get a stylish Shark shirt if I use it. Comment on today's tale at Sharky's Google+ community, and read thousands of great old tales in the Sharkives.
Get your daily dose of out-takes from the IT Theater of the Absurd delivered directly to your Inbox. Subscribe now to the Daily Shark Newsletter.