CSCI E-34 User Experience Engineering
Success in today's software marketplace requires an excellent user experience (UX). That's why all developers, architects, and managers today need to understand the basic principles of UX, even if it's not their primary job. In this course, we take an in-depth look at the foundations of an excellent UX in a platform-agnostic manner. We learn to ask and then answer the vital questions that everyone involved in software needs to consider when making every design decision; we learn to start with the user, not the toolkit. Who are our users and how do we represent them? What problems are these particular users trying to solve, and what would they consider the characteristics of a good solution? How should the user interaction flow, and how can we represent that with stories? How can we prototype and test different designs? How can we create programs to learn what users really do, instead of what they can remember doing or are willing to admit to doing? How can we measure how well we've succeeded? Rather than getting into the implementation of such elements, we focus on how one decides what to implement, and why, in order to make the user happier and more productive. For example, the web and other channels contain an enormous amount of information about how to program a color gradient or an animation. There is almost zero discussion anywhere about when to use a color gradient or animation and when not to, or why you should use them in this situation but not in that one. This course aims to correct that imbalance. Useful design tools, such as the Balsamiq mock-up editor, are discussed as they bear on specific covered topics. Tools aimed primarily at user experience implementation, such as Microsoft Expression Blend, are not covered.