Trait of good software: it fails gracefully

I was just thinking today about what makes good software and what doesn't and something that came to mind was how well does software fail. Think about that for a second, in an ideal world software works just as we designed it and how the coders coded it. Users didn't use it in unexpected ways on different hardware or other configurations. They only clicked where we wanted them to and only entered good data.

However in the real world that doesn't happen does it? Bad people will send bad information to a web service to get it to send SQL statements or corrupt files will be opened and how does the app handle that? There have been some 0day attacks on Word and I believe those are due to crafted documents which cause Word to crap out and fail badly.

I also had another example of this last night when I used Google Checkout for the first time. I entered the wrong year for my card's expiration date and it easily handled the error and allowed me to fill it out again. With their 2.0 updatiness it really looked slick and I was quite pleased that they didn't screw up. I sat back thinking how nice they did the right thing and they told me about my error. (Side note: I went to my bank today and I see that I actually got charged twice by Google Checkout so I need to see what happens after they turn from Pending to Charged.)

When software fails gracefully that is something which is vital, it can't screw up your computer, it can't lose your data and you can't loss trust in the software. I know that on the OneNote team we take data integrity and trust very seriously. We always consider that one of the key tenants that we must uphold so that customers (you all) trust us and know that OneNote will do the right thing. It is interesting I have had problems with this recently when I was using Word to blog, I didn't save my post and when I went to publish Word crashed! I lost my whole post and I was so pissed, I just have totally come to think about autosave as the default in the world. I see it with Outlook and my draft messages, I see it with Google's GMail which does the same autosave and heck OneNote! We were doing this since 2003 and I just can't believe it isn't done everywhere.

That being said software that fails gracefully is important. If your code is going down the wrong path make sure you don't take out something important, turn your car off now! : )

Now I will hit Ctrl-S because I click on Publish