Accessibility

Flex Article

 

Designing for Flex – Part 7: Making your application fast


Table of Contents

Comments

Eliminating work

Computers are really good at two things: remembering things and performing computations. When connected to other computers, they become good at discovering what these other computers know. Most humans are very bad at all three of these tasks. Useful applications let computers do what they're good at: eliminating work for users.

checkmark Use the impeccable memory and powerful processing abilities of computers to eliminate work for your users.

There are three primary ways to eliminate work: by cutting unnecessary steps out of the common tasks your users perform, by automating steps so that they are handled behind the scenes by the system, and by inferring an intelligent starting point for your application based on the context of the user's arrival.

Shortening tasks

One of the most straightforward ways of eliminating work is to take a good, hard look at the tasks users perform with your application and mercilessly slice out any unnecessary steps. But if this is so easy, why are overly-long task flows so common in modern software? There are a variety of reasons.

First off, the designers and developers of the system may not have understood exactly what users would do with their application and what the common workflows would be. If you did your homework by outlining the key user tasks as described in Part 2: Planning your application and optimizing your application's design around them you should already have a huge leg up over these folks. Understanding your users' true tasks, both before you design and after your application has been released into the world, is the best way to know where to focus your efforts when designing and redesigning your Flex application. (Conducting sound user research instead of relying on guesswork, however educated, becomes more and more important as your application evolves. If you only informally chat with a handful of users, you risk designing your application around outlier workflows and missing the mark for the majority of your customers.)

checkmark Discover your users’ real tasks to better understand what flows you must make more efficient.

 This diagram of the hypothetical bill pay system from Part 2 demonstrates how a redesigned task flow can greatly improve user efficiency by eliminating unnecessary steps from a process.

Figure 1. This diagram of the hypothetical bill pay system from Part 2 demonstrates how a redesigned task flow can greatly improve user efficiency by eliminating unnecessary steps from a process.

Sometimes, unfortunately, tasks are made unnecessarily complex intentionally, not because of mere oversight. The least forgivable of these involve inserting steps manufactured by the system's designers, such as needless confirmation dialog boxes or pop-ups that do nothing other than report normal operation ("The network connection has been re-established. Ok?"). Never bother the user with information or questions that have nothing to do with accomplishing their current goal unless the consequences are truly dire and require her immediate attention. These consequences occur much less often than many application designers and developers seem to believe.

 Adobe's CS3 updater tosses up many classic examples of pointless dialogs. Many users may wish to approve updates to Adobe Photoshop, Adobe Illustrator, Adobe Dreamweaver, etc., but to pester the user to update the updater itself?! Joseph Heller would be proud.

Figure 2. Adobe's CS3 updater tosses up many classic examples of pointless dialogs. Many users may wish to approve updates to Adobe Photoshop, Adobe Illustrator, Adobe Dreamweaver, etc., but to pester the user to update the updater itself?! Joseph Heller would be proud.

Another source of manufactured work comes from organizational flaws rather than technical ones. Sometimes, for business or marketing reasons, applications demand unnecessary information from their users. No matter how important this data is, it's not worth degrading the user experience. As mentioned in Part 3: Structuring your application, if this data really is important, make it optional but offer an incentive for users to provide it. (The design team for a major website was once trying to find ways to reduce drop offs during the user registration process. They found the biggest offender was their long and elaborate registration form that demanded to know just about everything about the user short of his dating history. When they contacted marketing to determine how they could pare this down, they found to their horror that no one was even using this information anymore; it only existed to waste users' time and caused a loss of business for the website.)

checkmark Never bother your users with information or questions that have nothing to do with accomplishing their goals.

 This registration form from Adobe.com clearly marks which fields are required and which are optional, simplifying the registration process. The form could be further improved by making more fields optional (does Adobe really need to know my city and country?) and by separating optional information into a separate section that follows the required information.

Figure 3. This registration form from Adobe.com clearly marks which fields are required and which are optional, simplifying the registration process. The form could be further improved by making more fields optional (does Adobe really need to know my city and country?) and by separating optional information into a separate section that follows the required information.