2.2 Understanding the problem space
2.3 Conceptualizing the design space
2.4 Theories, models, and frameworks
Imagine you have been asked to design an application to let people organize, store, and retrieve their assortment of files, e.g. email, photos, movies, MP3, chats, documents, in a fast, efficient, and enjoyable way. What would you do? How would you start? Would you begin by sketching out how the interface might look, work out how the system architecture should be structured, or simply start coding? Or, would you start by asking users about their current experiences of saving files and look at existing tools, e.g. Google desktop search, and, based on this, begin thinking about why and how you were going to design the application?
Interaction designers would begin by doing the latter. It is important to realize that having a clear understanding of why and how you are going to design something, before writing any code, can save enormous amounts of time, effort, and money later on in the design process. Ill thought out ideas, incompatible and unusable designs can be refined while it is relatively easy and painless to do so. Once ideas are committed to code they become much harder to throw away. Such preliminary thinking through of ideas about the user experience and what kinds of designs might be appropriate is, however, a skill that needs to be learned. It is not something that can be done ...