Wednesday, March 20, 2013

Improving the World One Bug at a Time


Like many of my colleagues I appreciate humor and jokes about software testing and testers. I got a chuckle out of reading the Software Testing Humor – Jokes posted by TestingGeek and Bumper Stickers for Testers by Harry Robinson.

My favorite bumper sticker is "A good tester has the heart of a developer...in a jar on the desk". But I think that I probably get motivated by this one -"Improving the world one bug at a time". It makes it even better when you find a bug in in the wild and help with a solution.

An anecdotal story happened to me a few months ago. I had to help my mother buy a kitchen appliance with a credit card. One would think that it's easy. It usually is unless your parent lives in Siberia and is terrified of using that "plastic thing" issued by a foreign financial institution. There was no other sensible option however so we agreed that she would visit a few local stores where a card was accepted and the price was reasonable, and then would let me know when and where the purchase would be made.  Once she found a store I alerted my bank about the upcoming transaction to hopefully avoid any surprises and alleviate stress for my mom. I called her on her cell phone before she walked into the store to calm her down and told her to call me right away if anything comes up.

To my bewilderment I got a call about 15-20 minutes later with my mother sobbing on the phone and a sales clerk and the store manager trying to calm her down. The credit card transaction was declined. There was no response code to explain why. This didn’t make sense. We tried to run it again while I was on speaker but it failed. My mother was inconsolable and needless to say I felt mortified. What could have happened? The store manager was trying to be helpful and called the US bank’s Russian subsidiary representative in Moscow. They talked, tried to process the transaction again and got the same results. I was actually amazed how nice and professional both ladies were at the store.  I don’t want to sound facetious but I don’t remember customer service to have been any good in my old country. I had been cursed out by sales clerks on many occasions back in the day.


My mother seemed to have been a little enthused by all the help she was getting. I on the other hand was going crazy over the puzzle of why a valid credit card issued by one of the largest banks in the US/world was declined. While my mother, the local store manager and the Moscow subsidiary representative were on the phone I got in touch with my credit card company. A representative confirmed that there was no problem with the credit card but also said that there was no activity in the last hour. We made at least 3 attempts and were worried that the account was locked but apparently there was no trace of any transaction. The system was working and there were no error warnings or other system failure messages. Then the Moscow subsidiary representative called their 24-hour helpdesk team for assistance.

This was getting more and more interesting for me. I had the end users (my mom and I – me more for moral support than anything else) on one end; the appliance store sales team, the Moscow and US bank reps, and the Russian subsidiary’s helpdesk trying to process a transaction on the other. And even though everything checked out and there were no system problems the transaction was still not going through. We kept getting the same annoying message – "Your transaction was declined" with no response code. WTF?

The happiest person in the group was the US bank rep. He was bubbly and excited about being able to assist a Russian customer in Siberia and was planning to share the story with his friends and family. I just wanted for this story to have a happy ending and for my mother to not have a heart failure after what I put her through. And then the US bank rep said ‘I would have never thought that our bank’s card would be used in Siberia!’ And at that moment I had a theory of what the issue was. Yes, Visa is accepted by many merchants in Russia but what if the name of the bank - which is probably required - is missing in the system database?

I asked the helpdesk representative to check for it in the system and he couldn't find it. He then walked over to the database administrator on duty; they checked against some documents and added the US bank name to the database. Someone apparently forgot to add it. After that the transaction went through without a glitch. I heard the sales folks clapping on the other end of the phone. My mother received a free appliance home delivery and the US bank representative thanked me for the unique opportunity to serve a Siberian customer. I was thrilled that I was able to figure out a puzzle as I knew nothing about the financial system in Russia and was frantically Googling for information and figuring it out as we went along. I thought about the the bank's other customers whose transactions were also declined and as a result caused them embarrassment and agony as well as potential financial losses for the bank. And even though this database data issue was not exactly a software bug according to its definition, I felt that I hopefully helped to improve things in the world.

4 comments:

  1. Wow, that is an awesome story - being able to work out what the problem might be and finding you were correct. How did you come up with that theory though - have you past experience of such problems/systems ?

    ReplyDelete
    Replies
    1. Thanks, Phil. Other than working as a database developer early on in my career I did not have any experience of working with such problems or systems. What threw me for a loop was that there was:
      - No response code or explanation of why it was declined (e.g., insufficient funds, invalid security code (CVV), etc.)
      - No system/server /program/log errors
      - No trace of any activity in the parent bank system
      And Visa was/is accepted in the country and in that particular store. So my tester intuition told me that this could be a data related issue. I grew up in Russia/Siberia and visit it on occasion. I remembered that I saw people use either locally issued Visa cards or the ones by European banks. So when I heard a bank rep say ‘I would have never thought that our bank’s card would be used in Siberia!’ I just thought that what if they forgot to add a US bank name? =)

      Delete
  2. ‘I would have never thought that our bank’s card would be used in Siberia!’ Ah, that bad assumptions that are made every day.

    Glad you were able to figure out the root cause of this issue. I'm sure there are many who have benefited from your investigation that day!

    ReplyDelete
    Replies
    1. Thanks, Peter. I am sure that the CEO of JPMorgan Chase wouldn't have appreciated the comment but I did. ;) I was really worried that my mother would fall apart if we hadn't found a solution.

      Delete