by Jason Lutz
You’ve heard the famous breakup line, “it’s not you, it’s me.” Of course, what it really means is, “this is all your fault, not mine.” It’s a way of taking all the blame verbally but secretly knowing you don’t take any blame at all. Well, oftentimes programmers like to use this bit with users. Recently we had this situation pop up with our library eCommerce website.
We transitioned our website from Websphere Commerce to Magento Commerce a few weeks ago, and in this transition we were able to maintain past order history through a backend service call to Mr. Freeze. (For more on Mr. Freeze … I’m hoping Rob Tandy writes a post about it.) Everything seemed to run really smoothly, as all the developers were seeing order history … it was a beautify thing. Then we went live, and we’d get scant reports of customers not being able to see order history. Not having a good way of impersonating a user, we checked the backend system to find their order history. It was accurate, so surely the customer was just clicking the wrong link or not seeing something they should be, right? The short answer is no.
Users were using the website properly and really not seeing their order history. We eventually found this out by logging in as one of the customers and seeing, sure enough, that they had no order history. I dug into the code and noticed the problem. We had a little bug that said if there is not at least one Magento order in the order history, then don’t show any order history from Mr. Freeze either. The order history integration was completed after we had all placed at least one order in Magento, so the bug was never brought to the forefront. A quick code change later, and like magic the customer could now see all of their order history.
What’s the lesson learned here? Well, there are probably quite a few. One is that testing needs to be comprehensive so it includes different variants of users, most importantly a brand new one to the system and one that has done some ordering. The other most important thing learned is to not assume the user is doing something wrong. If your users are reporting problems, either your system isn’t real clear or there is a bug.
To quote George Costanza, “You’re giving me the “it’s not you, it’s me” routine? I invented “it’s not you, it’s me”. Nobody tells me it’s them not me, if it’s anybody … it’s me.” Sometimes you need to assume it actually is you because with most applications and websites, edge cases pop up all the time. Assume it is you until you prove it isn’t.