Flexible programming
Joel Spolsky writes about the problems inherent in making a program run safely on thousands of different kinds of machines. The common wisdom is that "the best way for computer programs to communicate with each other is for each of the them to be strict in what they emit, and liberal in what they accept." Spolsky disagrees, suggesting that the many woes of HTML demonstrate that strict API's are better. If a program sees errors and accepts them, he observes, people will come to depend on the mistakes.
I've been taking a look back at Storyspace I; now that Storyspace II is well launched, it's probably a good time for a retrospective paper. Spolsky is absolutely correct: people will come to depend on mistakes. But (Spolsky aside) that's not always bad; we never expected people to write poems in the links dialog!
Spolsky reports spending 3 weeks in a 52-week development cycle dealing with configuration issues. That's surprisingly little! So far (barring one report today) we've kept Ceres out of deep water across three operating systems, but bad things could still happen.