Tuesday, August 01, 2006


When Your Code Doesn't Work, Make It the End-User's Problem

I had occasion to use the American Heart Association's Web site to make donation in the name of a former colleague who had passed away. I was somewhat taken aback when I arrived at the donation page and saw the following:

The instructions for including a personal message states "Do not use special characters such as #, $, or & as they will harm the printing of your note." Is it that the American Heart Association has been the recipient of a bunch of donated, dysfunctional printers which choke on special characters?

Not really. The underlying problem is that special characters passed between programs frequently require "escaping" using a protocol which both programs must implement. If one end implements the protocol and the other end doesn't, then strange things will happen. A little bit of experimentation with the donation page showed that use of a # or & would truncate the message at the point of the special character. This was obvious on the "preview" page -- no printing was necessary!

So obviously, the implementers of the Association's donation application hadn't a clue as to the proper way to handle special characters. I can just imagine the following conversation:

Head of Solicitations: We've been getting complaints from donors about their personal messages being incomplete.

Programmer: By any chance did they use any special characters in their message?

Head: How should I know?

Programmer: Well, they shouldn't. This is a known problem with the XYZ for Java Package and there's nothing we can do about it. [Notice the deft shift of the blame to a third party].

Head: Well then we at least ought to tell our donors not to use the characters.

Programmer: Ok, I'll get right on it and change the instructions on our Web site.

So we've now shifted the burden to fixing the problem onto the customer.

This page is powered by Blogger. Isn't yours?