28 Things Everybody Should Know, Part XXI

Try to break your system before someone else does.

Product testing is often overlooked by developers whose products aren’t a threat to anyone’s safety, or for which laws don’t exist to mandate testing. But the majority of all products and services are designed for a market not comprised of like-minded developers, and users will inevitably end up making mistakes not accounted for during the development process.

Another problem with experience design is that developers often test their own products in the way they’re meant to be used, without exploring different approaches that might inadvertently–or even purposefully–cause the system to fail.

Corner cases are situations beyond those normally anticipated by developers, where a user might push the abilities of a product further than it was constructed to support. In certain scenarios, such as with load-bearing pulleys and cables, corner cases must account for wide margins (a pulley I have states its limit at 500lbs, but I suppose it will probably sustain twice that without breaking–the company probably severely understated its abilities to prevent accidents and ensuing lawsuits), whereas electronics like computers don’t need such a large safety net (many people safely overclock their systems, threatening little more than the longevity of the computer itself).

Borrowing from Murphy’s Law, wherever there is the possibility to break a system exists, someone will find it sooner or later, and it’s best to catch it and fix it (or create an acceptable workaround) before it hits the shelves and starts causing problems.

By way of example, most keyboards today only recognize four keys pressed at one time. Honestly, the keyboards themselves probably recognize many more than that, but probably refuse to relay the extra signals to the computer. I don’t know exactly why they do this, but seldom are more than three keys ever used simultaneously, and it’s possible that too many signals at once could cause some applications to go a little crazy. (In fact, it may be a Windows problem–I don’t recall experimenting on a Mac.) But with all the various programs out there, most only really dealing with one or two keystrokes at a time, limiting the operating system’s recognition of more than a handful of keys undoubtedly has solved some problems. And it’s still more than you could ever press at the same time on a typewriter.

This is a screenshot of LEOGEO, a website I discussed earlier. Under normal circumstances, the gray letters expand to display a link when the user rolls over each one, and reverts to its single-letter state when the cursor rolls away. Essentially, only one link is in its full state at any given time.

In Flash, the commands used to trigger events with the cursor rolls on and off buttons are on(rollOver) and on(rollOut). However, there are a few more states designers often fail to account for, and one in particular can result in multiple rollover states the designer hadn’t planned for: on(releaseOutside). This tells the computer how to act if a user clicks the mouse button down, drags the cursor away from the button on the screen, and then releases the mouse button. Without declaring a releaseOutside event, the button stays in its rollOver position until the cursor rolls back on and off the button a second time.

LEOGEO’s buttons weren’t scripted to handle this unexpected behavior, which can occur when a user is moving the mouse and clicking multiple buttons rapidly–or whenever I decide to test buttons to see what will happen. Once a website goes live, there’s no telling who will use it, and if every unlikely problem isn’t anticipated, it will very likely turn up at the most inopportune time.

The best way to make sure a system won’t break is by doing everything possible to break it. Automotive companies crash test their own cars extensively, using their findings to improve on future models and features. Unfortunately, many developers don’t have the mindset of a product tester, and certainly don’t think the way typical users do, so without knowing what it takes to break a system, they can’t possibly know how to prevent such a breakdown.

Advertisements

0 Responses to “28 Things Everybody Should Know, Part XXI”



  1. Leave a Comment

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s





%d bloggers like this: