Wise man or Wise guy? You Decide

Just another WordPress.com weblog

Archive for the ‘Rants’ Category

Types Matter!

Posted by sqlwiseguy on August 24, 2009

Louis Davidson (@DrSql) had an excellent series on his blog on the Pillars of Database Design and the one of the key elements of his first pillar A Cohesive Design is to for data types to make sense.  I couldn’t agree more.  I have seen more problems caused by using a character type to hold dates or numbers.  The developers, in each case I’m sure, decided that they would verify the type in the application, and I would bet they did.  What they didn’t do, was consider the case where a user get access via MS Access or some other tool and now can enter/modify data outside the application.  This is how you end up with Nobember 17 or February 30 as a date, 1O (yes that’s an letter o) or A17 as a number.  Now when it comes time to query those values or use them in a WHERE or JOIN, what are you going to do?  You will get conversion errors if you try to convert them to the proper data type.  Here’s a recent thread on SQLServerCentral where you can see many of the problems using a “generic” data type causes.
Look if the column is supposed to store dates use the appropriate DATE data type, most RDBMS products have a few, and if it is supposed to store numeric data use the proper NUMERIC data type.  So if you are storing a person’s age you don’t need BIGINT or DECIMAL, SMALLINT will work fine.  This is one of the things a database is designed to help with, verification that data is of the correct type, don’t keep the database engine from doing what it is designed to do!
Thanks for your suppport!

Posted in Best Practice, Development, Rants, SQL Server, SqlServerCentral | Leave a Comment »

Software Developers, Remember that People Need to Use Your Software

Posted by sqlwiseguy on May 7, 2009

As a hybrid DBA\Developer I had the message of the title reinforced through a negative experience with a web site this past week.  Please bear with me as I tell a fairly long story/rant to illustrate my point.

The web site I had an issue with is www.sunpass.com.  SunPass is Florida’s prepaid toll system and they provide a web site to manage your account.  There are 2 devices you can purchase, a portable transponder and a SunPass Mini Sticker transponder which applies to your windshield and is only good for 1 vehicle.  My wife and I purchased a SunPass Mini and I went to the web site and activated it and I set up my account so that it would auto-replenish using one of my credit cards when the balance dipped below a certain threshold. 

Well, last week we traded in the vehicle that had the Mini in it, so we bought a new Mini for our new vehicle.  This is when the trouble started.  I went to the SunPass web site to activate the new Mini.  I logged into my account and nowhere on my account home page was there a link to activate a new transponder or remove the old transponder.  I thought, “Well, the package says I can activate it online and I activated the first one online so I know it has to be here somewhere.”  So I double–checked and nope, not there.  I went back to the SunPass home page and, lo and behold, the “Existing Customers activate a New Transponder” link was on that page instead of my account home page.  Alright that’s not the most intuitive interface, but I only spent about 10 minutes trying to find it, but at least I found it.  So I clicked on the link and here is what happened:

SunPassError Wait a minute, I don’t have a commercial account, what’s going on?  So I lookup the customer agreement and here is the definition of a commercial account:

5.2 Commercial Accounts: Primarily for companies or businesses with corporate owned, leased or rented vehicles and/or trailers. A current Federal Employer Identification Number (FEIN) must be provided to open an account of this type. FEIN information must be kept current and may be requested by a SunPass® representative at any time. The minimum opening balance for a Commercial Account is dependent on the User’s estimated monthly usage, but must be a minimum of $50.00. User shall be notified of any changes to the required replenishment amount on their monthly Account Summary Statement. For Commercial accounts to qualify for tax exempt status, User must provide a valid tax exemption certificate at the time of account activation.

Nope, I didn’t provide any of this information when I setup my account so, why am I getting this message?  I found the contact us link and sent them a message asking why I was getting the message.  As expected I got a non-response response:

Please call customer service

The next day I got a letter from SunPass telling me that I had a negative balance and I needed to call them to pay up.  Now I’m not only confused, but I’m a getting a bit ticked off, I mean, I did setup my account to auto-replenish, why isn’t it happening?  Back to the web site to make sure auto-replenish is setup, yup, it is.  So I call customer service to deal with the issues.   Here are the answers I got:

  1. Can’t add transponder because I have a commercial account.
      The reality is that when they added the new Mini’s they could not treat them like regular transponders, why I don’t know, so if you open your account with a Mini your account is treated like a commercial account.  So you have to call to activate any new Mini’s on your account.  I asked “How was I supposed to know that?” and the answer is you have to call.  So I suggested that they fix the message to tell me the REAL reason the web site doesn’t do what asked.
  2. Can’t delete the old transponder.
      Again, because it is a Mini it is treated differently and they assume you will disable it by taking it off the windshield so you don’t need to ever disable the transponder.  I asked, “How was I supposed to know that?” and the answer is you have to call.
  3. Auto-replenish isn’t working.
      Apparently the system had a “glitch”, so while the web site is showing that auto-replenish is setup it really never was.  I asked, “How was I supposed to know that?” and the answer is you have to call.

So now to the point of the post. What could the developers/designers done differently to provide a better user experience.

  1. Put account related activities on the account home page.  So an add transponder link on my account home page in addition to the main home page would have made life much simpler and intuitive.
  2. Provide a message that conveys the real reason functionality is not available.  Tell me that you cannot add a Mini to an existing account, not that I have a Commercial account.  In my opinion, the real answer is to not provide the functionality at all.  If account type = Commercial do not show the Add transponder link.
  3. Catch errors and tell the user that their efforts were unsuccessful.  If something goes wrong in setting up auto-replenishment tell me!  If it happens in a batch at the end of the day, send me an email telling me it failed.  Don’t wait to send me a letter when I’m already in the hole.

Please keep the end user in mind when designing and developing your applications.  Don’t frustrate your customers, whether internal or external, with poor design.

Posted in Expectations, Lessons, Problems, Programming, Rants, Standards, Suggestions, Technology | 1 Comment »

Citibank Online Payment Rant

Posted by sqlwiseguy on February 13, 2009

While we were in New Hampshire my wife used my AT&T Universal Mastercard (provided by Citibank) to make a purchase, but she didn’t mean to use this card. Now the only reason we have this card is because we get 30 free calling card minutes a month, and we have not used it for anything but the free calling card minutes in at least 3 years.

My payment is due so I went on-line and logged into my account (remember this for later) to make my payment. Well, it turns out I don’t have a bank account setup to make the payment from. Hey, no big deal, right? Just get the routing and account numbers out of the check book and away we go! NOT! After I entered the routing and account numbers I had to make it past the verification step which consists of entering the 3 digit code on the back of the card and entering the security word you chose when you setup the account. Remember I have already logged into the account and am trying to set up payment account, I’m not trying to get money, I’m trying to pay THEM! Of course I have no idea what my security word is, so I click on the “need help remembering your security word” link expecting to get a question like, “What’s your mother’s maiden name?”. Of course this is not what happens at all, nope, just a list of “You may have chosen your mother’s maiden name, the last 4 digits of your or a friend’s phone number, etc…”. Great! This is like Super Genius Jeapordy. Not only do you need to come up with the question, but you need to come up with the question AND the answer. Now I am ready to throw everything out the window. Why do they need to verify who I am when I am ALREADY LOGGED IN? Shouldn’t they be asking this when I log in? I just want to set up an account to send them money, not take money. Hey if someone hacks into my on-line credit card account and wants to pay the balance, I’m all for it! As a matter of fact I wish they would choose to do it to the credit card I do use. Fortunately I made this attempt 5 days before the payment is due, so I may actually get it done before the payment is late.

Don’t get me wrong, I’m all for keeping my credit card data secure, but that should be done by not letting me log in, not AFTER I’m logged in.

Thanks for reading, I had to get this out of my system.

Posted in Rants, Security | 1 Comment »

Forum Etiquette Rant

Posted by sqlwiseguy on January 14, 2009

I was going to post about some tools that I use for various tasks, but I was perturbed by a post on this SSC thread. The poster basically said,

“I found this as I worked on a problem and reading it is a waste of my time, you guys don’t know what you are talking about”

Now maybe I shouldn’t be irritated by this, but, as a frequent contributor, it bothers me when someone doesn’t offer anything constructive to the thread and basically calls me an idiot at the same time.

Hey, I realize I don’t know it all, and when someone posts a better solution than I did I think it’s great and I use it myself.

If you find yourself on a forum and don’t find it helpful, don’t criticize without posting a better solution. Remember most of the contributors are doing it because they want to help, not because they are getting paid.

Remember what your mother said,

“If you can’t say something nice, don’t say anything at all”

Posted in Etiquette, Forums, Rants, SqlServerCentral | 1 Comment »