Paul Graham: “ The fact is, simplicity takes effort—genius, even. The average programmer seems to produce UI designs that are almost willfully bad. I was trying to use the stove at my mother’s house a couple weeks ago. It was a new one, and instead of physical knobs it had buttons and an LED display. I tried pressing some buttons I thought would cause it to get hot, and you know what it said? “Err.” Not even “Error.” “Err.” You can’t just say “Err” to the user of a stove. You should design the UI so that errors are impossible. And the shocking thing is, the boneheads who designed this stove had an example of such a UI to work from: the old one. You turn one knob to set the temperature and another to set the timer. What was wrong with that? It just worked.”
Fax to FogBugz
I’m rather pleased with myself that for the first time in Fog Creek’s history, purchase orders which arrive by fax will not actually be printed on paper and then moved from manila file folder to manila file folder to indicate their status. That’s because I changed our fax system so that anything faxed to Fog Creek automatically becomes a bug in our FogBugz database. Here’s how we did it.
First, we installed a fax modem in one of the servers in the closet. Remember fax modems? The top of the line models these days are about $16 and you probably have boxes of them in your attic.
Step two, we installed Snappy Fax Server on that server. Their network fax software costs $69 and does all kinds of handy things with faxes, but the only thing we needed it to do was receive incoming faxes and forward them to an email address.
Step three: set up a devoted email address to receive the faxes, and added a new Mailbox in FogBugz to check incoming email at that address and forward it to the normal customer service queue.
That’s all it took! Now when a fax is received, if it’s a purchase order, we just move it into a “Purchase Orders” project in FogBugz where we keep a complete history of invoices sent, payments received, etc. using FogBugz’s usual history mechanism. This will make it especially easy to keep a record of overdue purchase orders, what’s been done about them, etc., and now that they’re not in a file in my office, anyone handling customer service can quickly check on the status of a purchase order that a customer sent in.