Saturday, July 09, 2011

Too Cool no really it is

     Most of my posts are very code-specific.  This one isn't.  This one is more on development philosophy.

     I ordered a pizza from Papa Johns online.  Being the geek I am, I have an established account in which I have specified my address, phone number, and which store is my local store.  I design the perfect pizza, and click order, and WAM.  The too-cool technology of IP address geo-location kicks in and bites my butt.

     It seems that in an effort to better serve their customers, Papa Johns looked at the physical location of my IP address and.determined the city from which  I was accessing the web page  Problem is that my ISP is out of Hurricane, about twenty minutes away from here on the Interstate, and that is where Papa Johns thought I was located.

They HAD my address on file.  THEY KNEW WHAT STORE I ALWAYS ORDER FROM.  But they were" helpful" and placed the order with the store a half-an-hour away, instead the store which is located less than two minutes from my house.

I had to call the distant store and cancel the order.  While the pizzas where in the oven, The manager was very nice, the order was canceled and everyone is happy.


I'll give you another example.  I automated order entry for certain preprinted applications which print with the birth certificate.  The application has an ID number which links it to our master birth file. 

The automation saves staff time and makes us more efficient.  My probelm was that the address mom gave on the birth certificate may or may not be the one included on the application.  She may have moved since the birth occurred and our staff wasn't double checking the address.  A significant number of orders were returned to us as undelivered.  This was bad customer service and consumed additional staff time to corret the mistakes.

One last example.  On my phone, I have a feature that auto-corrects words that are misspelled when typing a text message with the on-screen keyboard.  More than one of my Facebook updates didn't make much sense because the software 'helped' me when it didn't need to.
 
Microsoft is bad for this type of problem.  Every try to put a asterisk in a Microsoft Word document?  Auto-changes it to a bullet.


These stories illiterate a design principle that programmers should consider. Sometimes, you don't know what you think you know.  Automated data capture/data entry can save time but there are gotcha's you have to keep in mind.  Just remember, just because it's possible to automate something it doesn't mean that it is a wise idea to do so.


  • The data you think you know, you may not know.  It may be stale, or just wrong.
  • .The data may be correct, but you're measuring the wrong thing.  The location of my IP was correct, but the location was the location of my ISP, not my home.
  • The time you save by automation may be consumed quickly by the mistakes such automation breeds.


Sometimes in our rush to make software easier to use, we actually make it less useful by making the user have to fight our programs.