Ya know… Sometimes when you put People and Technology together things just get messy

KeyboardEarlier this week I found I wasn’t able to transfer cash to my Apple Pay card. This is a problem because I actually use Apple Pay for a lot of things. 

The Apple Pay card in my phone was telling me that the transaction was being declined by my bank. The Bank said it was a problem at Apple, Apple said it was a problem at the bank. And I, the consumer was left in the middle.

I call the bank, they tell me that Apple is presenting them with the wrong address. I ask the bank what address they have on file. They read me back the correct address. Then tell me that they can’t see the address apple is sending to them and direct me to Apple.

I spend an hour on the phone with Apple, who was very helpful as we walked through all the addresses on all my devices and guess what? They were all correct.

I call the bank back the next day and while I’m trying to resolve the issue I hear something, I’m not even sure what, from the Customer Service Representative at the bank Whatever it was I  asked her to read me the address character by character.

BINGO!

PunctuationYou see I’d changed the address to my P.O. Box. but the banks system had stripped out the “.” periods. This resulted in an incorrect address being presented to the bank. Since everyone else was preserving and sending the “.” periods, exactly as I’d entered them.

To a computer;

P.O. and PO are completely different things. To give you a simple example of why… P.O. is four characters and PO is only two. Most programmers or Software QA people know this, and  even program / test that variations will pass through verification.

I tell the Customer service rep at the bank to put the periods back in the address and everything will be fine… She can’t.

What?

The banks computer system strips them out. So now I have to strip them out of any and all addresses on file with ALL vendors who may be using that debit card for payments. Yep instead of correcting the source of the problem, I, the customer, now have to contact all the vendors who have my address correctly entered in their systems and change them.

I tell the Customer service rep that “.” periods are considered part of the proper address and that they shouldn’t be stripped out. She implies in a way that I’ve encountered more in San Diego than anywhere else that I’m wrong. “We use the preferred Post Office method…”

Really? I don’t recall getting the memo.

The Customer Service Rep reiterates, “Its for your protection.” Then proceeds to tell me that it’s to prevent someone from improperly using my card to order stuff… I stopped listening.

My response was that the only person this situation was preventing from using the card was the card holder and that the bank shouldn’t be making alterations to addresses because this is an easily predictable, and inconvenient outcome. I think asked her why then, was everything working just fine for the past month? Why was it that the system apparently arbitrarily broke in much the same way as it had a month ago?

For those questions she had a ready reply, “It hadn’t ever worked.” 

So now she’s telling me that what I witnessed with my own eyes was incorrect. 

OH HELL NO!

Knowing I was being a bastard, I made her review a month of transaction data and I fucking forced her to admit that in fact there had been transactions approved with the addresses having “P.O. Box”.

I’m an arrogant bastard, I’m pretty sure I’m right, when I open my mouth. That being said,  there is always the possibility that I missed something or that I am flat out wrong. I accept that. But if I make a blanket statement … You can bet your bottom dollar, I’m looking right at the facts to support that statement.

Sadly, I can only assume that things are going to get worse. I recognize that I have to adapt to the times, I have to be flexible. But there are some things that you just don’t do. You always have to maintain backward compatibility.

Especially when you’re dealing with computer systems that behave by default in an absolute way.

The company I was working for had this same problem with telephone numbers in the software we were forced to use. (555) 555-5555 is not the same as 555-555-5555, 555.555.5555, or 5555555555 to a computer. But to a human being they’re all equal, it’s about readability and stylistic preferences.

At the company, because of the way the data was actually stored in the database if you were looking up an account by phone number you had to enter all the variations.

The proper way to do these kinds of things is to store only the relevant data and apply a mask for presentation. On the input side you toss any characters that are not numeric. This allows extraneous spaces to be ignored as well, and results in the entry of a phone number always returning a result. This way you don’t end up with 10 duplicate accounts because someone couldn’t find the Customer’s original account.

The same is true of “.” periods in address fields, or the “#” or extra spaces.

Rural Route # 56 and R.R. 56, or Route #56 all mean the same thing to humans. But a computer should be told to remove the “.” and the “#” so that the machine is evaluating only Rural Route 56 and RR 56, or Route 56. Once again you apply a presentation mask but it’s about making the data consistent and retrievable. Rural Routes are more difficult because the range of variations is large. It’s programmable, but requires experienced programmers.

I know I’ve digressed. This is the kind of stuff I’ve tested for again and again. I’ve had this discussion with newbie programmers more often than I’ve had sex. It’s tougher to get the point across to programmers from other countries, especially if their home language doesn’t have a lot of punctuation symbols.

This issue is not limited to addresses and phone numbers. It can apply to passwords too.

You know when a computer tells you to use special characters like the !,#, or $ to make your password more secure? If the programmers weren’t paying attention, you can change your password to contain one of those characters and then have a password that you cannot use.

It takes some code to process those characters correctly in a password input field. They have to be passed literally from string input into a chunk of code that manipulates the character data into a token. The company I worked for, actually told you on the website to use one of these characters in your password. But the mobile application’s password input routine wouldn’t accept the character. So you could login just fine on the website but you couldn’t login from the mobile. To make things more frustrating for the customer, the application would say “Incorrect user name or password”

They still haven’t fixed that. Now that they have a bunch of foreign newbies in technical support, I imagine there’s going to be a lot of seriously pissed off people very soon.

That’s not my problem anymore and more power to the company. I reported it, software engineering ignored me and well you get what you pay for.

Cheap, arrogant, inexperienced American or  foreign programmers, tend to make these kinds of mistakes. Once they get a few miles on ‘em and have actual human Software Testers telling them what’s not working they tend to wise up.

I can tell you which kind of programmers are working at my soon to be former bank. Yep, I’ve had odd little problems for the past 4 months and those problems are becoming more of a nuisance. This bank is a credit union in San Diego and since I’m in all likelihood not going to be living in San Diego, well the solution is obvious.

I share this with you gentle reader, because I suspect it’s only going to become more of a problem. 

Image5As we isolate people from processes and turn more over to automation we will be placing ourselves at the mercy of typos. 

Imagine having made payments to a vendor for years, then suddenly the vendor isn’t getting paid. When you try to figure out what the hell has gone wrong, you have to deal with someone that doesn’t understand the problem or doesn’t’ have the power to make a necessary change to resolve the problem.

That’s the future we’re heading toward. 

It won’t be an artificial intelligence like SkyNet that subjugates us, It will be dumb computer programs that nobody can change or control.

I’d suggest you start laying in a supply of pretty colored trading beads.

Just a thought… I could be wrong.