Accessibility

Flex Article

 

Designing for Flex – Part 3: Structuring your application


Table of Contents

Comments

Designing process structures

Employ process structures when your users’ primary goals involve providing information in as straightforward and efficient a fashion as possible. Process structures work best when users must enter a large amount of information at once or when they need guidance through a complex task. They allow designers and developers to walk users through an unfamiliar process. In information and creation structures, users must find the right combination of features to accomplish their goals, but process structures assemble this functionality into a linear workflow; users just follow the steps.

checkmark

Employ process structures when your users’ primary goals involve providing information in an efficient, straightforward, and structured manner.

Before designing a process structure, ask whether you really need it at all, or at least whether you need as much of it as you think you do. Many process structures force users to provide information that is unrelated to their goals, information that the system could have and should have figured out itself, or (worst of all) information that they just gave the system fifteen minutes ago. Always ask yourself if the information you are requesting is really necessary, whether it could be determined automatically, or if you even need the information at all. (Note: If the information you are requesting is for your benefit and not your users’, make it optional and clearly separate from the required information flow. Examples include demographics information for marketing or tracking purposes. If this information is really important to you, make it optional but offer the user some incentive for providing it.)

The days of applications asking users to provide the IRQ port of their sound card because the computer was too dumb to figure it out itself are fortunately far behind us, but applications commit similar sins today for information such as zip codes (I just gave you my address) location preferences (couldn’t you show restaurants near my home by default?) and even taste preferences (I’ve visited this site looking for Ethiopian cuisine several times before, why make me re-enter it each time?). You can read more about how to ask for less information in Designing for Flex, Part 7: Making your application fast.

Once you’ve decided what information to ask for, you’ll want to consider how best to ask for it. Traditionally, designers implemented process structures using wizards—multi-screen dialog boxes with “Next” and “Previous” buttons to step users through a linear flow. Wizard-like interfaces are an option in Flex, but are not the only method. Many Flex applications present process structures on a single screen, defining the steps using visual organization principles instead of separate screens. Others use multi-state linear containers such as accordion controls to represent each step, while providing a more compact representation. The method you choose depends mostly on how separate the steps of your task are and thus how necessary it is to show the user how changes to the options of one step affect those of another.

Regardless of the process structure you choose, provide ways for users to navigate to different steps in the process, even if they have already completed them or haven’t finished a prior step. This allows users to correct mistakes, skip information they aren’t yet ready to supply, and get a sense of how much they still have left. (Note: In some cases, you won’t be able to let users meaningfully “look ahead” because the options available in future steps depend on the selections made in previous steps. This still doesn’t prevent you from letting users go back.)

Allow users to move through the process even if they have entered “invalid” information; often you should even allow them to save this information and correct it later. In the days of paper forms, users often entered notes or other temporary information into form fields with the intent of going back to it later; this important ability is often lost when these forms are translated to digital databases. Instead of rigidly refusing to accept temporary information, allow users to enter whatever information they like, then help them go back and locate fields that contain temporary notes later, when they have the final information available.

It’s generally okay to allocate more space for controls and widgets in process structures than is acceptable in information- or creation structures. These controls may perform functions such as informing the user where she is in the process, allowing her to navigate to different steps. or explaining steps or options that aren’t immediately obvious. (Note: Many users do not read textual explanations, especially if they appear as a standard part of a common dialog. Use them sparingly, and replace them with graphical explanations or, better yet, ensure your input mechanisms communicate their function clearly enough as to not require explanation.) Superfluous chrome should still be eliminated.