User Interaction vs. Critical Application Functions
A problem I encountered while doing my homework last night (more details) led me to think about an important feature in software design. That feature is insulation.
No, that doesn’t make much sense. I’m not entirely sure there’s an “official” term for this concept, so I made one up. Hope nobody minds; I’m open to corrections in the comments, of course.
Anyway, the sort of problem I’m hoping to bring to the attention of developers occurs when a user’s action interrupts a critical function in the application they’re using. Whether it’s a website or a desktop program, the result is the same. The application will fail to complete what it was doing and cause a potentially irreparable failure.
The situation that happened to me last night involved a JavaScript click handler (that’s speculation; read the detailed post for more info) interrupting the load of a page within the Blackboard Learning System test-taking environment. The subsequent problems got me locked out of a test, because the buttons to save/submit the assessment hadn’t loaded. My click (a user interaction) interrupted a function critical to the application (loading the page).
So here’s my point — I’ll make it short and sweet. Make sure the users of your application can’t mess up its behavior through expected actions. (Ideally they won’t be able to mess it up even through deliberate action, but let’s take this in baby steps. ;-) ) They’ll definitely thank you for building a resilient application. Who’d think that opening a menu or section of additional information would stop the entire page (or data in a desktop app) from loading? Probably not most people. Keep that in mind when designing your applications.
Posted in Uncategorized | View Comments