User Experience Design

User Experience is simply the total interaction that a user has with your product. It’s more than the user interface because it includes all facets of the product, such as documentation, marketing literature, release notes, and, of course, the user interface.

 

The typical process in most companies is to create a high-level requirements document that defines product features to be delivered in a given release. Engineering then creates technical specifications to define how to technically accomplish these requirements. (An example is an architecture specification.) What is often implicit or not defined at all is the human/product interaction.

The omission of a clearly defined user workflow and behavior leads to usability and customer problems. More immediately, though, this omission causes lost time in development. The developers will have questions or misunderstandings about how the product works. In the end, time is wasted and the product at the end of the development cycle does not meet the initial vision or customer requirements.

 

There’s an opportunity here to save even more time and improve the overall quality of the product. But first, let’s define a couple of terms.


User Workflow
The User Workflow is simply the procedure the user follows to accomplish a specific task. For example, the user's goal is to send email to convey important information. The workflow would include opening a blank email window where the user can type the message, prompting for the name of the recipient and a subject title, and sending the message. Additional features, such as a spell check, could be included in the process.

The User Workflow must clearly specify each step in the process in detail. The details include which buttons to press, which fields to fill in, what messages or prompts appear, etc. The workflows essentially define the user interface. It also ensures that the product does not have any "dead-ends," where the user cannot complete a task with the product.

Along with the workflow, the behavior of the UI must be clearly specified.

UI Behavior
The behavior of the UI is the product's reaction to any given input. This is very detailed. For a software product, it means specifying the product's reaction when each button is pressed, an option is selected in a menu, or a user provides input. The following shows a simple example of a behavior table entry:

User Action: User selects a file and clicks the Delete button.
Product Action: The file name is highlighted and a message box pops up: Delete the file permanently? [Yes] [No]

Ideally, the behavior specification should include all the details for every possible input, including the product's reaction when a user performs a task out of sequence. In addition, the behavior specification must follow the user workflow very closely.

What RGovoni Offers
Before coding begins, we map the user requirements to user tasks. Then we create basic user workflows of how the user should accomplish those tasks. Once done, we write the behavior specification and design the screen layouts.

Depending on the complexity of the product and your company's internal processes, the tasks, workflows, and behavior specifications can be presented in a variety of formats. For example, this information could be its own specification, part of a larger specification document, or even as XML DTD elements in a single sourcing system. The format and presentation of this deliverable is certainly negotiable.

A secondary deliverable can be the training of one or more individuals to update this information with every product release.

Not-So-Serendipitous Advantages
In medium to large development groups, it is very easy for different developers to have a slightly different understanding of how the product actually works. This can reflect in how they code a particular function. The obvious advantage to specifying the UI workflow and behavior is that the product developers have clear specs from which to write code and develop the product. Yet, there are a number of other groups that benefit greatly from this information.

Quality Assurance: A good test plan requires a thorough understanding of all expected product behavior. Any expected behavior that is not made known to the test writer does not get tested, leaving bugs to be found by customers. By documenting the product behavior, the test writer has all the information necessary to write comprehensive test plans before the product is available for testing.

Documentation and Training: Technical writers spend much of their time researching how the product works then understanding how the users are expected to use the product to accomplish tasks. The time spent gathering this information leaves little or no time to document additional useful information to customers. The product behavior document provides a lot of the basic information, reducing research time and misinformation. The specification can aid in the formation of an information architecture or document design.

Remote Engineering: In cases where engineering is done in a remote location, the product specification is critical. Especially where there are cultural and language differences, it is very easy for different developers to have a slightly different understanding of how the product actually works. This can reflect in how they code a particular function, creating barriers to success.

Customer Support, Marketing, and Sales: Between departments, it is easy for misinformation to occur. With different people gathering information from different sources and filling information gaps as they occur, final product information can lack critical details, can conflict among different sources, and can even be erroneous. This can cause misunderstandings among product management, sales, marketing, and engineering. A detailed product behavior specification can be a definitive source of information from which to clarify what customer tasks are supported and how.

The Next Release
The user workflow and behavior specification makes it easier to review how the product interacts with customers, and how to improve the user interface for usability. An example is that the product does not provide appropriate feedback in response to a user action, which ultimately causes a product failure. These problems can be uncovered and addressed before the next release of the product.

 

Back to Top