Humane Programming

Most decent web programmers can always figure out how to design an interaction that won't fail if you hit back or reload. These techniques are even older than cookies.

Having three paragraphs of text telling you not to hit back or reload isn't going to help, because people won't read it.

The programmer who wrote this screen admits that 10% of users "forget this warning." It's not because they forgot. It's because humans are fallable and we're used to hitting refresh when the screen is messed up, and we're used to hitting back when we realize we went forward too soon. Don't argue with me, Yahoo, when you're the ones quoting statistics to prove it!

The main purpose of this screen seems to be so that users blame themselves when they hit reload and find themselves blown back to step one. Oh darn! I'm so stupid! say the users. Yes, that's what happens. Watch any usability test where the product is failing - the users inevitably blame "their own stupidity." Better that 100,000 users should feel stupid than one programmer admit he didn't do a very good job.

Don't let anyone tell you that as a programmer you don't have to make moral or ethical decisions. Every time you decide that making users feel stupid is better than fixing your code, you're making an ethical decision.

Have you been wondering about Distributed Version Control? It has been a huge productivity
boon for us, so I wrote Hg Init, a Mercurial tutorial—check it out!