user interface designer | always defers to users by both asking their opinions and evaluating how they use prototypes |  |
asks user's opinions |  |
avoids modal dialogs because they force the user to constantly press 'OK' or 'Cancel' to move on to the next step |  |
avoids technical jargon and acronyms in text |  |
bases user interface design on user's tasks |  |
chooses coding techniques with care |  |
employs a skilled writer to write the text and a skilled graphical designer to create graphics |  |
ensure that the user interface appears uncluttered |  |
ensures that the user interface does not have too many pages, each with only a small amount of information, because the user will have to spend much time navigating and will become lost |  |
ensures that the user interface only displays essential information, while allowing the user to request additional information by navigating to another dialog box, tab or page |  |
ensures that everything that appears on the screen is understandable by all users |  |
ensures that good labels are used so that all coding techniques are fully understood by users |  |
ensures that if operations take up to 15-20 seconds, such as loading complex pages from the net over a modem-based connection, the user understands that they are naturally time-consuming and an indication of progress is shown |  |
ensures that response time is adequate |  |
ensures that response times are a second or less for operations such as saving most data, moving between windows, obtaining help, and obtaining the first feedback from any longer operation |  |
ensures that the application mimics other applications |  |
ensures that the system has different modes for beginners and power users if the system is complex |  |
ensures that the system is usable by people with disabilities |  |
ensures that the user always feels in control by being allowed to set system preferences |  |
ensures that the user can always get out, go back or undo an action |  |
ensures that the user can see what commands are available and are not available |  |
ensures that the user can undo an action that may have changed data in the system |  |
ensures that the user does not have to navigate anywhere to do subsequent steps of a task |  |
ensures that the user interface does not use too many different colours, fonts or graphics |  |
ensures that the user interface informs users of the progress of operations, changes of state, and of their location as they navigate |  |
ensures that the user interface warns the user if the response time for an operation will be more than 15-20 seconds so the user can do something else while waiting or choose not to perform the operation |  |
ensures that the user is not affected by information overload |  |
ensures that the user is warned before they perform an action, if the action cannot be undone and asks the user to confirm an action if it can have serious consequences and cannot be undone |  |
ensures that when something goes wrong, the user interface explains the situation in adequate detail and helps the user to resolve the problem |  |
evaluates how users use prototypes of user interfaces |  |
evaluates response time by testing on the slowest hardware that end-users are likely to encounter |  |
follows look-and-feel standards |  |
follows usability principles but not rely solely on them |  |
internationalizes the user interface |  |
is aware of locale-dependent features |  |
is responsible for making sure that usability is kept at the forefront of the design process |  |
is part of software development team |  |
is a subtopic of 7.4 - The Basics of User Interface Design |  |
is a kind of designer |  |
makes the most important commands stand out by using large buttons, by being the first item in a menu or by being the leftmost icon in a toolbar |  |
makes sure that elements are arranged in straight lines or several columns |  |
performs use case analysis and designs the user interface based on this |  |
provides good help system |  |
reduces the amount of reading and manipulation the user has to do |  |
should avoid fancy and unusual UI designs, and especially the design of new controls, because they will be more sensitive to changes |  |
should not focus on the commands, fields and icons etc. that are needed because this approach tends to result in systems that do not fit the users' tasks |  |
should not give the user too much to look at |  |
should not invent new user interface controls because users will have to figure them out |  |
should use simpler UI frameworks that are widely used by others |  |
thinks about the sequence of activities the user will want to perform to get their job done |  |
uses grouping, colour and fonts to help highlight the organization of information |  |
uses similar layouts and graphic designs throughout the application |  |
designer | can create skeletons for the files that will contain the code |  |
can learn from studying patterns |  |
must find ways to reduce costs and increase benefits |  |
should not design large systems until she has experienced a wide variety of software development projects |  |
should study designs of other systems, including designs that have been found to be bad |  |
software developer | develops software |  |
has goal rewarding career, recognition, or the challenge of solving difficult problems or by being a well-respected 'guru' in a certain area of expertise |  |
is part of software development team |  |
maintains software |  |
may be judged on when they deliver product, not on its quality level |  |
may be reluctant to develop new libraries, APIs and frameworks because- developing anything reusable is seen as not directly benefiting the current customer
- If a developer has painstakingly developed a high-quality reusable component, but management only rewards the efforts of people who create the more visible 'final product', then that developer will be reluctant to spend time on reusable components in the future
- Efforts at creating reusable software are often done in a hurry and without enough attention to quality. People thus lose confidence in the resulting components, and in the concepts of reuse and reusability
|  |
may refuse to reuse components in which they lack confidence |  |
most often works on custom software |  |
must inform the project manager about any problems |  |
must understand the customer's business environment, their problems and the available technology which can be used to solve the problems |  |
often fails to adequately involve users in the development process |  |
often has significantly less knowledge about modelling than about design and programming |  |
often underestimates software development time because it is very hard for people to assess the quality of software or to appreciate the amount of work involved in its development |  |
reuses libraries and APIs delivered with a programming language |  |
should be rewarded for developing reusable components |  |
should emphasize the use case or use cases which are central to the system, which represent a high risk because of problematic implementation, or which have high political or commercial value |  |
should identify all the use cases associated with the software product |  |
should not document a design only after it is complete |  |
should not omit design documentation |  |
should only reuse technology that others are also reusing |  |
should realize that attention to quality of reusable components is essential so that potential re-users have confidence in them |  |
should realize that developing and reusing reusable components improves reliability, and can foster a sense of confidence |  |
should realize that developing reusable components will normally simplify the resulting design, independently of whether reuse actually occurs |  |
should work for several months on a testing team; this will heighten her awareness of quality problems she should avoid when she returns to designing software |  |
wants software that is easy to design and maintain and which has parts that are easy to reuse |  |
stakeholder | must agree on requirements |  |