A Usability Study of the
"Tksee" Software Exploration Tool
by
Francisco Herrera
A thesis presented to
the University of Ottawa
in fulfillment of the thesis requirement
for the degree of
Master in Computer Science
School of Information Technology and Engineering
University of Ottawa,
Ottawa, Ontario, CANADA
The Master in Computer Science is a joint program with
Carleton University, administered by the
Ottawa-Carleton Institute for Computer Science
Ó Francisco Herrera, Spring 1999.
ABSTRACT
A Usability Study of the
"Tksee" Software Exploration Tool
by
Francisco Herrera
Master in Computer Science
University of Ottawa
Spring 1999
(Back to the main page of theses supervised by Dr. Lethbridge
This research project explores effects of not having considered usability when assessing the functionality of a software system. Also, it experiments with the introduction of usability into latter stages of software projects in which developers are new to usability. A particular software project confronting that scenario is used to explore these issues. The selected project had created a program comprehension tool that had been given to a group of users for some time. For that reason, this research also explores challenges posed to studying the usability of program comprehension tools. A usability study is designed in order to perform the research. Three techniques are applied in the study: (a) heuristic evaluation, (b) user and task analysis and (c) thinking aloud usability testing. Heuristic evaluation is used to look for usability deficiencies in the tool design. This is achieved by asking a group of evaluators to judge the tool according to a list of usability guidelines and principles. Thinking aloud usability testing is used both (a) to look for problems that users experience when learning and using the tool, and also (b) to explore how well users who had been given the tool were capable of using its functionality. Both are achieved by observing a group of users performing some tasks typical of the tool's design intent. User and task analysis is used to find a right group of users and a good set of tasks for the thinking aloud usability testing technique. It is also used to obtain information about how the users had employed the tool. The study was very productive in finding information about all the above issues within the particular software project. It revealed that none of the users was capable yet to correctly use the tool functionality, and therefore it was impossible to assess the tool functionality at that moment. Not having considered usability had been one of the causes of this. Also, many issues were observed in relation to (a) having started considering usability at a late stage in the tool lifecycle and (b) the software project's reaction to being exposed to usability for the first time. Finally, certain particularities and difficulties were encountered with planning and studying the usability of the tool.
ACKNOWLEDGEMENTS
"In the immensity of space and eternity of time my happiness lies on
sharing an age and a planet with you"
I want to thank: (a) Dr. Timothy Lethbridge for introducing me to this fascinating area as well as for all his support and help during the project, (b) the KBRE group, for their participation and help, (c) Gina (indeed, the best thing that has happened to my life), for her love and help throughout the project, and (d) the people of Mexico who through Conacyt provided the financial support.
With love to Gina, my Father, my Mother, Juan Arturo, Mauricio, Father in law and rest of the family. Also to Omar, Lorena, Armando, Lulú, Hans, Daniel and Pérez family, Quique and the rest of our friends.
TABLE OF CONTENTS
The page numbers in the following table refer to the pdf version of the thesis.
PAGE
Abstract . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . i
Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . ii
List of Figures . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . v
List of Tables . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . vi
CHAPTER
1.1 Antecedents . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 1
1.2 Motivation and Objectives . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2
1.3 Contributions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1 Usability of Software Systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
2.1.1 User Centered Design . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7
2.1.2 Usability Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.1.2.1 Discount Usability Engineering . . . . . . . . . . . . . . . . . . . . 18
2.1.2.2 Heuristic Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19
2.1.2.3 Thinking Aloud Usability Testing . . . . . . . . . . . . . . . . . . 21
2.1.3 Acceptance of User Centered Design in Software Projects . . . 22
2.2 The Software Project and Program Comprehension Tool . . . . . . . . 23
2.2.1 The Software Project and Problem Addressed . . . . . . . . . . . . . 24
2.2.2 The Program Comprehension Tool . . . . . . . . . . . . . . . . . . . . . 28
2.2.3 Status of the Program Comprehension Tool and
Software Project . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30
PAGE
3.1 Ideas for planing the Research . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32
3.2 Study Plan . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 34
3.2.1 Heuristic Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.2 User and Task Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 35
3.2.3 Thinking Aloud Usability Testing . . . . . . . . . . . . . . . . . . . . . . 37
4.1 Heuristic Evaluation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.1.1 Procedure Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 39
4.1.2 Usability Insights obtained with the Heuristic Evaluation . . . . 41
4.1.3 Issues during the Heuristic Evaluation . . . . . . . . . . . . . . . . . . . 45
4.2 User and Task Analysis . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.2.1 Procedure Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 52
4.2.2 Insights obtained with the User and Task Analysis . . . . . . . . . 54
4.2.3 Issues during the User and Task Analysis . . . . . . . . . . . . . . . . 57
4.3 Thinking Aloud Usability Testing . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.3.1 Procedure Overview . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62
4.3.2 Usability Insights obtained with the
Thinking Aloud Usability Testing . . . . . . . . . . . . . . . . . . . . . . 63
4.3.3 Issues during the Thinking Aloud Usability Testing . . . . . . . . 73
4.4 Other Insights and Issues independent of the Techniques . . . . . . . . 78
5.1 Detailed Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.1.1 Objective One . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84
5.1.2 Objective Two . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86
5.1.3 Objective Three . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88
5.1.4 Other Conclusions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89
PAGE
5.2 Recommendations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90
5.3 Summary . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93
References
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95Appendices
Thinking Aloud Usability Testing . . . . . . . . . . . . . . . . . . . . . . . . . . . 137
LIST OF FIGURES
2.1 Dimensions in which users experience differ . . . . . . . . . . . . . . . . . . . . . . 9
2.2 Start life cycle for software development . . . . . . . . . . . . . . . . . . . . . . . . . . 14
2.3 System acceptability and usability . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
2.4 Learning curves of different systems . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
2.5 Patterns that SEs follow when exploring the systems . . . . . . . . . . . . . . . . 26
2.6 Main window of the Program Comprehension Tool . . . . . . . . . . . . . . . . . 29
2.7 Architecture of the Program Comprehension Tool . . . . . . . . . . . . . . . . . . 30
3.1 Classification of users of the tool (SEs) . . . . . . . . . . . . . . . . . . . . . . . . . . . 33
4.1 Problems according to the usability guidelines . . . . . . . . . . . . . . . . . . . . . 79
4.2 Types of problems found using both techniques . . . . . . . . . . . . . . . . . . . . 79
4.3 Percentage of problems found by the techniques . . . . . . . . . . . . . . . . . . . . 82
PAGE
LIST OF TABLES
4.1 Problems found in the Heuristic Evaluation according to the
usability guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.2 Problems found in the Heuristic Evaluation according to the
second classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42
4.3 Second classification of the problems . . . . . . . . . . . . . . . . . . . . . . . . . . . . 50
4.4 Initial procedure for determining the tasks . . . . . . . . . . . . . . . . . . . . . . . . . 58
4.5 Modified procedure for determining the tasks . . . . . . . . . . . . . . . . . . . . . . 60
4.6 Problems found in the Thinking Aloud Usability Testing
according to the usability guidelines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.7 Problems found in the Thinking Aloud Usability Testing
according to the second classification . . . . . . . . . . . . . . . . . . . . . . . . . . . . 67
4.8 Answers given by participants in the questionnaire . . . . . . . . . . . . . . . . . . 69
CHAPTER I
Introduction
1.1 Antecedents
One of the reasons for creating software systems is to make it possible for people to achieve their goals more efficiently. Systems seek to do this by providing functionality which supports people in tasks for accomplishing those goals. However, producing systems that can help people effectively and which are fully adopted by them is a complex process. Part of that process involves designing and implementing the system. Another part involves users learning, employing and finally adopting the system. Many times, a system must pass through these stages several times before it is really efficient and fully adopted. Good system design is key for a system seeking to help users effectively. Critical factors for creating systems with good design are:
When a new system is created, requirement analysis activities are performed in order to discover possible functionality that can help users in their goals. That is, developers look for what might be good for the system to provide to the users. Once having identified certain functionality, developers build the system and give it to the users.
Nonetheless, it is common that developers want to confirm whether that functionality can in fact help users to achieve their goals more efficiently or whether it should be improved. To do that, developers give the system to a group of users for some time so that they can use it when working on their goals. Then, later, developers explore if the system has helped the users to achieve their goals more efficiently or not. If not, developers asked these users for information about any noticed deficiencies in the functionality as well as suggestions for improving it. In the rest of the document, we will refer to this as 'developers assessing the functionality of the system'.
Interest in assessing functionality becomes particularly strong in the case of systems seeking to help users in complex problems where it is unknown precisely how a system could help and what functionality it should provide. Typically, these are problems in which not even experts in the domain are able to suggest possible functionality for a system. In these cases, the truly efficiency of this type of functionality remains unknown until users employ the system for working on their goals.
Throughout this document, we will use the term "experimental functionality" to refer to functionality for which it is still unknown whether it can help users effectively and which developers want to assess.
1.2 Motivation and Objectives
Nowadays, a common situation in software projects is that a system is developed without considering its usability. Activities are undertaken to discover and implement certain functionality for the system, but nothing is done to ensure that users will be able to easily learn and efficiently employ that functionality. In these conditions, the system is given to a group of users for some time, and later, developers want to assess the functionality. That is, they want to see if the functionality has helped those users to achieve their goals more efficiently, as described in section 1.1. Here, it is important to notice that behind the idea of assessing the functionality, developers assume that the users will correctly use the system when working on their goals. In other words, that users will learn to correctly employ the functionality during the time the system is given to them.
This scenario motivated us to perform this research. We wanted to:
We were interested in exploring effects in relation to (a) the usability of the system and (b) how users learn and employ the functionality during the time the system is given to them.
Another common situation is that people in those projects are not aware of usability. They don't know why it is important and how it can be considered when developing a system. Thus, we also wanted to:
To pursue the research, we selected a particular software project confronting the above scenario. The project we chose had developed a program comprehension tool providing experimental functionality. Based on this, we also wanted to:
In summary, the objective of the research was to look for evidence relating to these issues within such particular software project developing a program comprehension tool.
1.3 Contributions
The results and conclusions of this research should be of general interest to several sources. They should be of interest to:
Another secondary but important contribution should be to the usability of the program comprehension tool that we experimented with. The results of this research should help developers to improve the usability of the tool, which in turn should help the software project to assess and improve its experimental functionality. We want to mention that it was not the intent of this research to actually make any improvements to the tool, rather to explore the process that might lead to those improvements.
CHAPTER II
Review of Related Literature
All the issues we wanted to explore were related with usability of software systems. As mentioned in Chapter I, we pursued the research by experimenting with a particular software project. Hence, the literature search focused on two areas: (a) usability of software systems, and (b) details about the particular software project that was selected.
2.1 Usability of Software Systems
As mentioned earlier, the notion of usability is related to the way the functionality of a system is provided to the users. Usability in software systems has been traditionally considered within the scope of the user interface, and most times it is only addressed in detail by literature about user interface development. It has typically not been considered a central issue in software engineering. However, the success of a software system lies among other things in providing what users need in such a way that users can learn it and efficiently use it. In other words, creating a system with good utility and good usability.
Many different approaches for creating software systems in different fields of computer science currently exist, such as: The Spiral Model for Software Development and Enhancement [Boehm 1988], The Unified Software Development Process [Jacobson, Booch, Rumbaugh 1998], The Usability Engineering Model [Nielsen 1993a], The Usability Engineering Lifecycle [Mayhew 1999], etc. All discuss and address to a different extent the issues of utility (e.g. functionality) and usability of software systems. Some approaches address in detail the issue of utility but miss at fully addressing usability. The same is true vice-versa. Unfortunately, no complete approach fully addressing both issues currently exists.
Traditional approaches in the Software Engineering field describe development of functional and non-functional requirements for creating a system. They focus on capturing aspects of the utility of the system in such requirements and might mention capturing usability aspects of the system in the non-functional requirements. They provide methodologies for implementing those requirements into the system. However, these approaches can lead to creating a system with good utility but that does not necessarily lead to a system with good usability. They miss at providing some fundamental concepts and techniques that are well known in the Human-Computer Interaction field for ensuring that a system realizes good usability. For example, the unified software development process mentioned above describes a set of contextual task analysis activities to obtain information or use cases from which the requirements for a system are derived. However, this approach does not explicitly refer to a work environment analysis. This important part of a contextual task analysis points to aspects of the users actual work environment that should drive user interface design decisions. Also, this method does not emphasize contextual observations of work, or even the need to tap into current user task organization and task sequence models in the design of the user interface. Consequently, while leading to create a system with good utility, this approach will not necessarily lead to a system with good usability [Mayhew 1999].
On the other hand, traditional approaches in the Human-Computer Interaction field focus on realizing good usability in a system but do not provide an in depth methodology addressing the utility of the system.
This phenomenon of incomplete approaches seems to be related to poor communication among groups of people supporting different approaches as well as different "cultures" or schools of thought. It is important to say that approaches in different "cultures" do not compete but rather potentially complement each other. Although no complete approach fully addressing utility and usability currently exists, some efforts are being undertaken [Rosson and Carroll 1995].
Among all the approaches, probably those that address best the issue of usability are those following the notion of User Centered Design [Norman and Draper 1986], which has the concept of usability at its center. Among other things, these approaches address in detail the issue of studying and evaluating the usability of software systems.
In this research, all the issues we wanted to explore involved studying the usability of a software system, therefore, an approach based on user centered design could provide concepts and techniques to achieve our objectives.
2.1.1 User Centered Design
The notion of user centered design involves a whole set of concepts and principles seeking to create products that are highly useful to the users. Much research has been done in the last decade within user centered design with respect to software systems. Gould and Lewis [1985] give a good description of the main principles behind it:
Many authors describe different approaches for creating software systems following the principles of user centered design [Hix, Hartson 1993; Nielsen 1993a; Shneiderman 1998; Mayhew 1999]. All embody the same principles although they differ in certain issues such as steps in the approach, notation, naming, etc. In order to be consistent, we decided to follow The Usability Engineering approach proposed by Nielsen [1993a]. In this approach, Nielsen describes a series of activities that should be followed by people developing a system. These activities can be divided into three stages:
User and task analysis means analyzing the intended user population of the system in order to learn about them as well as the tasks with which the software is intended to help. At a minimum, developers should visit the users at their work place. User differences and variability in tasks are the two factors with the biggest impact on usability. The concept of users should include all people that will be affected by the software system. User experience is an important factor in user differences and that should be considered; Nielsen suggests that it differs in at least three dimensions, as Figure 2.1 shows:
FIGURE 2.1 Dimensions in which users experience differ
Learning about the tasks should include observing the users' goals, needs, and how they approach tasks. Exceptional circumstances should be considered too. Also, it is necessary to analyze if users' tasks could be improved by the use of the system.
Task analysis centered around users generates concrete statements of representative user tasks that provide good coverage of the functionality that the system should provide and that can be used for usability testing later. This contrasts with other traditional approaches, which attempt to derive an abstract functional specification of the system [Glen 1995]. Also, task analysis centered around users emphasizes human factors more than traditional analysis by attempting to identify where users waste time or are made uncomfortable. Early focus on users and tasks is one of the most important activities in order to reach high usability.
Performing a competitive analysis refers to analyzing similar products according to established usability guidelines in order to notice their strengths and weaknesses. Some user testing with other products can also serve to see how the functionality of the other software supports the user tasks. This can provide ideas for the new software. Lewis and Rieman [1993] list some points in favor of using other product's ideas:
The intention is not to steal particular copyrighted ideas but rather to take general ideas and try to improve them.
Setting usability goals refers to establishing concrete goals that the system ideally has to comply with before it is released. Many times a trade off exists between different usability attributes, therefore the goals must be based on the results of the user and task analysis. Ideally, the intended system should perform better in these goals than other similar products. Also, Nielsen suggests performing a financial impact analysis to estimate the cost-benefits that will be provided by accomplishing these usability goals with the system.
Performing parallel design means to create different design ideas and then merge them all into one. In parallel design, the goal is to generate as much diversity as possible, therefore developers should work independently until they have completed the first drafts of the ideas, then all ideas are merged together into one design that comprises the best from all. Nielsen claims that parallel design can save development time by exploring many ideas at the same time.
Including users in design refers to have some users (a) criticizing developers' designs, (b) capturing problems with current developers concepts, and (c) contributing with other ideas. This step is usually good at capturing mismatches between users actual tasks and developers model of the tasks. Also, users seem to be very good at reacting to designs they dont like or wont work in practice. However as Nielsen describes, "users are not designers" therefore this step shouldnt consist of asking users what they want, it is much better to show users paper mockups or some screen designs presenting the ideas.
Coordinating the total interface of the system means to review the design in order to provide consistency among all its parts. Consistency should apply to all parts of the current software project, including the user interface, documentation, training courses, etc. Developers should share and follow similar principles. Also here, the application of standards can help in achieving consistency.
Applying guidelines and heuristic rules has as its objective to implement well-known principles in the current system design in order to improve its usability. There are many well-known principles and guidelines that can provide improvements in the usability of a system. Standards, for instance, are one type of guideline.
A key step for developing usable systems is the development of an early prototype or simulation of the user interface. Prototypes can range from paper sketches to working programs. Any prototype should be quick to develop, as well as quick and easy to modify; therefore a good tool for prototyping plays an important role. Some authors [Hix and Hartson 1993; Lewis and Rieman 1993] suggest that a tool for prototyping should:
Different types of prototypes vary according to the functionality they implement. A horizontal prototype is one where the complete user interface is presented but it has no underlying functionality. A vertical prototype includes in-depth functionality of only certain parts of the interface. A scenario prototype fully implements selected paths in the user interface. A scenario prototype works well for user testing but it has the problem that users must stay within its paths.
Once a system design has been decided, it is necessary to empirically test it in order to capture usability problems. Testing is usually done using prototypes, however systems already implemented should be also tested. Whitefield et al. [1991] provide a classification of the different testing possibilities: (a) whether or not the system has been implemented, and (b) whether or not real users are involved in the testing.
Prototyping and testing are key activities in user centered design and have several purposes:
One reason behind prototyping and testing is the concept that it is too difficult to design a complex system and get it correct the first time [Hix and Hartson 1993]. Some of the reasons are (a) the current limitations in psychological theory that don't permit people yet to accurately predict users' behavior with the system, and (b) the difficulty for developers at the start of a project to have a complete understanding of the entire context in which a system will be used on the field.
Therefore, any development project should expect and plan for iterations where the system is refined or even redesigned. This leads to the concept of performing iterative design where the system goes through cycles of design and evaluation until it reaches pre-established goals.
It is likely that many design decisions will be made during iterations. In order to maintain control and organization, Nielsen recommends maintaining a design rationale document. This document should contain the rationale behind decisions made about the system including the user interface. Also the document (a) captures the process followed throughout design, (b) serves to communicate design to other people, and (c) serves as a guide to future modifications of the system. A suggested format to capture design rationales is the "QOC" notation [McKerlie and MacLean 1993]. QOC stands for Questions, Options, and Criteria. Design questions are linked to design options, which in turn are linked to the criteria that caused particular options to be accepted or rejected.
Finally, once the system is released it is necessary to keep collecting information from its use in the field. This information should be used to plan for future versions of the system or for other products as well.
In cases where resources or time are limited, Nielsen [1994c] suggests a Discount Usability Engineering approach. In this approach the techniques to perform are:
User centered design contrasts with traditional development methodologies that follow the waterfall model in that (a) prototyping, (b) usability testing and (c) iterative design are performed. In the waterfall model on the other hand, development tries to go in a series of sequential stages where each stage is completed before the next one starts. Therefore in this model, the system specification is completed before implementation starts. On the other hand, user centered design assumes that usability problems will appear in the first specification of the system and therefore a prototype is necessary to discover such problems.
Hix and Hartson [1993] describe user centered design as following a "star life cycle" (Figure 2.2) in which usability evaluation is at center of the star and the points of the star represent other activities during the design process like prototyping, for instance. The points in the star are not ordered and they can be repeated as necessary.
FIGURE 2.2 Start life cycle for software development
In one study [Nielsen 1993b], four case studies on iterative design were used. The interfaces passed through three to five iterations, with usability measured in the same way after each iteration. The study found average usability improvements of about 38% after every iteration.
Another study [Boehm et al. 1984] tried to compare the prototyping approach with the traditional software specification approach. Seven teams developed versions of the same software. Three teams used the prototyping approach and four the specification approach. The study found that better interfaces were developed by the prototyping approach.
2.1.2 Usability Evaluation
As described above, usability testing is a key element in the user centered design approach of system development. Now, there are two important issues to explore: (a) what exactly usability is, and (b) how usability can be evaluated.
Usability is a narrow concern compared with the more general concept of system acceptability, which Nielsen describes as "the question of whether the system is good enough to satisfy all the needs and requirements of the users and other potential stakeholders". Figure 2.3 below illustrates the factors of system acceptability and its relationship with usability as defined by Nielsen.
FIGURE 2.3 System acceptability and usability
In this model, utility is defined as the question of whether the functionality of the system can do what is needed, and usability, as the question of how well users can exploit that functionality. Therefore usability applies to all aspects of the system with which a human might interact. The model also describes usability as mainly composed by five usability attributes:
Learnability refers to how easy a system is to learn. In some sense, this is the most fundamental usability attribute since most systems have to be learned, and learning is the first experience that most users have with a system. There are many ways in which learnability can be measured; however, the concept of learning a system should always be seen as users learning the system in order to achieve useful work.
Efficiency of use refers to how efficient and productive a system is for a user once he or she has learned to use it. Users may never finish learning a system, although their learning curves tend to flatten out after they have acquired some expertise, as Figure 2.4 shows. Therefore, a typical way to measure efficiency of use is to decide on some definition of expertise, getting some users with such expertise and ask them to perform some tasks with the system.
Memorability refers to how easy a system is to remember. Typically, memorability is associated with casual users. A casual user is somebody who has learned the system but has not used it for some period of time. Improvements in learnability usually produce improvements in memorability [Nielsen 1994a].
Error handling and prevention refers to (a) the rate and number of errors that users make while using the system and (b) the ease with which users recover from those errors. Typically, an error is defined as any action that does not accomplish the desired goal. However, not all incorrect actions should be considered as errors, since sometimes users recover almost immediately from them and there is not a big impact on user's performance. On the other hand, other errors are more catastrophic because they make it more difficult for users to recover from them. Both types of errors should be measured separately when considering this attribute.
FIGURE 2.4 Learning curves of different systems
User satisfaction refers to a measure of how pleasant to use the system is. A typical way to measure satisfaction is asking users about their opinion of the system, which is generally achieved through the use of questionnaires or interviews. However it is necessary to be cautious with users' opinions because they are often closely related to the peak difficulty that users experience with the system, and also, people are often too polite in the responses.
Much research has been done in the last decade about evaluating usability and many different methodologies currently exist. The most common of all has been usability testing involving users [Nielsen and Mack 1994].
Typical goals when measuring usability are to provide quantitative measures of some usability attributes. For example, how long users take on average to complete a particular task or how many errors on average users make while performing certain tasks with the system. Quantitative measures are normally used to set usability goals for a system, and to evaluate system status to see if it has reached predetermined objectives. However, qualitative measurements are also taken sometimes to measure users' satisfaction, like in the case of asking users to rate a system. The types of measurements to be taken depend on what the desired goal is as well as in what status within the lifecycle the system is.
2.1.2.1 Discount Usability Engineering
There have been some criticisms of classic usability testing methods [Mack and Nielsen 1994a]. Some of those are that classic methods require professional usability experts and special laboratory equipment, also, obtaining large numbers of users so that the results can be statistically significant is very expensive, time consuming and difficult. Furthermore, the costs may out weight the benefits in small projects. As we mentioned before, alternative methodologies have been proposed, like those in the discount usability engineering approach proposed by Nielsen [1994c]. In this approach, the emphasis is to get qualitative information that can be communicated to developers. This information identifies concrete usability problems with the system and helps in generating solutions to them.
Nielsen claims that the methods in this approach are easy to learn, inexpensive, fast to apply, dont require special equipment, and can be performed by software developers. He suggests that discount usability engineering can be used to supplement classical methods or when other more expensive techniques are not feasible. In fact, he says, in many practical situations the goal should be to identify usability problems and not necessarily to get quantitative measures about them.
Many different usability evaluation techniques exist and they can be divided on the basis of whether they use real users or not. Techniques that don't require users are usually referred as Usability Inspection Methods [Nielsen and Mack 1994]. In these techniques, evaluators are used to inspect the system, looking for usability problems that users might have. Evaluators inspect the system based on guidelines and their own judgement.
As we will discuss in Chapter III, two usability evaluation techniques were applied in the research. Both following Nielsen's discount usability engineering approach. A description of such techniques is provided below.
2.1.2.2 Heuristic Evaluation
The first technique used in this research is a usability inspection methodology called Heuristic Evaluation. In this technique, evaluators receive a list of guidelines and are asked to explore the system's interface to look for things that violate any of the guidelines or that they consider as problems based on their experience and intuition. Evaluators are allowed to use any guidelines or principles they consider necessary. Each evaluator proceeds independently in his exploration and they are not allowed to communicate with each other until all explorations have finished. An observer may watch the evaluator's exploration to record notes and answer questions they have about the system.
Heuristic evaluation uses a short list of heuristic guidelines and few evaluators. A list of guidelines that has become very popular is the one developed by Nielsen [1992b]. This list contains the following ten usability guidelines that represent what any system with good usability is expected to have:
It has been observed in heuristic evaluations, that single evaluators miss most of the problems in their evaluation, although different evaluators find different problems. Therefore, better results are obtained by combining information from several evaluators. In a study, Nielsen [1993a] averaged results from six different projects that used heuristic evaluation. He found that single evaluators discovered 35% of all the problems detected and five evaluators discovered 75% of them. For many practical purposes, Nielsen recommends the use of three to five evaluators.
Also, it has been seen that evaluators expertise has some effect in the amount of problems detected. In another study [Nielsen 1992b], the same interface was subjected to heuristic evaluation by three different groups of evaluators: (a) novices, who had knowledge about computers but no usability expertise, (b) single experts, who were usability specialists but not specialized in the domain of the interface, and (c) double experts, who had expertise in both usability and the domain of the interface being evaluated. The study found that novices detected 22% of the problems in the interface, single experts 41% and double experts 60% of them. The study concluded that best results are obtained by using double experts as evaluators. However, the study recommends the use of single experts for many practical purposes and use of double experts just when optimal performance is necessary.
Supporters of heuristic evaluation claim that this technique is easy to learn, fast to apply and inexpensive. Some studies [Desurvire 1994; Jeffries et al. 1991] compared heuristic evaluation with other usability evaluation methods. They found that heuristic evaluation detects most of the usability problems discovered by the other techniques and it identifies the most serious ones too. They also confirmed that better results are obtained when evaluators have usability expertise.
2.1.2.3 Thinking Aloud Usability Testing
The second technique used in this research is called Thinking Aloud Usability Testing. In this technique, a group of end users of the system or 'participants' is asked to verbalize their thoughts while performing some tasks with the system. The tasks must represent examples of the uses to which the system will be put in the field, and its solution must cover as much functionality of the system as possible. An observer may watch the participants to record notes, encourage them to keep talking and answer questions they have about the interface. However, the observer must be careful in not helping too much so that he doesn't alter participants' performance. The sessions might be recorded or videotaped for later analysis.
The theory behind speaking aloud while performing the tasks is that verbal comments provide insights into the user's mental process, therefore making it easier to understand how these interpret the system. In this way, it's possible to capture users' misinterpretations and problems with the system. However, care must be taken when listening to users, since data showing what they are doing when a problem is present has more validity than users' own theories about the problem. Thinking aloud provides qualitative information rather than quantitative information as in other classical usability techniques.
Supporters of thinking aloud usability testing, claim that this technique is easy to learn, fast to apply, inexpensive and can be performed by non usability experts. Lewis [1982] describes some advantages of thinking aloud usability testing:
Many authors [Nielsen 1993a; Hackos 1998; Mayhew 1999] point out that good ethical principles must be followed in any study or technique involving users. For example, users must be properly informed about the study and their decisions and feelings must be respected. Also, adequate confidentiality must be kept on any information obtained about the users.
2.1.3 Acceptance of User Centered Design in Software Projects
Nowadays, many software projects face the necessity to develop highly useful systems. However, many of those are new to the notions of usability and user centered design. The success of user centered design greatly depends on the acceptance and commitment of the software development project to it. Several authors describe the idea of stages of acceptance and commitment to user centered design in software projects [Bias & Mayhew 1994; Ehrlich & Rohn 1994]. They explain that software projects can be in one of the following stages:
This stage is typical of projects that have never been involved with user centered design. At this stage developers believe that user centered design will only lengthen the development of the system. Normally, this type of project is very concerned just with the functionality and features of the system and not in its usability. If user centered design activities are started, developers don't see what type of benefits can be brought to the system and project.
As projects moved from skepticism, developers become curious about the benefits of user centered design. They recognize the problems with the system and might admit not having the skills for knowing what improvements should be done. They are reluctant to give control over the design of the user interface and utility of the system to someone who is not implementing it.
At this stage, people in the project understand and rely on user centered design. They accept somebody in the project providing guidance in the design and evaluation of the system. They see usability as critical but the system might still be shipped containing usability problems.
The whole software project team is committed to user centered design. There is a great deal of communication among everybody developing the system, including developers and usability specialists. Good usability becomes a critical component that the system must have. Improvements in the system functionality are always verified for usability.
The same authors describe that the introduction of user centered design in software projects requires an evolutionary process in which the projects must gradually grow in their acceptance and commitment to user centered design.
2.2 The Software Project and Program Comprehension Tool
As stated earlier, we performed the research by exploring on a particular software project that had created a program comprehension tool. Such tool provided experimental functionality that developers wanted to assess. In this section, we present details about (a) the software project and the problem it addressed, (b) the program comprehension tool, and (c) the status of the tool and software project at the time of this research.
2.2.1 The Software Project and Problem Addressed
The maintenance of large software systems has become a tremendous problem. Large software systems containing several millions of lines of source code have to be repaired and upgraded. Software Engineers (SEs) need to spend long periods of time exploring and trying to understand large bodies of source code in order to make the required changes. Also, it takes a long time for SEs who are novices to the systems to be able to start making the changes. Thus, the creation of effective tools that can help SEs in maintenance activities is a major issue today.
The Knowledge Based Reverse Engineering software project (KBRE) is a collaborative project between a large Telecommunications Company and the University of Ottawa, which has been looking for solutions to the mentioned problem.
One major goal of the KBRE project has been the creation of software tools that can effectively help SEs to perform maintenance activities on large software systems. Such tools should help SEs to learn about large software systems more quickly, and should also help SEs that are experts in a system to make changes more easily.
At the beginning of the KBRE project, the tasks and activities that SEs perform when maintaining the systems were not well understood. It was unknown how or what tasks software tools could provide help with and what functionality should be necessary to implement in such tools. Not even SEs expert in maintaining systems were able to accurately suggest possible functionality. This situation led people in the project to perform studies about SE work practices [Singer and Lethbridge 1997]. The goal was to generate ideas of possible functionality that could enhance the work practices and that could be implemented into the tools. The rationale was that creating tools that meshed and enhanced existing behavior should help SEs in maintaining the systems and should be more easily adopted. The lack of tool adoption has been a major problem in the area of tool design for SEs.
Several types of data about SEs work practices were collected during these studies, including:
Many insights and ideas were obtained from these studies. One of these was that searching is an important and key component of the real, day-to-day work of SEs. Therefore, improvements in searching should help SEs to do their work better [Singer, Lethbridge et al. 1997]. This made people in the KBRE project focus the efforts on designing tools with good search capabilities.
Another observation was that SEs spend a significant amount of time looking at the source code of the systems, which suggested the creation of tools with intelligent source code viewing capabilities. According to these studies, SEs need to explore the software systems with the goal of determining where modifications have to be done. Also, there are two categories of SEs performing this task (a) novice SEs, who are not familiar with the system and must learn about it, and (b) expert SEs, who know the system very well but can not maintain a complete-enough mental model of it. Novices are normally less focused than experts and spend more time studying things that are not relevant to the problem. All SEs repeatedly search for items of interest in the source code and navigate relationships among them. They never try to understand the system in its entirety but they are content to understand just enough to make the changes required. After working on a particular area they move to other parts of the system and forget details about the previous area, having to re-explore it again if they re-encounter it later. In conclusion, many SEs spend a large proportion of their working time trying to understand the source code prior to making changes to it. People who performed these studies call this approach Just in Time Comprehension [Singer and Lethbridge 1997].
Another important result obtained from these studies was a set of patterns that SEs follow when they explore software systems (Figure 2.5).
LOW LEVEL PATTERNS: |
|
|
|
|
|
|
|
|
|
|
|
|
|
HIGH LEVEL PATTERNS: |
|
|
|
|
|
|
|
|
|
|
FIGURE 2.5 Patterns that SEs follow when exploring the systems
The results from the studies were used to generate a set of requirements for software tools seeking to help with the Just in Time Comprehension approach. This set of requirements consisted of three functional and seven non-functional requirements, listed below:
2.2.2 The Program Comprehension Tool
Based on the above results, the KBRE project created a Program Comprehension Tool implementing those requirements in its functionality [Lethbridge and Anquetil 1997]. Since its creation, the following limitations to the tool were accepted:
Figure 2.6 below, shows the version of the tool used at the start of this research. The main features that fulfill the requirements of searching and displaying relevant attributes (F1 and F2) are implemented in the bottom two panes. The bottom left pane presents a hierarchy of items that can be incrementally expanded by asking to show attributes of such items and related items, or that can be searched for information about a given item. Selecting an item in the hierarchy presents information about it in the bottom right pane, from which the user can select any item of text and request information about it.
FIGURE 2.6 Main window of the Program Comprehension Tool
The main features that keep track of separate searches and allow a persistent history (F3) are in the top pane. Each element in this pane is a complete state of the bottom two panes. A hierarchy of these states is saved persistently, so that the user can work with the same explorations that he had from previous sessions.
The non-functional requirements are implemented within the architectural design of the system (Figure 2.7). This architecture includes a fast database, an interchange language for language-independent information about software, and a client-server mechanism allowing the incorporation of existing tools.
FIGURE 2.7 Architecture of the Program Comprehension Tool
2.2.3 Status of the Program Comprehension Tool and Software Project
As mentioned earlier, the functionality of the tool arose from the study of SEs work practices, and the nature of the problem it seek to help meant it was an experimental functionality. Since its creation, the tool had been given to a group of SEs at the Company so that they could use it during maintenance activities. At the time of this research, the tool had been available for 1.5 years to that group of SEs, and developers wanted to assess its functionality.
On the other hand, the tool had been developed without considering its usability. It had not been evaluated and tested for usability. Also, the KBRE project had not consistently monitored many issues such as:
In addition, people in the KBRE project didn't know much about user centered design. Some developers had a basic idea about user interface design, but basically nobody knew about usability and usability evaluation.
In summary, the tool and KBRE project provided an excellent foundation in which we could perform the research. In the next chapters, we will describe the procedure followed to perform the research as well as the results and conclusions obtained from it.
CHAPTER III
Methodology
According to the overall objective of the research (section 1.1), the goal was to look for evidence within the KBRE software project and its program comprehension tool about the issues in which we were interested. Looking for such evidence required performing an appropriate activity. This chapter presents a description of the rationale followed in planning that activity as well as a description of it.
3.1 Ideas for planning the Research
According to the first research objective, we had to look for effects of not having considered the usability of the tool. A first interest was on effects in relation with the usability of the tool at the moment of this research. A second interest was on effects in relation to how SEs had learned and employed the functionality during the past 1.5 years.
As suggested in the literature, we cold look for effects of the first type by studying the usability of the tool with some usability evaluation techniques. In regards to looking for effects of the second type we could proceed as follows:
It is important to mention that the group of SEs who had been given the tool consisted of approximately twenty SEs, therefore it would be feasible to perform these investigations.
FIGURE 3.1 Classification of users of the tool (SEs)
According to the second research objective, we had to experiment with introducing usability into the KBRE project. Hence, the same study for exploring the usability of the tool suggested in the previous issue could serve for this. Nonetheless, we could broaden the experimentation by doing a whole iteration of evaluation, redesign and re-evaluation of the tool applying different evaluation techniques. We might discover different things when the tool is evaluated, when it is redesigned and when the redesign is evaluated again. Also, the use of different techniques might reveal different things.
According to the third research objective, we had to look for particularities of studying the usability of the program comprehension tool. Again, the same study suggested in the previous issues could serve for this. But once more, we could broaden the search by using several types of usability evaluation techniques, such as one not involving users (e.g. usability inspection method) and another one including users. We might discover different particularities when using different types of techniques.
3.2 Study Plan
Based on the above ideas, we decided to do a usability study of the tool including the following three techniques:
Heuristic evaluation and thinking aloud usability testing would serve to explore the usability of the tool. Also, thinking aloud usability testing would be used to explore how a group of SEs who had used the tool during maintenance activities were capable of using the tool functionality. Because the idea in the research was to find qualitative information about the issues with which we were interested, both techniques would follow a discount usability engineering approach. Also, our interest was in usability issues preventing SEs from correctly using the functionality of the tool, therefore, the study would focus on searching for things about learning, efficiency of use and subjective satisfaction.
Heuristic evaluation would be the first technique applied. It would detect minor problems in the tool that developers would try to fix as much as possible before the thinking aloud usability testing.
The user and task analysis would be performed before the thinking aloud usability testing. This technique would serve to obtain a right group of SEs (e.g. participants) and a good set of tasks for the thinking aloud usability testing technique. Also, it would serve to gather information about how the tool had been used at the Company. Next, we provide specific details regarding the application of each one of these techniques.
3.2.1 Heuristic Evaluation
This technique had the objective of looking for usability deficiencies in the tool by applying usability guidelines and principles. It would follow the approach described in Chapter II. That is, a group of evaluators would be asked to evaluate the tool according to the list of usability guidelines proposed by Nielsen. Three evaluators with some usability expertise would be used in order to get the best cost-benefit results. Each evaluator would proceed independently and might be accompanied by an observer.
The results would be summarized in a report and communicated to developers. Some sessions would be performed in which developers and the experimenter would review the problems together. Developers would work on solutions to the problems identified while the thinking aloud usability testing was prepared.
3.2.2 User and Task Analysis
This technique had the objectives of (a) identifying a right group of participants, (b) generating a good set tasks for the thinking aloud usability testing, and (c) gathering information about how the tool had been used at the Company. To achieve this, a series of interviews and observations would be performed with (a) people who had conducted the initial studies about SEs work practices, (b) developers of the tool and (c) people at the Company.
Regarding the selection of participants, the following groups of SEs would be identified:
From each one of these groups, three to five SEs would be invited to participate in the study. In the rest of the document, we will refer to those SEs simply as the novice and expert participants. Both groups of participants would be used to explore the usability of the tool. Novices would help at looking for deficiencies in learning the functionality and experts at looking for deficiencies about efficiently using the functionality. Both groups would be asked for information about their satisfaction with the tool. In addition, experts would serve to explore how well they were capable of using the tool functionality.
In regards to the tasks, these would be real tasks of the type for which the tool was designed. The patterns that SEs follow when exploring software systems would be used to help develop the tasks. These patterns had been observed when the tool functionality was generated and could help at finding real sequences of using the features. Also, some tasks would be designed so that performing them optimally would involve the use of critical features that had not been altered by the solutions to the problems found in the heuristic evaluation (e.g. features that remained in the same place with same label). This was important in order to guarantee that the knowledge that expert participants had about those features were still valid in the test. In other words, to guarantee that if an expert didn't use one of those features during the test, it was because he really didn't know the feature and not because the feature had been altered. In summary, the tasks would comply with the following rules:
3.2.3 Thinking Aloud Usability Testing
This technique had the objective of looking for usability deficiencies experienced by a group of SEs. Also, it would serve to explore how they had learned and used the tool. The participants and tasks obtained from the user and tasks analysis would be used for this technique. The technique would follow the approach described in Chapter II. That is, the participants would be asked to verbalize their thoughts while performing the tasks with the tool. There would be one session for each participant. The tasks would be given one at a time during the sessions. An observer would watch the participants and would take notes during the sessions. The sessions would be videotaped for later analysis. Once the participants had finished the tasks or the time limit had expired, they would be asked to complete a short questionnaire and debriefed for some minutes. The sessions would be performed at the Company facilities using computer equipment similar to that which the participants normally work with.
Like in the heuristic evaluation, the results would be summarized in a report and communicated to developers. Also, some sessions would be performed in which developers and experimenter would review the problems together. Some video clips of participants experiencing the problems would be presented.
Novice participants would receive a 15 to 20 minutes tutorial before the session. The tutorial would be given by a SE who was a member of the group responsible of supporting the tool within the Company.
As recommended in this type of technique, a pilot study would be performed before the sessions with the participants. Two users of the tool similar to the participants would be asked to perform the tasks. They would follow the same procedure as the participants except that these then would not complete the questionnaire and would not be debriefed. The pilot study would serve to capture possible problems with the tasks, investigate details to be careful of when performing the sessions, and other practical issues about the application of the technique.
Finally, as suggested in the literature, certain ethical considerations would be applied. The videotapes and information obtained about the participants would be kept confidential. Only people performing the study would have access to that information. Also, just small clips showing specific problems would be watched during the sessions with developers. These considerations would be informed in advanced to the participants, who would be asked for their consent.
CHAPTER IV
Results
The following chapter presents the results of our research obtained through the usability study performed to the program comprehension tool. We discuss usability deficiencies found in the tool and how those were related to not having considered usability during its development. We also discuss how usability had affected the way SEs had learned and used the functionality of the tool. We describe particular challenges encountered with studying the usability of the tool and finally, we describe issues detected with introducing usability into the KBRE project.
As mentioned in Chapter III, the study involved applying three different methodologies. Thus, we present the results chronologically, with sections about each one of the techniques. At the end of the chapter there is a section with other results that were independent of the techniques.
4.1 Heuristic Evaluation
4.1.1 Procedure Overview
The first part of the study consisted of applying heuristic evaluation following the procedure described in Chapter III. That is, three evaluators with knowledge about designing user interfaces were used. All of them had some knowledge in usability evaluation although they were not usability experts; they had performed just a few heuristic evaluations before. Evaluator-1 and 2 had backgrounds in Computer Science and experience in exploring software systems (the domain of the tool). Evaluator-3 had a background in Psychology and some knowledge about programming languages, however he didn't have much experience in exploring software systems. On the other hand, evaluator-1 was a developer of the tool and therefore he was fully familiar with it. Evaluator-2 and 3 were unfamiliar with the tool and learned about it one week before the study.
The heuristic evaluation was performed as described in Chapter III. That is, the evaluators received a list of ten usability guidelines and were asked to evaluate the tool according to them. Each evaluator performed the evaluation independently from the others and proceeded as follows:
The results from the three evaluators were merged and summarized in a report. We noticed that evaluator-2 (the experimenter) had acquired many insights by observing the results of the other two evaluators. Therefore, thanks to the precaution of performing his evaluation before the others, his results were not biased and it was possible to compare them with the other two evaluators. Finally, some sessions were done so that developers and the experimenter could review the results together.
4.1.2 Usability Insights obtained with the Heuristic Evaluation
The heuristic evaluation supplied a lot of information about the usability of the tool. Most of the results were possible usability problems that SEs could experience with the tool but there were also other insights like suggestions for improvements given by the evaluators. A total of one hundred and fourteen usability problems were identified and they can be consulted in Appendix 2. Seventy-one problems (62%) were about difficulties in learning the tool, sixty-five (57%) were about efficiency of use, and twenty-two (19%) were about both (notice that a problem can be about learning and efficiency of use at the same time). Three examples of these problems are:
According to the usability guidelines, the problems were distributed as follows:
Usability Guideline |
No Problems |
|
49 |
|
20 |
|
10 |
|
15 |
|
11 |
|
1 |
|
2 |
|
0 |
|
5 |
|
1 |
TABLE 4.1 Problems found in the Heuristic Evaluation according to the
usability guidelines
As we will describe later, we generated a second categorization of the problems. According to that classification the problems were distributed as follows:
Category |
No Problems |
|
22 |
|
14 |
|
11 |
|
5 |
|
11 |
|
15 |
|
9 |
|
11 |
|
6 |
|
2 |
|
6 |
|
2 |
TABLE 4.2 Problems found in the Heuristic Evaluation according to the
second classification
According to the usability guidelines (Table 4.1) the biggest category of problems consisted of violations to the simple and natural dialogue principle. Its problems accounted for 42% of the problems found and most of them were related with (a) non-optimal functionality (30%), (b) possible users' confusion or misunderstanding with the tool (18%), and (c) bad graphical design in the user interface (16%) (Table 4.2). Some problems in this category were:
The second biggest category of problems consisted of violations to the speak users' language guideline, which accounted for 17% of the problems found. These problems were mainly related to possible user confusions or misunderstandings with the tool. A problem in this category was:
The third biggest category of problems consisted of violations to the consistency guideline, which accounted for 13% of the problems found. There were many inconsistencies throughout the interface but major sources of inconsistencies were in (a) the design of the features and its behavior, (b) the treatment of feedback, and (c) the graphical design of the user interface. Three problems in this category were:
Together, the problems about the simple and natural dialogue and consistency guidelines accounted for 55% of all the problems found. By analyzing the problems, we saw that many of them were a consequence of the lack of systematic usability activities during the development of the tool. For example:
It is important to say that the problems found were probably not all the existing problems in the tool. As we will mention in the next section, lack of domain knowledge and missing tool information hindered developers from identifying certain types of problems. Many of those problems would have belonged to the categories of (a) simple and natural dialogue, (b) good feedback, (c) good error prevention, and (d) clearly marked exits. Likewise, the tool didn't have online nor written help yet, therefore almost no issues regarding usability of the tool in combination with its help were obtained.
4.1.3 Issues during the Heuristic Evaluation
The heuristic evaluation was in general easy to plan and perform although there were certain things particularly more difficult or different than expected. We encountered the following issues when using this technique:
We belief that, with this information, evaluators would have made better judgements about which were critical problems and would have probably identified a larger number of problems.
We noticed that being a developer and having extensive knowledge in the tool domain made him capture those types of problems. His insights revealed deficiencies about tool learnability and efficiency of use.
We noticed that having little knowledge about the tool and its domain made him capture those types of problems. His insights revealed deficiencies about tool learnability.
At the end, many problems had to be located in the tool, verified for its existence, rephrased or rewritten before including them in the report. The time and effort for this task was much bigger than expected.
We noticed that little experience with the technique and with communicating usability problems to developers had been the main reasons why the evaluators had not reported the problems better.
As mentioned in Chapter II, some authors describe that best results are obtained by using double-experts as evaluators (e.g. evaluators with expertise in usability and the domain of the system). However, we obtained a broader spectrum of problems by having different types of evaluators as described above. That is, we had one single-expert and two double-experts. We also added the category of expertise using the system and we had one expert and two novices on using the tool.
We do not know if this combination can always be better in heuristic evaluations, particularly in evaluations of systems where the problem domain is very complex. But this is a topic for further research where more experimentation could be performed.
To organize the problems, developers tried to use the usability guidelines but these were very abstract for them and consequently not very useful. Based on that, we decided to create a second classification of the problems that they could understand and help them better at organizing the problems. This classification divided the problems in terms of the tool functionality and difficulties that SEs could have with it (Table 4.3).
1. Non optimal functionality |
2. Possible confusion |
3. Possible misinterpretation |
4. Unnecessary functionality |
5. Lack of functionality |
6. Lack of consistency |
7. Graphical design |
8. Feedback |
9. Lack of robustness |
10. Wrong behavior |
11. Bad labeling |
12. Lack of labeling |
TABLE 4.3 Second classification of the problems
On the other side, insufficient tool information also affected developers ability to identify good solutions to the problems. Some developers were not in the KBRE project yet when certain decisions about the design of the tool had been made. Consequently, insufficient tool information meant that these developers didnt know details about the organization of the functionality as well as the design rationale of the user interface. Hence, developers experienced difficulties judging the current design and finding solutions consistent with the rationale used. We noticed this issue made people in the project start thinking about generating some tool documentation.
We want to mention that the experimenter played a key role in these sessions. He had to actively help developers in all the above issues.
4.2 User and Task Analysis
4.2.1 Procedure Overview
The next part of the study consisted of performing a user and task analysis as mentioned in Chapter III. That is, a series of interviews and observations were performed with (a) people who had conducted the initial studies about SEs work practices, (b) developers of the tool and (c) people at the Company.
The first step in the analysis consisted of some interviews with the people that had conducted the initial studies about SEs work practices and developers of the tool. We asked them about the KBRE project, the problem it addressed, the results from those studies, and the tool.
The next step consisted of field observations and interviews with some SEs and other people in the Company involved in the KBRE project. We wanted to gather more information about the project and the tool as well as obtaining a list of possible participants for the thinking aloud usability testing technique.
Once a list of possible participants had been obtained, the next step was to interview each one of them in order to select those who were the best according to the objectives. We had to identify a right group of novice and expert participants. It is important to mention that the experiment was not explained to them at this point.
Other SEs not in the list of possible participants were interviewed next. We asked them to give some examples of typical scenarios and tasks in the exploration of the Company systems during maintenance activities. Such examples would be used in the generation of the tasks. It was important that the possible participants didn't know about the tasks that they would be asked to perform and that's why we asked other SEs for these examples.
After the previous interviews, the manager of some SEs was also interviewed. He had been in involved with the KBRE project and was familiar with the tool. We asked him to verify all the information collected in the previous steps and contribute with missing information. We also asked him for some examples of typical scenarios and tasks in the exploration of the Company systems during maintenance activities.
At this moment, the study and its policies were explained to the possible participants and they were asked to participate in the experiment.
Once having obtained a group of participants, the rest of the analysis focused on generating the tasks. As described in Chapter III, the procedure for obtaining the tasks was performed. However, as it will be discussed below, certain difficulties arose with it as planned and it had to be modified.
4.2.2 Insights obtained with the User and Task Analysis
The user and task analysis provided extremely useful information. It helped to find a right group of participants and a good set of tasks according to the objectives. It also provided many insights about (a) the target population of users of the tool, (b) their needs and tasks, as well as (c) how SEs had used tool during the past 1.5 years and how useful it had been for them. All sources of information were good and provided useful information. Frequently, different types of information were obtained at the same time. Overall, the selection of the participants was completed before the tasks had been fully determined.
One of the first things found was that the target population of users of the tool had been defined as: 'those SEs performing maintenance activities that followed the Just in Time Comprehension approach'. Also, that the tool had been designed mostly based on information from one particular group of SEs. However, the group of SEs who had been given the tool included (a) the SEs in this previous group as well as (b) other SEs in other groups that also performed maintenance activities and followed the Just in Time Comprehension approach.
It was found next that only four SEs had used the tool during maintenance activities so far, and those had been using the tool very differently. Some had employed the tool everyday and others just on specific days. Some had employed the tool for many of their tasks and others only for a few specific tasks. Also, three of them had been more recently hired at the Company. These commented on having used the tool in order to learn the Company systems. On the other hand, many SEs had not used the tool yet and a few had not even heard about it.
All this made us see that the group of SEs who had used the tool during maintenance activities was much smaller than developers imagined. Developers thought that the tool was more widely known and used by the SEs. It was clear that SEs had not been monitored much after the initial studies.
At this moment, we identified a group of SEs who had used and had not used the tool during maintenance activities. These were good candidates to be the expert and novice participants for the testing respectively.
Next, we noticed that SEs in distinct Company groups had differences that could affect their interaction with the tool. SEs in different groups (a) had different goals in mind when exploring the Company systems and (b) tended to have a very different knowledge about the Company systems. These differences meant that two SEs in different groups could:
These, in turn, had an influence in:
These differences, together with the fact that the tool had been mostly designed based on one particular group, made us conjecture whether the tool was equally useful or not to all SEs within the defined target population. In fact, as it will be discussed later, we confirmed this hypothesis later during the thinking aloud usability testing. The following is an observed example of all these issues:
SEs in the design group performed tasks where the starting point of exploration was a Pascal procedure. Though, SEs in the support group said they rarely started explorations by looking at a Pascal procedure. On the other hand, SEs in the support group started explorations by looking at descriptions of reported problems. However, the tool provided many features for starting explorations by looking at a Pascal procedure and few for starting explorations by looking at reported problems. Consequently, the tool was probably more useful to SEs in the design group than those in the support group. More information from SEs in the design group had been used to drive the design of the tool than from SEs in the support group.
Likewise, we noticed that SEs within the same Company group had also differences that could affect their interaction with the tool. SEs in the same group could have a completely different knowledge of the same Company system, and that could have the effect that for the same goal certain SE had to explore the Company system but another one not.
At this moment, the candidates were invited to participate in the test. Eight participants were obtained for the thinking aloud usability testing. Initially, as it will be explained below, four were identified as novices and four as expert participants (categories III and IV in Figure 3.1 respectively), but later, we discovered that one of the experts belonged in fact to the novice category (he had very recently started using the tool). Seven were in a same Company group and one of the experts (the one we discovered later was a novice) was from a different group. Some of them had participated in the initial studies about SEs work practices. It is important to mention that the group of experts consisted of the only three SEs who had used the tool during maintenance activities.
Finally, the tasks for the experiment were generated. As stated before, SEs were asked for examples of typical scenarios and tasks in the exploration of the Company systems during maintenance activities. Here, we noticed that SEs always provided examples that were extremely complex and focused on very high level goals. Many times, they had not been able to accurately describe what sub-tasks or steps would be necessary to perform for solving the examples, neither what explorations of the Company system had to be done. This made us see that SEs not always consciously realized many of these issues during maintenance activities.
The set of tasks obtained contained twenty-eight tasks complying with all the rules established; however, as it will be discussed below, these had to be modified two times later, one after the pilot study and another one after the sessions with the first two participants.
4.2.3 Issues during the User and Task Analysis
The user and task analysis was easy to plan but not very easy to perform. We encountered the following issues during this technique:
1. Ask SEs for some examples of typical scenarios and tasks in the exploration of the Company systems during maintenance activities |
||
2. Take the collection of patterns found in the study of SEs work practices |
||
3. While (there are scenarios) |
||
3.1 Take next scenario |
||
3.2 While (there are tasks in that scenario) |
||
|
||
|
||
|
||
then go to 4 |
||
3.3 If (features used so far covers functionality that wants to be tested) Then go to 4 |
||
4. End |
TABLE 4.4 Initial procedure for determining the tasks
Also, the tasks had to comply with the following rules:
However, we encountered the following difficulties:
In summary, it was impossible to know when and how participants would use the tool with those examples. In our case, knowing this was essential because we wanted to observe how participants used the functionality and we wanted to have some idea of the features that they would use. Consequently, most of the examples given by SEs were not helpful, as it had been thought. Based on this, we modified the procedure as shown in Table 4.5 below.
Both procedures differed in that the original could be seen as going top-down while the modified as bottom-up. That is, the original started considering high level scenarios and tasks, and went down trying to identify the required features in the tool for solving the tasks. The modified, instead, started identifying real sequences of features that SEs perform and went up trying to link those sequences with real high level scenarios and tasks.
1. Get an experienced SE in the tool and its domain |
||
2. Take the collection of patterns found in the study of SEs work practices |
||
3. While (there are patterns) |
||
3.1 Take next pattern |
||
3.2 With the help of the SE, generate a task about something from the Company system that implements the pattern by using some features of the tool |
||
3.3 With the help of the SE, see if that task can be part of any existing scenario generated here
|
||
3.3 If (features used so far covers functionality that wants to be tested) then go to 4 |
||
4. End |
TABLE 4.5 Modified procedure for determining the tasks
We found that the modified procedure was easy to follow and produced a set of tasks complying with all the rules. Also, as we saw later, the tasks generated by it worked very well during the tests. Nevertheless, it is important to mention that the patterns were key for using the modified procedure. They represented real low-level tasks that SEs perform and therefore served to determine real sequences of using tool features.
Finding those sections of code was very difficult. We selected sections of the code based on suggestions from other SEs, but we could never be sure that such sections were completely unknown to all the participants. In fact, it happened during the sessions later that some participants knew the sections we chose. In order to prevent from possible problems and force the participants to use the tool we used the following tricks:
4.3 Thinking Aloud Usability Testing
4.3.1 Procedure Overview
Once having obtained the participants and tasks, the next part consisted of applying the thinking aloud usability testing technique following the procedure described in Chapter III. That is, the participants were asked to verbalize their thoughts while performing the tasks. The sessions were videotaped for later analysis. The tasks were given to them one at a time. An observer watched the participants and helped them when necessary. The observer took notes about usability insights noticed during the sessions. These notes were used later during the analysis of the videos. Once finishing the tasks, the participants were asked to fill a short questionnaire and debriefed for some minutes. The sessions were performed at the Company facilities using computer equipment similar to that with which the participants normally work. Novices received a 15-20 minutes tutorial before the session given by a SE member of the group supporting the tool within the Company.
A pilot study was performed before the sessions with the participants. Two developers of the tool participated in this test. They were asked to perform the tasks generated for the experiment. They had extensive knowledge of the tool and exploring software systems but no knowledge about the Company systems. Their sessions followed the same methodology described above but they didn't complete the questionnaire, were not debriefed and didnt receive the tutorial. This test revealed the necessity to make some changes to the tasks and a second version of them was created. Some new tasks were included in order to exploit more tool functionality, and some tasks were rephrased due to observed difficulties with their understandability.
Next, the first two participants performed their sessions. These were one novice and one expert participant. These sessions revealed certain things not noticed with the pilot study that made it necessary to do certain changes to the tasks again. Thus, a third version of them was created. This was the final version of the tasks and can be consulted in Appendix 3.
At this moment, the rest of participants performed their sessions. They were asked to do the third version of the tasks. It is important to mention that although the first two sessions were done using the second version of the tasks, they were fruitful in capturing many usability insights about the tool and those were included in the final analysis.
Once finishing the sessions with all the participants, the next step was to merge and summarize the information in a report. The annotations, videos and questionnaires provided useful information that was included in the report.
Finally, like in the heuristic evaluation, some sessions were scheduled so that developers and experimenter reviewed the problems together. For some problems, short video clips about them were presented. The clips showed the participants experiencing the problems.
As stated in the plan and told to participants, the videos and other information about them were all kept confidential. Only people involved in the usability study had access to that information. Also, only clips showing specific problems were watched during the sessions with developers.
4.3.2 Usability Insights obtained with the Thinking Aloud Usability Testing
Like with heuristic evaluation, much information about the usability of the tool was found with thinking aloud usability testing. Most of that information was usability problems that participants experienced with the tool but there was also information about user satisfaction, possible improvements, and insights about the utility of the tool. Also, this technique provided information about how expert participants were capable of using the tool functionality.
A total of seventy-two usability problems were identified and those can be consulted in Appendix 5. Thirty-eight of them (53%) had already been identified in the heuristic evaluation and were confirmed in this technique. Thirty-eight of the problems (53%) were about difficulties in learning the tool, fifty-four (75%) were about efficiency of use, and twenty (28%) about both (notice that a problem can be about learning and efficiency of use at the same time).
Learning problems were mostly about difficulties for (a) perceiving that the tasks could be achieved by using the tool, (b) finding all the necessary features to complete a task, confusions due to (c) misleading information provided by the tool and (d) behavior of the tool different than expected. Two examples of these problems are:
On the other hand, efficiency of use problems were mostly related with obstacles and difficulties for achieving the tasks in optimal ways. Many times, the participants were able to achieve the tasks but they made many unnecessary or non-optimal steps. One example of these problems is:
From the seventy-two problems, five (7%) were experienced by the eight participants, ten (14%) were experienced by more than six, and thirty-one (43%) were experienced by less than three. Two examples of these problems are:
Novice participants experienced forty-five problems (62%) and expert participants experienced forty-eight problems (66%). Also 20% of the problems were only experienced by novices, 7% were only experienced by experts, and the rest (73%) were experienced by both. Most of the problems experienced by novices (75% of them) were about learning the tool. Most of the problems experienced by experts (81% of them) were about efficiency of use. Some examples of these problems are:
According to the same classifications used in the heuristic evaluation, the problems were distributed as shown in Tables 4.6 and 4.7 below. Like in the heuristic evaluation, the biggest category of problems consisted of violations to the simple and natural dialogue guideline (Table 4.6). Its problems accounted for 61% of the problems found and most of them (48%) were about non-optimal functionality. The second biggest category of problems (22%) consisted of violations to the good feedback guideline. Some examples of these problems are:
Usability Guideline |
No Problems |
|
44 |
|
9 |
|
0 |
|
1 |
|
16 |
|
2 |
|
0 |
|
0 |
|
0 |
|
0 |
TABLE 4.6 Problems found in the Thinking Aloud Usability Testing
according to the usability guidelines
Category |
No Problems |
|
23 |
|
6 |
|
8 |
|
2 |
|
7 |
|
1 |
|
0 |
|
16 |
|
1 |
|
1 |
|
7 |
|
0 |
TABLE 4.7 Problems found in the Thinking Aloud Usability Testing
according to the second classification
An analysis of the problems revealed that many were consequences of the lack of systematic usability activities during the development of the tool. For example:
The questionnaire and debriefing were also productive. They revealed aspects about user satisfaction, utility of the tool and how it had been used so far. The number of participants was not big enough to generate a reliable statistical analysis. But the results were used to complement the other information and obtain a more accurate picture of the status of the tool. The questionnaire and average of the answers were as shown in Table 4.8 below. Among the most important insights were:
Question |
Answer |
1. Do you consider that learning the tool is: a) 0 = difficult, 4 = easy |
3.0 |
b) 0 = confusing , 4 = clear |
2.4 |
c) 0 = takes long, 4 = very fast |
2.6 |
2. How well do tool menus, options, etc. represent real things or actions that you need for exploring software systems like those you work with at the Company ? 0 = |
2.6 |
3. How well does the tool help you on typical sequences of actions for exploring software systems like those you work with at the Company ? 0 = |
2.9 |
4. How much are the tool features enough for your purposes of exploring software systems like those you work with at the Company ? 0 |
2.9 |
5. Do you consider that the tool interface (menus, windows, buttons) is: a) 0 = difficult to use, 4 = easy to use |
3.1 |
b) 0 = awkward to use, 4 = convenient to use |
2.8 |
c) 0 = slow to use, 4 = quick to use |
2.5 |
d) 0 = inefficient to use, 4 = efficient to use |
2.8 |
6. How helpful is the tool for you on maintenance tasks of software systems like those you work with at the Company ? 0 |
3.1 |
TABLE 4.8 Answers given by participants in the questionnaire
In general, the opinions were very homogeneous (standard deviation "stdev", around 0.5). Other interesting insights were:
An interesting insight arose from one of the expert participants who had learned the tool since it was created. He considered that the version used in the testing was not as helpful as some previous versions. He had learned how to perform his tasks on the first versions of the tool, and differences in the version used in the test (the latest version) had forced him to relearn how to accomplish the tasks on it. Also, not all the tasks possible to do in the previous versions could be done in this version. This made us see that changes in the features of the tool had not been properly analyzed and had affected the SEs. Also, this was another indication that SEs had not been monitored.
All the tasks were completed in the ten sessions (including the pilot study). However, certain tasks were completed in very inefficient ways. That is, not in the best way possible to complete them with the available tool functionality. This indicated that novices were not able to discover the best resources of the functionality and experts did not know many of them yet. For example, some tasks required looking for all the occurrences of a particular string in many files. The tool provided a feature for solving such task in one step. However, none of the participants used that feature and, instead, completed the tasks by using another feature that found occurrences of a string one by one within one file only. So, not knowing about the more powerful feature made that participants completed the tasks using the less powerful feature many times.
These observations along with information obtained from the debriefs with the expert participants, made us see that none of the experts knew all the tool functionality yet and no one had used many of the most advanced features in it. Therefore, because these participants were all the SEs who had used the tool during maintenance activities, that meant it was impossible for the KBRE project to assess the functionality of the tool at that moment. In other words, nobody in the group of SEs who were given the tool had used all the power of the functionality during maintenance activities yet.
The most common reasons why SEs had not used all the functionality were:
An interesting observation was that many things intended for experienced users of the tool, such as keyboard shortcuts, were rarely used (thats why there were not many problems with them). This was another indication that expert participants had not used all the functionality yet.
All these made us see how not having considered usability had caused poor learnability in the tool design, which in turn had caused that SEs never learned and used all the functionality during the past 1.5 years in which the tool had been available. Thus, making impossible for people in the KBRE project to see whether the experimental functionality of the tool could help SEs to achieve their goals more efficiently or not. In other words, making it impossible to assess the functionality.
On the other hand, participants expressed a positive attitude towards the tool. Novice participants commented on advantages they noticed between having the tool and manually exploring the Company systems. Expert participants commented on having received some benefits from the tool, particularly those who had used the tool for learning the Company systems. However, based on our observations about SEs needs we believe that if expert participants had known all the benefits possible to get from the functionality, they would have probably had a much better opinion about the utility of the tool. None of them had been aware of all the possible benefits so far.
We want to mention that at the end of each session, we instructed participants on how they could have achieved the tasks very efficiently. We saw that they easily learned the features involved in solving the tasks and made comments such as: "if at least somebody had told me about that feature before, I would have been using the power of this tool since long time ago". This made us realize that besides good learnability, other means for helping SEs at learning the system would have been very helpful for the KBRE project.
In general, the application of this technique greatly helped participants at learning the tool. Solving the problems posed by the tasks and instructing them on efficiently using the functionality for achieving those tasks made that they learned the core functionality of the tool and realized great benefits possible to get.
During the study, we saw that participants encouraged other SEs to start using the tool. This situation was very well received by the KBRE project, which had always been seeking to have SEs using the tool. This made us see that good usability could have generated positive attitudes in SEs learning the tool and those would have encouraged other SEs to learn it and use it, which in turn would have helped in the assessment of the functionality.
Finally, because nobody knew well all the tool functionality, it is likely that many usability deficiencies were not captured, particularly about efficiency of use. Finding more of this type of deficiencies required testing with SEs who knew the functionality better. This made us see that having the same participants from this test in other future tests could reveal more insights about efficiency of use.
4.3.3 Issues during the Thinking Aloud Usability Testing
The thinking aloud usability testing was in general easy to plan and perform but like in the other techniques, there were certain things particularly more difficult or different than expected. We encountered the following issues during this technique:
a) We found important differences between these participants and the developers that participated in the pilot study. We had thought that developers of the tool were similar enough to the participants and therefore appropriate for the pilot study. Developers were SEs like the participants and also had knowledge in exploring software systems (the tool domain), therefore they should behave similar to the participants. However:
These new ideas were used to modify the tasks and worked remarkably well in the rest of the experiment.
These differences between participants and developers made us realize that testing with SEs from the group who had been given the tool was essential. We found that knowledge in the particular Company system being explored with the tool had an important effect on participants' behavior. Also, knowledge in exploring the Company systems for maintenance purposes was very important. Just having knowledge in exploring software systems in general (the tool domain) was not enough to consider a certain SE as similar enough to the SEs who had been given the tool.
b) We found important differences between the participants in these first two sessions. The first participant had been identified as belonging to the expert category after the user and task analysis. He was a SEs who had been given the tool but he did not belong to the same Company group of the other participants. By looking at how he used the tool and the comments he made, we noticed that the tool was not very useful for him and probably neither to others in his group. This made us confirm the observations that differences among SEs in different Company groups made the tool not to be equally useful for all the groups.
On the other hand, we noticed that he was not really an expert in the tool as he had expressed during the interviews. Therefore, we had to consider his results as from a novice participant. Hence, the study ended having five novice and three experts participants instead of four in each category. This made us see that the real level of proficiency that he had with the tool had not been truly discovered in the user and task analysis but until we watched him using the tool.
These two previous insights (a and b) made us see that the real target population of users of the tool was not 'those SEs performing maintenance activities that followed the Just in Time Comprehension approach' as it had been originally defined. But rather, those SEs that performed exactly the type of maintenance activities of the particular group of SEs from which the tool had been mostly based.
On the other hand, the tasks obtained with the modified procedure worked very well. All the tasks could be completed in less that two hours and, as we had seen, many tasks typical of what the tool was designed for could have taken much longer than that.
The videotapes, on the other side, were extremely helpful at confirming aspects captured on the annotations and revealing many usability problems not observed during the sessions.
Again, the experimenter played a key role in these sessions. He had to actively help developers in many issues.
4.4 Other Insights and Issues independent of the Techniques
Up to now we have presented the particular results obtained with and during the different techniques applied in the study. Next, we present other results independent of the techniques.
Most problems were related to (a) simple and natural dialogue, (b) speak users' language, (c) consistency, and (d) good feedback. Many of these were effects of having designed the tool with insufficient information about complete SEs' tasks and working environment as well as user interface guidelines and standards. Many problems were the type of problems that normally appear on a first usability evaluation. We found that many could have been easily avoided with the application of certain user centered design activities, such as having used complete scenarios and tasks to drive design, having evaluated tool with prototypes and having followed user interface standards and guidelines more systematically.
Ninety-three problems (62%) were about deficiencies in learning the tool, eighty-seven (59%) about efficiency of use, and thirty-two (21%) about both (Figure 4.2).
FIGURE 4.2 Types of problems found using both techniques
These problems indicated that the tool design did not facilitate learning and using efficiently its functionality. In fact, as stated earlier, those problems had already affected SEs. None of them was capable yet to efficiently exploit all the functionality.
On the other hand, not having a high level goal in mind when solving the tasks during the demos had only shown a partial power of the functionality. That is, demos had only shown how the tool could be useful under particular circumstances.
We noticed that a permanent channel of communication between the project and SEs was key for having a group of SEs using the tool. The project had not established such channel for several reasons, such as, ignorance about its importance, lack of people involved in it, insufficient time and resources, etc. We found that the usability study worked extremely well for providing that channel.
Both techniques complemented each other very well. Each one provided different types of problems. Also, by using both, we could confirm certain problems and obtain a more reliable severity of them.
FIGURE 4.3 Percentage of problems found by the techniques
Although late in the tool lifecycle, having introduced usability at that time was worthwhile. The study revealed problems and issues unfeasible to solve, but it helped the project seeing how to proceed for assessing the functionality. Before the study, the project was facing the problem that SEs had not used the tool much and it was not known exactly why and what to do.
By the end of the study the project had passed from the skepticism stage to the acceptance stage, as described in Chapter II. We noticed that people in the KBRE project became aware of the following issues:
CHAPTER V
Conclusions
The present chapter presents the main conclusions and lessons learned from our research done through the usability study of the tool. These conclusions are organized according to the issues we were interested in the research. We provide as well a series of recommendations based on such conclusions and other insights from the research.
5.1 Detailed Conclusions
Following are the conclusions according to the three issues we were interested in the research (section 1.2).
5.1.1 Objective One
In regards to possible effects of not having considered usability when assessing the functionality of a system, we found the following things:
5.1.2 Objective Two
With regard to experimenting with the introduction of user centered design and usability into the latter stages of software projects in which developers are new to these concepts, we made the following observations:
Therefore, the person performing the study had to support developers in all these issues. We found that this type of support was not always easy to provide; producing the best results definitely required experience dealing with the above issues.
5.1.3 Objective Three
In regards to exploring particular challenges of studying the usability of program comprehension tools, we found the following things:
5.1.4 Other Conclusions
We also found the following things:
5.2 Recommendations
This research led to some recommendations. The following set of recommendations is for software projects developing a system in which its functionality will be assessed. They were derived from the conclusions discussed in section 5.1.1 above.
The following set of recommendations is offered for software projects that have started without usability activities but that want to initiate activities to look at and improve the usability of a system. They were derived from the conclusions discussed in section 5.1.2 above.
5.3 Summary
The research project presented here investigated several issues. First, it explored effects of not having considered usability when assessing the functionality of a particular program comprehension tool. This tool had been created to provide certain experimental functionality that its developers wanted to assess. For that, the tool had been given to a group of users for some time. Second, the research experimented with introducing usability into the software project that was creating the tool at a late stage of the lifecycle. Finally, the research explored challenges posed to studying the usability of the program comprehension tool.
A usability study was designed and performed to pursue the research. Three techniques were applied in the study: (a) heuristic evaluation, (b) user and task analysis and (c) thinking aloud usability testing. Heuristic evaluation served to look for usability deficiencies in the tool design. For this, a group of evaluators judged the tool according to a list of usability guidelines and principles. Thinking aloud usability testing served both (a) to look for problems that users experienced when learning and using the tool, and also (b) to explore how users who had been given the tool were capable of using its functionality. Both were achieved by observing a group of users performing some tasks typical of the tool's design intent. User and task analysis served to obtain a group of users and a set of tasks for the thinking aloud usability testing technique. It also served to gather information about how the users had employed the tool. The study followed a discount usability engineering approach.
The study was in general easy to plan and perform although certain things were more difficult than expected. Most difficulties were related to practical problems in planning and applying the techniques. It was difficult to find within the usability literature advice or examples of certain practical issues.
The study was very productive in finding information about all the objectives in the research within the particular software project. In summary, it revealed that none of the users who had been given the tool was capable yet of correctly using its functionality, and therefore, it was impossible to assess the tool functionality at that moment. Not having considered usability had been one of the causes of this. Also, the study exposed many issues in relation to (a) having started considered usability at a late stage in the tool lifecycle and (b) the software project's reaction to being exposed to usability for the first time. Finally, the study exhibited certain particularities and difficulties with planning and studying the usability of the program comprehension tool. In summary, the research project was satisfactory and accomplished all its objectives.
References
Bachman, D. (1989). A methodology for comparing the software interfaces of competitive products. Proceedings of the Human Factors Society 33rd annual meeting 1989, pages 1214-1217.
Bias, R., Mayhew, J. (1994). Cost-Justifying Usability. Academic Press.
Boehm, B., Gray, T., Seewaldt, T. (1984). Prototyping versus Specifying: A Multiproject Experiment. IEEE Transactions on Software Engineering 10, 3, pages 290-303.
Boehm, B. (1988). A Spiral Model for Software Development and Enhancement. Computer, May 1988, pages 61-72.
Ericsson, K., Simon, H. (1984). Protocol analysis: Verbal reports as data. MIT Press.
Denning, S., Hoiem, D., Simpsom, M., Sullivan, K. (1990). The value of thinking-aloud protocols in industry: A case study at Microsoft Corporation. Proc. Human Factors Society 34th annual meeting, pages 1285-1289.
Desurvire, H. (1994). Faster, Cheaper!! Are Usability Inspection Methods as Effective as Empirical Testing?. In Usability Inspection Methods. J. Nielsen and R. L. Mack Eds. John Wiley & Sons, New York, pages 173-202.
Ehrlich, K., Rohn, A. (1994). Cost Justification of Usability Engineering: A Vendor's Perspective. In Cost-Justifying Usability, D. J. Mayhew and R. G. Bias Eds. Academic Press, New York, pages 73-110.
Gaylin, B. (1986). How are windows used ? Some notes on creating an empirically-based windowing benchmark task. Proc. ACM CHI '86 Conf., pages 96-100.
Glen, David (1995). A case study on moving from a character-based full screen user interface to a graphical user interface. Master's thesis, California State University, Chico.
Gould, J. D., Lewis, C. (1985). Designing for Usability: Key Principles and What Designers Think. Communications of the ACM 28, 3, pages 300-311.
Hackos, J., Redish, J. (1998). User and task analysis for interface design. John Wiley & Sons.
Hix, D., Hartson, H. (1993). Developing User Interfaces: Ensuring Usability Through Product & Process. John Wiley & Sons, New York.
Jacobson, I., Booch, G., Rumbaugh, J. (1998). The Unified Software Development Process. Addison Wesley.
Jeffries, R., Miller, J., Wharton, C., and Uyeda, K. (1991). User Interface Evaluation in the Real World: A Comparison of Four Techniques. In Proceedings of the CHI '91 Conference on Human Factors in Computing Systems. ACM Press, New York, pages 145-151.
Jeffries, R. (1994). Usability Problem Reports: Helping Evaluators Communicate Effectively with Developers. In Usability Inspection Methods. J. Nielsen and R. L. Mack Eds. John Wiley & Sons, New York, pages 273-294.
Lewis, C., Rieman, J. (1993). Task-Centered User Interface Design: A Practical Introduction. University of Colorado, Boulder, Colorado.
Lethbridge, T. (1997). User Interface Design and Implementation SEG 3120 -course notes-; University of Ottawa.
Lethbridge, T., Anquetil, N. (1997). Architecture of a source code exploration tools: A software engineering case study. University of Ottawa. Computer Science Technical Report TR-97-07.
Lethbridge, T., Singer J., (1997). Understanding Software Maintenance Tools: Some Empirical Research. Workshop on Empirical Studies of Software Maintenance (WESS 97). Bari, Italy, October, 1997.
Lewis, C. (1982). Using the 'Thinking-Aloud' Method in Cognitive Interface Design. Research Report RC9265. IBM T. J. Watson Research Center, Yorktown Heights, New York.
Mayhew, J. (1991). Principles and Guidelines in Software User Interface Design. Prentice Hall.
Mayhew, J. (1999). The Usability Engineering Lifecycle. Morgan Kaufmann Publishers.
McKerlie, D., MacLean, A. (1993). Experience with QOC Design Rationale. In Adjunct Proceedings of the INTERCHI '93 Conference on Human Factors in Computing Systems, pages 213-214.
Nielsen, J. (1992a). Evaluating the thinking-aloud technique for use by Computer Scientists. In Hartson, H.R., and Hix, D. (eds.), Advances in Human-Computer interaction, Vol. 3, Ablex, Norwood, NJ., pages 69-82.
Nielsen, J. (1992b). Finding usability problems through Heuristic Evaluation. Proc. ACM CHI '92 Conf., pages 373-380.
Nielsen, J. (1993a). Usability engineering. AP Professional.
Nielsen, J. (1993b). Iterative User Interface Design. IEEE Computer 26, 11, pages 32-41.
Nielsen, J. (1994a). Enhancing the explanatory power of Usability Heuristics. Proc. ACM CHI'94 Conf., pages 152-158.
Nielsen, J. (1994b). Usability Laboratories: A 1994 Survey. Behaviour & Information Technology 13, 1&2, pages 3-8.
Nielsen, J. (1994c). Guerrilla HCI: Using Discount Usability Engineering to Penetrate the Intimidation Barrier. In Cost-Justifying Usability, D. J. Mayhew and R. G. Bias Eds. Academic Press, New York, pages 245-272.
Nielsen, J. (1994d). Heuristic Evaluation. In Usability Inspection Methods. J. Nielsen and R. L. Mack Eds. John Wiley & Sons, New York, pages 25-62.
Nielsen, J., Mack, R. (1994). Usability Inspection Methods. John Wiley & Sons.
Norman, D., Draper, S. (1986). User Centered System Design: New Perspectives on Human-Computer Interaction. Hillsdale, NJ: Erlbaum Associates.
Norman, D. (1990). The design of everyday things. Currency Doubleday.
Preece, J., Rogers, Y., Sharp, H., Benyon, D. (1994). Human-Computer Interaction. Addison Wesley.
Rosson, M., Carroll, J. (1995). Integrating Task and Software Development for Object-Oriented Applications. CHI 95 Proceedings, pages 377-384.
Shneiderman, B. (1998). Designing the user interface, Strategies for Effective Human-Computer Interaction. Addison Wesley. 3rd edition.
Singer, J., Lethbridge, T. (1997). Work practices as an alternative method to assist tool design in software engineering. University of Ottawa. Computer Science Technical Report TR-97-08.
Singer, J., Lethbridge, T., Vinson, N. and Anquetil, N. (1997). An Examination of Software Engineering Work Practices. CASCON '97, Toronto, October, pages 209-223.
Sommerville, I. (1997). Software engineering. Addison Wesley. 5th edition.
Storey, M.-A.D., Wong, K., Fong, P., Hooper, D., Hopkins, K., Müller, H.A. (1996). On Designing an Experiment to Evaluate a Reverse Engineering Tool. Proceedings of the 3rd Working Conference on Reverse Engineering, (WCRE'96), 1996, pages 31-40.
Storey, M.-A.D., Wong, K., Müller, H.A. (1997). How Do Program Understanding Tools Affect How Programmers Understand Programs. Proceedings of WCRE'97, 1997, pages 12-21.
Whitefield, A., Wilson, F., and Dowell, J. (1991). A framework for human factors evaluation. Behaviour & Information Technology 10, 1 (January-February), pages 65-79.
APPENDIX 1
The Tool before the Project
1)
____________________________________________________________________________________
2)
3)
______________________________________________________________________
4)
5)
______________________________________________________________________
6)
7)
______________________________________________________________________
8)
APPENDIX 2
Usability Problems found in the
Heuristic Evaluation
The following notation is used in the first row of the tables:
OW: Overall in the Interface
DW: about Dialog Windows opened by interface features
HW: related to the History Window
HiW: related to the Hierarchy Window
SW: related to the Source Window
TS: related with the Tool bar and Shortcuts
PW: related with the Preferences dialog Window
GG: related with the Global Grep feature and its window
1 = Cosmetic problem, fixing it should be given low priority.
2 = Minor problem, important to fix but can be given low priority.
3 = Major problem, important to fix and should be given high priority.
w = Wait to fix it until it is verified in the thinking aloud usability testing.
PROBLEMS:
OI |
Violated principle: Speak users' language -confusing labeling- |
Problem classification: L , Possible confusion |
US: 2-w |
Problem: There are two options labeled History and Hierarchy in the main menu. Likewise, two windows are labeled History and Hierarchy. This could suggest that features within the options in the main menu correspond to things or actions in those windows. However, only some features are intended like that. Novice users might get confused by having features affecting globally in the tool and others affecting locally within those windows. |
|||
Features with the problem: History->Delete selected state History->Hide history window Hierarchy->Load database Hierarchy->List files matching pattern Hierarchy->List routines matching pattern Hierarchy->List identifiers matching pattern Hierarchy->Global grep Hierarchy->New list with selection |
OI, v |
Violated principle: Minimize users' memory load |
Problem classification: L , Possible misinterpretation |
US: 2-w |
Problem: As mentioned in the previous problem, certain features within the options History and Hierarchy affect things in those windows only, however some of them have labels that could be interpreted affecting not only that window but other things in the tool as well. Therefore, users will have to remember the way they work. |
|||
Features with the problem: History->Add new state History->Delete selected state History->Update selected state History->Modify exploration state Hierarchy->New list with selection Hierarchy->Delete selected entries Hierarchy->Delete sublist Hierarchy->Find in this list Hierarchy->Go to line |
OI |
Violated principle: Simple and natural dialogue |
Problem classification: L , Lack of labeling |
US: 3 |
Problem: Features in the Source option in the main menu affect the Source window. However, such window doesn't present a label many times therefore making harder that users discover the relationship. |
|||
OI |
Violated principle: Minimize users' memory load |
Problem classification: L , Possible misinterpretation |
US: 2-w |
Problem: As mentioned in the previous problem, the features within the Source menu affect the Source window only, however some of them have labels that could be interpreted affecting not only that window but other things in the tool as well. Therefore, users will have to remember the way they work. |
|||
Features with the problem: Source->Information about selected item Source->Open in a file editor Source->Search for text Source->Go to line Source->Highlitght text |
OI |
Violated principle: Simple and natural dialogue -graphic design-, Consistency |
Problem classification: L , Graphical design |
US: 2 |
Problem: In the History window the label is left aligned and in the Hierarchy window is center aligned. This is a lack of consistency in the graphical design of the user interface. Good graphical design is known to help users at learning and using the interface faster and more efficiently. Also, consistency helps users to transfer knowledge from one part to another (e.g. the user can know how to use something new but similar). |
|||
OI |
Violated principle: Simple and natural dialogue -graphical design- |
Problem classification: L , Graphical design |
US: 2 |
Problem: The design of the History, Hierarchy and Source windows doesn't suggest a clear division among windows. For example, the bar at the top looks different in height. This is part of the graphical design of the user interface. |
OI |
Violated principle: Simple and natural dialogue |
Problem classification: E , Non optimal functionality |
US: 1 |
Problem: The History, Hierarchy and Source windows present scroll bars even when these are not necessary. Also, some scroll bars might be rarely used (e.g. the horizontal scroll bar in the History subwindow). It would be better to present scroll bars only when it is necessary. |
|||
OI |
Violated principle: Simple and natural dialogue |
Problem classification: L , Possible misinterpretation |
US: 3 |
Problem: The history states in the History window have the same icon that some objects in the Hierarchy window. However, they are not related at all. This could suggest a relation between both and confuse users. |
|||
Location observed: History window, history event Hierarchy window, grep result |
OI, v |
Violated principle: Speak users' language |
Problem classification: L , Possible confusion |
US: 2 |
Problem: The message at the bottom-right of the interface seems to inform about the Source window only, however, it presents information global in the tool. Also, this message doesn't have any label indicating its meaning. Users will have to deduce it themselves. |
|||
OI |
Violated principle: Simple and natural dialogue, Consistency |
Problem classification: L , Possible confusion |
US: 2 |
Problem: The message at the bottom-left of the interface seems to belong to the Hierarchy window. However, sometimes presents information about that window and others about the whole system. |
|||
Situations observed: When loading a database |
OI |
Violated principle: Speak users' language |
Problem classification: L , Lack of labeling |
US: 2 |
Problem: When loading a database, the message at the bottom-left of the interface displays a file with its path. There isnt a label indicating its meaning. Also, the same file name is displayed at the bottom-right at the same moment. Users will have to deduce the meaning themselves. |
|||
Observed: When loading a database |
OI |
Violated principle: Simple and natural dialogue |
Problem classification: L , E, Possible confusion |
US: 3 |
Problem: Using Options->Hide history window changes the main menu options. Changing options in a menu can degrade user learning and performance. Some users memorize system features by their location in the interface. It is usually better to gray out options not available in a certain moment than disappearing them from a menu. |
|||
Location observed: Options->Hide history window History->Hide history window History window pop-up menu->Hide history window |
OI, v |
Violated principle: Clearly marked exits |
Problem classification: E , Lack of functionality |
US: 3 |
Problem: There are not undo facilities for any actions in the tool. Users will want to go back from erroneous actions. This can degrade user learning and performance. On the other hand, there are certain actions in the system that can be reversed by doing other actions or tricks, however, users might not notice that. |
|||
Some locations observed: - Undo the execution of a query - Undo any kind of deletion |
OI, v |
Violated principle: Feedback response time-, Clearly marked exits |
Problem classification: E , Feedback |
US: 3 |
Problem: The time for stopping queries is sometimes very long. Users will feel trapped by the tool. They might click on the stop button several times trying to stop the query. Waiting long will affect their concentration and performance. |
|||
OI, v |
Violated principle: Feedback response time-, Clearly marked exits |
Problem classification: E , Feedback |
US: 3 |
Problem: The response time of the stop button is sometimes very long (the time it takes to indicate that the button is working). Like in the previous problem, users will feel trapped by the tool. They might click on the button several times trying to make it work. Waiting long will affect their concentration and performance. |
|||
OI, v |
Violated principle: Feedback |
Problem classification: L , E, Feedback |
US: 3 |
Problem: The feedback in the tool is not clear or properly supplied. The following are different situations where this was observed:
- When queries were stopped, the stop button didn't react immediately. - When the evaluator deleted long lists of items in the Hierarchy window. - When processing queries that took long. In this case, the system displayed a mouse clock. However, that only indicated that the system was doing the action but didnt indicate how longer it would take.
- Hierarchy->List files matching pattern - Hierarchy->List routines matching pattern - Hierarchy->List identifiers matching pattern |
OI |
Violated principle: Simple and natural dialogue, Consistency |
Problem classification: L , E, Possible confusion |
US: 3 |
Problem: The feature Options->History active doesn't work properly. It blocks the History window so that selecting history states doesn't refresh the other windows. However, some operations in the Hierarchy window that affect the history still work. Users will have problems learning and understanding this behavior. Also, this option might be better located within preferences rather than in the Options menu. |
|||
Location observed: Options->History active |
OI |
Violated principle: Consistency -standards- |
Problem classification: L , Lack of consistency |
US: 1 |
Problem: In the main menu, when the menu of an option is open, moving the mouse to another option highlights the other option but the same menu remains displayed and it is not changed to that of the new option. For example, open the History menu and then move the mouse to Hierarchy without clicking. The Hierarchy option is highlighted but the displayed menu is still the History menu. |
|||
Location observed: Main menu |
OI |
Violated principle: Simple and natural dialogue |
Problem classification: E , Lack of robustness |
US: 1 |
Problem: If the main window of the interface is shrunk, the interior windows (History, Hierarchy and Source) are not adjusted proportionally. Sometimes, if such window is enlarged back again, some of the interior windows remain shrunk, not proportional and not functional. Users will have to adjust the interior windows manually. |
|||
Situations observed: Specially observable with extreme shrinking |
OI |
Violated principle: Simple and natural dialogue |
Problem classification: E , Lack of robustness |
US: 2 |
Problem: There are no limits when resizing the interior windows (History, Hierarchy and Source). An interior window can be resized until it makes another window disappear, thus leaving the other one not functional. Users will have to adjust the interior windows manually. |
|||
Location observed: Specially observable with extreme resizing |
OI |
Violated principle: Simple and natural dialogue, Bug |
Problem classification: E , Wrong behavior |
US: 2 |
Problem: The tool accepts saving a history file with a name containing special UNIX characters like * or ?. After saving files like that, it is even possible to look at them through the windows for creating and opening history files. |
|||
Location observed: File->New history files File->Open history files File->Save current exploration |
OI, v |
Violated principle: Simple and natural dialogue, Consistency standards- |
Problem classification: E , Non optimal functionality |
US: 3 |
Problem: A name of a history file is always asked when creating a new exploration. This is not a problem itself, however it's is not a common procedure in other systems and combined with the problems below then it becomes an inefficient behavior of the system. |
|||
Location observed: File->New history files |
OI, v |
Violated principle: Simple and natural dialogue, Consistency -standards- |
Problem classification: E , Unnecessary functionality |
US: 2 |
Problem: When saving the current exploration, the name of a file is always asked. There is no feature for saving the exploration without asking a name. Most other systems implement a feature for that. Also, as indicated in the previous problem, the name of a history file has already been asked when creating the exploration. This problem is also present when the user wants to leave the system, create or open another history file, the tool always prompts for a name. The user will waste time attending this action each time the exploration is saved. In addition, the label for saving the exploration is File->Save current exploration, which doesn't suggest that a file name will be prompted. It would be better File->Save current exploration as ... |
|||
Location observed: File->Save current exploration |
OI, v |
Violated principle: Simple and natural dialogue, Consistency standards- |
Problem classification: E , Unnecessary functionality |
US: 2 |
Problem: When leaving the tool, creating or opening another history file, the system always prompts to save the current exploration. The user has always to attend this action even if the exploration hasn't changed and there is nothing to save. It would be better if the tool kept track of any changes made to the history and just prompt in that case. |
|||
Location observed: File->New history files File->Open history files File->Save current exploration File->Quit |
OI, v |
Violated principle: Simple and natural dialogue, Consistency -standards- |
Problem classification: E , Unnecessary functionality |
US: 2 |
Problem: The tool always prompts for confirmation when the user leaves the system. This is a waste of time for users that are already prepared to exit. It is better if the tool prompted the user just if there is anything that has to be saved. |
|||
Location observed: File->Quit |
OI |
Violated principle: Simple and natural dialogue -less is more- |
Problem classification: L , Possible confusion |
US: 2 |
Problem: Some features are repeated twice in different menus. This can confuse users because they won't know at first if those features at different locations are indeed the same feature. Also, it makes bigger the menus and therefore the user has more information to learn and remember. Finally, this is not very common in other systems. |
|||
Location observed: File->Load database Hierarchy->Load database Options->Hide history windows History->Hide history window |
OI |
Violated principle: Minimize users memory load |
Problem classification: L , Possible confusion |
US: 3 |
Problem: There are different features in different menus with exactly the same label. Users will have to notice that they are different features that work differently. |
|||
Location observed: Hierarchy->Go to line ... Source->Go to line ... |
OI, v |
Violated principle: Simple and natural dialogue, Minimize users' memory load |
Problem classification: L , E, Non optimal functionality, Feedback |
US: 3 |
Problem: All features in the interface look active all the time. There is no gray out of features that do not work at some moment. If a feature is active but doesnt work, it can affect on users performance. Users will have to learn by experience, what features work and what dont in different situations. |
|||
OI |
Violated principle: Consistency |
Problem classification: L , Lack of consistency |
US: 1 |
Problem: The labels and names of menus, buttons and windows, sometimes have the words starting capitalized and others dont. This is a lack of consistency in the graphical design of the user interface. Good graphical design is known to help users at learning and using the interface faster and more efficiently. Also, consistency helps users to transfer knowledge from one part to another (e.g. the user can know how to use something new but similar). |
|||
Some locations observed: File->Load database , and the dialog box that is opened Hierarchy->Global grep , and dialog box that is opened |
OI |
Violated principle: Consistency |
Problem classification: L , Lack of consistency |
US: 2 |
Problem: The labels of some features are different from the titles of the dialog windows they open. Some users, especially when learning a system, compare window titles with labels of the features to see if the windows opened come from those features. |
|||
Some locations observed: File->New history files File->Open history files File->Save current exploration File->Quit Options->Preferences History->Modify exploration state name Hierarchy->List files matching pattern Hierarchy->List routines matching pattern Hierarchy->List identifiers matching pattern Hierarchy->Find in this list Hierarchy->Go to line -it says "Goto"- Source->Search for text Source->Go to line -it says "Goto"- Help->About Tksee |
OI |
Violated principle: Consistency |
Problem classification: L , Lack of consistency |
US: 2 |
Problem: The labels of the help flags of some buttons from the tool bar do not correspond to the labels of the same features in the menus. Some users, especially when learning the system, compare those labels to establish relationships among buttons and features. |
|||
Location observed: Tool bar->Grep into the entire system Hierarchy->Global grep Tool bar->Routines I call (TREE) Routine middle-mouse button pop-up menu-> Routines I call TREE Tool bar->Routines that call me (TREE) Routine middle-mouse button pop-up menu-> Routines that call me TREE |
OI |
Violated principle: Speak users' language |
Problem classification: L , Bad labeling |
US: 1 |
Problem: Some dialog windows have messages within them. However, those messages alone or combined with the window titles do not always suggest users the purpose of the window. Its important to help users not just on what to do within a dialog window but also with what the window is for. For example, in Hierarchy->Find in this list the window title is Find window and the message inside is Enter regular expression. A better message might be something like Enter text to find in the exploration hierarchy. |
|||
Location observed: Hierarchy->Find in this list |
OI |
Violated principle: Speak users' language, Consistency |
Problem classification: L , Bad labeling |
US: 1 |
Problem: The following features have labels in plural, however they work on one object or thing only. The first two features below open dialog boxes with window titles in singular. |
|||
Location observed: File->New history files File->Open history files Options->Hide history windows |
OI, v |
Violated principle: Simple and natural dialogue, Consistency -standards- |
Problem classification: E , Non optimal functionality |
US: 2-w |
Problem: It's necessary to hold down the mouse button so that pop-up menus stay on the screen. This is or not a problem depending on other reasons, however it always requires more effort to the user. Also, this is not the standard practice in other systems. |
|||
Location observed: Pop-up menus in Hierarchy, History and Source windows |
OI |
Violated principle: Consistency |
Problem classification: L , E, Lack of consistency |
US: 2 |
Problem: The default colors in the interface are used inconsistently. The same color is used in different places for different meanings. |
|||
Some locations observed: - Blue is used in History window and sometimes in Source window as well |
OI, v |
Violated principle: Simple and natural dialogue, Consistency -standards- |
Problem classification: E , Lack of functionality |
US: 2 |
Problem: Some searching features work so that they search just from a certain point-down, they don't allow searching the rest of the information left above. Also, they don't allow searching bottom-up. In order to search a whole document, users have to go at the start of the document and then perform the search. Also, the dialog windows that these features open have a button labeled Find, but it might be better to label it as Find next as in other systems. |
|||
Some locations observed: Hierarchy->Find in this list Source->Search for text |
OI, v |
Violated principle: Simple and natural dialogue, Shortcuts -improper use- |
Problem classification: E , Non optimal functionality |
US: 1 |
Problem: The buffer for searching actions is the same for several features and is not cleaned from previous searches. For example, looking for a file and then opening the dialog window again to look for variable will present the input previously given when looking for the file. It might be better if just similar types of searches shared the same previous buffer. Also, previous inputs are not presented highlighted when dialog windows are opened, therefore, the users has to clean them manually character by character. |
|||
Some locations observed: Hierarchy->List files matching pattern Hierarchy->List routines matching pattern Hierarchy->List identifiers matching pattern Hierarchy->Find in this list Source->Search for text Hierarchy->Go to line ... Source->Go to line |
OI |
Violated principle: Error prevention |
Problem classification: E , Non optimal functionality |
US: 1 |
Problem: The following dialog windows keep input from previous occasions and it would become a problem if the user accidentally pressed the default action with such input present (e.g. this would start closing the current history file). |
|||
Location observed: File->Load database File->New history files File->Open history files Hierarchy->Load database |
OI, v |
Violated principle: Simple and natural dialogue |
Problem classification: L , Possible confusion |
US: 3-w |
Problem: It is possible to have several objects selected in the interface at the same time. Some features have labels referring to selected objects, however such labels do not clearly suggest what selected object(s) the feature refers to. Thus, it wont be easy for users to know what objects will be affected. |
|||
Location observed: History->Delete selected state History->Update selected state Hierarchy->New list with selection Hierarchy->Delete selected entries Source->Information about selected item |
OI |
Violated principle: Simple and natural dialogue, Error prevention |
Problem classification: L , E, Lack of robustness |
US: 3 |
Problem: There is a potential unnatural scenario with the databases and history files. It's not clear what will happen if having a database loaded, the user decides to open a history file that was not created using the same database. The tool should manage these possible erroneous situations and not expose the user to them. |
|||
OI |
Violated principle: Simple and natural dialogue |
Problem classification: L , Non optimal functionality |
US: 2-w |
Problem: Loading a new database creates a new history file, however this is not clearly informed. A user might not realize that and he will have to learn by experience. |
|||
OI |
Violated principle: Consistency |
Problem classification: E , Lack of consistency |
US: 1 |
Problem: The left and right arrow keys do not behave the same in the different windows and dialog windows. |
|||
Location observed: History, Hierarchy and Source windows Dialog windows |
OI |
Violated principle: Speak users' language |
Problem classification: L , Possible misinterpretation |
US: 3-w |
Problem: There are two windows in the interface that show a hierarchy of items (Hierarchy and History). However, the features in the Hierarchy menu only affect the hierarchy in the Hierarchy window. This could confuse users because they won't easily notice what hierarchy the features refer to. Changing the labels could help, for example, the Hierarchy menu and window could say Hierarchy of software objects, and the History window Hierarchical history of explorations. |
OI, v |
Violated principle: Minimize users memory load |
Problem classification: E , Non optimal functionality |
US: 3 |
Problem: The Hierarchy and History windows can contain very big and long hierarchies. Users will have to scroll a lot in order to navigate them. It is known that users are not good for managing big hierarchies presented as long lists. It would be better to have expansion and contraction facilities for those hierarchies. |
|||
Location observed: History and Hierarchy windows |
OI, v |
Violated principle: Simple and natural dialogue, Minimize users memory load |
Problem classification: E , Lack of functionality |
US: 3 |
Problem: In the Hierarchy and Source windows, there is a feature for jumping to a certain line specifying its number. However, the tool doesn't provide a way to know the number of a particular line, therefore making difficult for a user to know later what number he must enter in order to jump to that line. Also, even if the user enters a number to jump to certain line, he has to trust that the resulting line with the focus is the line corresponding to the number he entered. |
|||
Location observed: Hierarchy and Source menu |
OI, v |
Violated principle: Speak users' language |
Problem classification: L , E, Possible confusion |
US: 3-w |
Problem: Using "*" in some searching features don't give any result, however the tool does not inform about that. This behavior is due to the definition of regular expressions and how the system is built. Other systems don't work in this way. Users with other background in other systems will probably experience problems with that behavior. It's important to consider if the users of the tool are aware of regular expressions as well as if they use them in their work. Otherwise, users not familiar with them will probably have problems. |
|||
Location observed: Hierarchy->List files matching pattern Hierarchy->List routines matching pattern Hierarchy->List identifiers matching pattern |
OI, v |
Violated principle: Minimize users' memory load |
Problem classification: E , Lack of functionality |
US: 2 |
Problem: Users tend to forget how to construct regular expressions, so it would be possible that the tool gave a couple of examples in a pop-up dialog box to refresh peoples' memory (especially with previously used regular expressions). |
|||
Location observed: Searching features throughout the tool |
OI, v |
Violated principle: Simple and natural dialogue, Consistency -standards- |
Problem classification: E , Lack of functionality |
US: 1-w |
Problem: There are no edition facilities in the tool such as for copying and pasting. Thus, users have to rely on the operating system facilities for this. However, such operating system facilities might not be always known or easy to use. Many systems provide editing features so users might probably look for them in the tool. |
|||
OI, v |
Violated principle: Simple and natural dialogue |
Problem classification: E , Lack of functionality |
US: 2-w |
Problem: Users might be interested in other aspects of the objects displayed by the tool than the just the ones currently supported, for example types. |
|||
OI, v |
Violated principle: Simple and natural dialogue |
Problem classification: L , E, Non optimal functionality |
US: 3 |
Problem: Currently it is possible to make explorations of things that do not exist. However, the tool can know about some of these non-existing things and therefore it could provide clues so that users didnt waste time. For example, the tool could slightly change the color of the icons. Thus, a routine that had no callers could look different from one that had. |
|||
OI |
Violated principle: Consistency |
Problem classification: L , Lack of consistency |
US: 1 |
Problem: Some dialogues and messages use a different font than the rest of the system. This is not a serious problem but contributes to the good overall graphical design of the interface. |
|||
Location observed: File->Quit History->Modify exploration state name Hierarchy->List files matching pattern Hierarchy->List routines matching pattern Hierarchy->List identifiers matching pattern Hierarchy->Find in this list Hierarchy->Go to line ... Source->Search for text Source->Go to line |
OI |
Violated principle: Help and documentation |
Problem classification: L , Lack of functionality |
US: 2 |
Problem: Currently the only online help available is a small tutorial of the tool. However, that tutorial is does not describe the version of the tool that users have. |
|||
DW |
Violated principle: Consistency -standards- |
Problem classification: L , Lack of consistency |
US: 2 |
Problem: Some features open dialog windows but their labels don't have "...". This is the standard way in other systems to indicate that another dialog window will be open. |
|||
Location observed: File->New history files File->Open history files File->Save current exploration History->Modify exploration state name Hierarchy->List files matching pattern Hierarchy->List routines matching pattern Hierarchy->List identifiers matching pattern Hierarchy->Global grep |
DW |
Violated principle: Consistency -standards- |
Problem classification: L , Lack of consistency |
US: 2 |
Problem: Some features have "..." at the end but don't open a dialog window. |
|||
Location observed: History->Add new state ... |
DW |
Violated principle: Simple and natural dialogue -graphic design-, Consistency |
Problem classification: L , Graphical design |
US: 1 |
Problem: The spacing and alignment of features within some dialog windows is not good and consistent. Many things look cluttered even though there are not space constraints. Good graphical design is known to help users in learning and using the interface more efficiently. |
|||
Location observed: File->Load database File->New history files File->Open history files File->Save current exploration File->Quit Options->Preferences Hierarchy->Global grep |
DW |
Violated principle: Simple and natural dialogue, Consistency -standards- |
Problem classification: E , Lack of robustness |
US: 1 |
Problem: Some dialog windows can be resized without any limits. This is not the standard way in other systems and there is no meaning on allowing this. |
|||
Location observed: File->Load database File->New history files File->Open history files File->Save current exploration File->Quit Options->Preferences History->Modify exploration state name Hierarchy->Load database Hierarchy->List files matching pattern Hierarchy->List routines matching pattern Hierarchy->List identifiers matching pattern Hierarchy->Global grep Hierarchy->Find in this list Hierarchy->Go to line Source->Search for text Source->Go to line Help->About Tksee |
DW |
Violated principle: Simple and natural dialogue, Consistency -standards- |
Problem classification: E , Lack of robustness |
US: 2 |
Problem: Some dialog windows can be minimized. This is not the standard way in other systems and there is no meaning on allowing this. |
|||
Location observed: File->Load database File->New history files File->Open history files File->Save current exploration File->Quit Options->Preferences Hierarchy->Load database Help->About Tksee |
DW |
Violated principle: Consistency -standards- |
Problem classification: L , E, Lack of consistency |
US: 1 |
Problem: Some windows have the scroll bar on the left side. This is not the standard way in other systems. |
|||
Location observed: File->Load database File->New history files File->Open history files File->Save current exploration |
DW |
Violated principle: Simple and natural dialogue |
Problem classification: E , Non optimal functionality |
US: 2 |
Problem: The default size in some edit boxes is too small for the information that needs to be entered. That might force users to resize the window when entering the information. |
|||
Location observed: File->Load database File->New history files File->Open history files File->Save current exploration |
DW, v |
Violated principle: Simple and natural dialogue, Consistency -standards- |
Problem classification: L , E, Non optimal functionality |
US: 3 |
Problem: Some dialog windows are not well implemented. Some block the main window of the tool but can disappear behind it. Others don't disappear behind but dont allow working correctly on the main window while open. |
|||
Location observed: File->Load database File->New history files File->Open history files File->Save current exploration Options->Preferences History->Modify exploration state name Hierarchy->Load database Hierarchy->List files matching pattern Hierarchy->List routines matching pattern Hierarchy->List identifiers matching pattern Hierarchy->Global grep Hierarchy->Find in this list Hierarchy->Go to line Source->Search for text Source->Go to line Help->About Tksee |
DW, v |
Violated principle: Speak users' language, Consistency -standards- |
Problem classification: L , Possible confusion |
US: 3 |
Problem: Some dialog windows present a path-name edit box with a dot as default. This is not the standard way to express the current path in other systems. Users might have problems understanding its meaning. |
|||
Location observed: File->New history files File->Open history files File->Save current exploration |
DW, v |
Violated principle: Minimize users memory load, Consistency -standards- |
Problem classification: E , Lack of functionality |
US: 3 |
Problem: Directory paths and file names have to be entered manually in some dialog windows. There are not directory browsing facilities like in other systems. Also, there is no indication of the current path. Users will have to enter the whole path and names of files manually. They will also have to remember the current path location. |
|||
Location observed: File->Load database File->New history files File->Open history files File->Save current exploration Hierarchy->Load database |
DW |
Violated principle: Consistency -standards-, Bug |
Problem classification: E , Lack of consistency |
US: 2 |
Problem: The Tab key does not change the focus consistently throughout the tool options. The Tab key works but Shift-tab doesn't work. This is the standard way in other systems. Also, Shift-tab sometimes deletes the selected entry. |
|||
Location observed: File->Load database File->New history files File->Open history files File->Save current exploration File->Quit Options->Preferences History->Modify exploration state name Hierarchy->Load database Hierarchy->List files matching pattern Hierarchy->List routines matching pattern Hierarchy->List identifiers matching pattern Hierarchy->Global grep Hierarchy->Find in this list Hierarchy->Go to line Source->Search for text Source->Go to line Help->About Tksee -Tab inserts "\t"- |
DW |
Violated principle: Speak users' language, Bug |
Problem classification: E , Wrong behavior |
US: 3 |
Problem: Using the Tab key within the dialog windows moves the black rectangle representing the current focus through different options. However, pressing enter sometimes executes the default action of the window even though it does not have the focus. |
|||
Location observed: File->Quit |
DW |
Violated principle: Consistency |
Problem classification: L , Lack of consistency |
US: 2 |
Problem: Some dialog windows have the default button surrounded by a square and other windows don't. This convention is not used consistently. |
|||
DW, v |
Violated principle: Error prevention |
Problem classification: E , Non optimal functionality |
US: 2 |
Problem: Some dialog windows present a list of history or database files, and double clicking on them executes the default action of the window. However, this can become dangerous in certain situations such as when saving a history file. |
|||
Location observed: File->Save current exploration |
DW |
Violated principle: Error prevention, Simple and natural dialogue |
Problem classification: E , Non optimal functionality |
US: 3 |
Problem: The File->Load database dialog window shows all the files in the default directory, however not all files are valid databases that the tool can work with. The same is true for history files in the File->Open history files dialog window. Users might select wrong files that can produce unexpected tool behavior. |
|||
Location observed: File->Load database File->Open history files |
DW |
Violated principle: Consistency |
Problem classification: L , Lack of consistency |
US: 1 |
Problem: Most dialog windows have a Cancel button. However, some have a Close button instead but there is not a strong reason why using a different label is better. |
|||
Location observed: Hierarchy->Find in this list Source->Search for text |
HW |
Violated principle: Speak users' language |
Problem classification: L , Possible misinterpretation |
US: 3-w |
Problem: The concept of hierarchy in the History window could be interpreted wrong. For example, a child state could be interpreted as if it performed operations considering only the objects from the parent state. That is, operating over certain subset of objects from the whole database. However, that is not the way it works. Operations in a child state consider objects from the whole database. A child state simply means that it was created after (in time) its parent state but it is a complete state considering everything in the database. Better labeling and training would help users to understand the correct tool functioning. |
HW |
Violated principle: Speak users' language |
Problem classification: L , E, Possible misinterpretation |
US: 3-w |
Problem: A manually added state in the History window does not work as a real history state. It does not present objects from the database and any operations done in it will add new states in the history window. In other words, such state works just as a label to group history states. However, it presents the same icon as real history states, which doesn't suggest it is different. Users might not understand this behavior. Better labeling and different icons could help. |
|||
Location observed: History->Add new state |
HW |
Violated principle: Simple and natural dialogue |
Problem classification: L , E, Unnecessary functionality |
US: 3 |
Problem: The feature History->Update selected state doesn't do anything. |
|||
Location observed: History->Update selected state |
HiW, v |
Violated principle: Feedback, Bug |
Problem classification: E , Feedback |
US: 2 |
Problem: When using Hierarchy->Find in this list , the searched item is highlighted but the window is not always scrolled to display the selection. Thus, users will need to scroll and look for item in the Hierarchy window. This usually happens when just one item was found. |
|||
Location observed: Hierarchy->Find in this list |
HiW, v |
Violated principle: Feedback |
Problem classification: E , Feedback |
US: 2 |
Problem: When using Hierarchy->Go to line ,the matching line is not highlighted. Users will need to discover that the first line in the window at the top is the line matched. |
|||
Location observed: Hierarchy->Go to line |
HiW, v |
Violated principle: Feedback -misleading feedback-, Simple and natural dialogue |
Problem classification: L , E, Feedback |
US: 3 |
Problem: In the main window, the message at the bottom-left most times refers to the Hierarchy window. In that case, it does not indicate the status of the Hierarchy window but rather results from previous actions. It might not be clear to the users what those messages refer to. Also, information about previous actions might be useless to the users. When performing new actions users might not remember what the previous actions were. |
|||
HiW |
Violated principle: Error prevention, Feedback -response time- |
Problem classification: E , Non optimal functionality |
US: 2-w |
Problem: Clicking on an item in the Hierarchy window starts refreshing the Source window. However, source files can be very long and take long to be displayed. Also, clicking on something else while the refreshment is being done does not necessarily stop it. It might be common that users click on something they didn't want and therefore will have to wait until the refreshment finishes or stop it with the stop button. |
|||
HiW, v |
Violated principle: Feedback |
Problem classification: E , Feedback |
US: 3 |
Problem: Sometimes selecting a group of variables and pressing delete takes long time to finish, however, the tool does not provide feedback indicating that the operation is being achieved. Thus, users might think that the operation is not being achieved and might try to do it again. |
|||
Location observed: Hierarchy->Delete selected entries |
HiW, v |
Violated principle: Minimize users memory load, Simple and natural dialogue, Feedback -response time- |
Problem classification: E , Lack of functionality |
US: 2 |
Problem: The number of matches in a query can be very large and the query can take long to finish. It might be good to allow the user adjust the maximum number of results to display. |
|||
Location observed: Hierarchy window |
HiW |
Violated Principle: Speak users language, Consistency |
Problem classification: L , Possible misinterpretation |
US: 2-w |
Problem: Certain queries in the Hierarchy menu can be interpreted as if they searched just within the current list of objects in the hierarchy window. However, some of them work in this way but others search in the whole database and create a new state in the History window. Users might get confused by this and wont easily learn the way it works. |
|||
Location observed: Hierarchy->List files matching pattern Hierarchy->List routines matching pattern Hierarchy->List identifiers matching pattern Hierarchy->Global grep Hierarchy->New list with selection Hierarchy->Delete selected entries Hierarchy->Delete sublist Hierarchy->Find in this list Hierarchy->Go to line ... |
HiW |
Violated principle: Minimize users memory load |
Problem classification: L , Bad labeling |
US: 2 |
Problem: The labels of some deletion features could be interpreted as if they physically deleted the objects in the database. This is not true but users will have to learn this by experience. |
|||
Location observed: Hierarchy->Delete selected entries Hierarchy->Delete sublist |
HiW, v |
Violated principle: Speak users' language |
Problem classification: L , Bad labeling |
US: 1 |
Problem: The feature Hierarchy->Delete sublist can be misinterpreted. For example, it could be interpreted as if the currently selected item will be deleted, which in fact it wont. It might be better to label it Delete sub-hierarchy below selected. |
|||
Location observed: Hierarchy->Delete sublist |
HiW, v |
Violated principle: Feedback misleading feedback- |
Problem classification: L , E, Feedback |
US: 3 |
Problem: Some deletion features in the Hierarchy window remove objects in the hierarchy but leave the corresponding state in the History window unaffected. Therefore, the label of such history state does not correspond to the objects displayed in the Hierarchy window after having deleted. |
|||
Location observed: Hierarchy->Delete selected entries Hierarchy->Delete sublist |
HiW, v |
Violated principle: Simple and natural dialogue |
Problem classification: L , E, Non optimal functionality |
US: 2 |
Problem: Many important features are located in middle mouse button menus. It is known that such menus are hard to discover. Although they are sometimes used in other systems it is necessary to consider the trade-off involved. Also, the middle mouse button in a mouse with two buttons is implemented by clicking both buttons at the same time, which is hard to discover as well. Users wont easily discover these menus and therefore the features provided in them. |
|||
HiW, v |
Violated principle: Minimize users' memory load |
Problem classification: L , E, Non optimal functionality |
US: 3 |
Problem: The tool provides several different menus depending on (a) where the mouse is located, (b) what mouse button is clicked and (c) what objects are highlighted. It'll be hard for the users to remember which buttons have to be clicked in order to bring a desired menu. |
|||
Location observed: Hierarchy menu Middle mouse button menus |
HiW |
Violated principle: Shortcuts |
Problem classification: E , Lack of functionality |
US: 1 |
Problem: Some features of the tool can only be accessed through middle-mouse button menus. Users that not discover these menus will never discover the features. It would be better to have other ways to access them. |
|||
Location observed: File middle-mouse button pop-up menu->Included files File middle-mouse button pop-up menu->Files that include me File middle-mouse button pop-up menu->Defined variables File middle-mouse button pop-up menu->Reported problems File middle-mouse button pop-up menu->Referred activities File middle-mouse button pop-up menu->Referred technical terms Routine middle-mouse button pop-up menu->File defining me Routine middle-mouse button pop-up menu->Referred variables Routine middle-mouse button pop-up menu->Reported problems Routine middle-mouse button pop-up menu->Referred activities Routine middle-mouse button pop-up menu->Referred technical terms Variable middle-mouse button pop-up menu->Files using me Variable middle-mouse button pop-up menu->Routines using me |
HiW, v |
Violated principle: Feedback -misleading feedback- |
Problem classification: E , Feedback |
US: 3 |
Problem: Sometimes selecting an object in the Hierarchy window doesn't refresh the Source window. Different behaviors were noticed when using different databases. |
|||
HiW |
Violated principle: Feedback misleading feedback- |
Problem classification: L , E, Feedback |
US: 3 |
Problem: In the Hierarchy window, selecting a routine and using Routines I call and its equivalent TREE feature leads to having the child routines displayed twice. The same is true for Routines that call me and its equivalent TREE feature. Users might get confused with repeated information in the Hierarchy window. They will have to discover that it is only repeated information. |
|||
HiW |
Violated principle: Feedback misleading feedback- Error prevention |
Problem classification: E , Feedback |
US: 3 |
Problem: The feature to see the routines contained in a file displays the routines alphabetically. However thats not the order they are within the file. Users could wrongly assume that is the real order. |
|||
Location observed: File middle-mouse button, pop-up menu->Routines in me |
HiW |
Violated principle: Speak users' language |
Problem classification: L , Possible misinterpretation |
US: 3 |
Problem: In the middle mouse pop-up menus, the Grep feature could be misinterpreted. For example, its not clear what objects it will involve. It might be better to change the label for Grep in selection instead of Grep.... |
|||
Location observed: File middle-mouse button pop-up menu->Grep ... Routine middle-mouse button pop-up menu->Grep ... |
HiW |
Violated principle: Simple and natural dialogue less is more- |
Problem classification: E , Non optimal functionality |
US: 2 |
Problem: The Grep feature gives the possibility to change the grep command that is executed. It is not likely that users will frequently change that. A better alternative would be to move the option into the preferences dialog window. |
|||
Location observed: File middle-mouse button pop-up menu->Grep Routine middle-mouse button pop-up menu->Grep |
HiW, v |
Violated principle: Speak users' language |
Problem classification: L , Possible confusion |
US: 3 |
Problem: The name of the auto-grep feature is not a known term and its meaning is not very clear. Also, the way it has to be operated is not very easy to understand. Changing the labeling might help, for example Grep for x in y instead of Autogrep (where x and y are dynamically specified). |
|||
Location observed: File middle-mouse button pop-up menu->Autogrep Routine middle-mouse button pop-up menu->Autogrep Variable middle-mouse button pop-up menu->Autogrep |
SW |
Violated principle: Speak users' language |
Problem classification: L , Possible misinterpretation |
US: 1 |
Problem: The label Open current file in a text editor does not clearly suggest what the feature does and it can be misinterpreted. For example, a novice user might think it would open the history file. |
|||
Location observed: Source->Open file in editor |
SW |
Violated principle: Simple and natural dialogue |
Problem classification: L , Unnecessary functionality |
US: 2 |
Problem: The feature Source->Highlitght text doesn't work anymore but it is still there. Users will try to use any features available in order to solve their tasks. Every extra feature in the system is something more that users will have to learn and remember. If a feature is there but doesnt work, it will make harder learning the tool. |
|||
Location observed: Source->Highlitght text |
SW |
Violated principle: Speak users' language, Consistency -standards- |
Problem classification: L , Possible misinterpretation |
US: 1 |
Problem: In the Source window, the information at the top of the window looks like editable but is not. The reason for this box is that the information might be copied and pasted, however its always better to use widgets for its intended purposes. Users who know how that widget works in other systems will try to use it in the way it works in other systems. |
|||
Location observed: Source window |
SW |
Violated principle: Simple and natural dialogue |
Problem classification: L , Possible confusion |
US: 1 |
Problem: The label Source in that window suggests that source code will be displayed in it. However, no source code is displayed in the case of selecting a variable in the Hierarchy window, therefore Source is not a very good label for the window. |
TS |
Violated principle: Shortcuts, Simple and natural dialogue |
Problem classification: E , Lack of functionality |
US: 1 |
Problem: The tool is mouse dependent. It is not possible to navigate through the different interface elements with the keyboard. Some examples are:a) Certain important operations don't have a keyboard shortcut. For example, Global grep, opening a Source Code file, etc. b) The Tab key doesn't work consistently changing the focus in the interface. c) It is not possible to access the menus through the keyboard. |
|||
TS |
Violated principle: Minimize users' memory load, Error prevention |
Problem classification: L , E, Possible confusion |
US: 3 |
Problem: Some different features in different menus have the same keyboard shortcut. The same shortcut works different depending on the context established by the current focus of the mouse. Users will have to learn that and always remember the current context in order to use the shortcuts. This presents extra effort to users and is also prone to mistakes. |
|||
Location observed: Hierarchy->Find in this list Source->Search for text Hierarchy->Go to line ... -related with the previous problem- Source->Go to line ... -related with the previous problem- |
TS |
Violated principle: Simple and natural dialogue -less is more-, Shortcuts |
Problem classification: E , Non optimal functionality |
US: 2 |
Problem: It is not clear why the selection of the buttons presented in the Tool bar is adequate and enough. Certain important features don't have a button and some actions that are not very important or frequent have a button (e.g. creating a new history file might not be very frequent but it has a button). |
|||
TS |
Violated principle: Simple and natural dialogue |
Problem classification: L , E, Possible misinterpretation |
US: 3 |
Problem: In the middle group of buttons, the icons of the first and third buttons (left-to-right) suggest they perform opposite actions. However, this is not always true. In the case of working with routines they perform opposite operations but not in the case of files. In this last case, the third button doesn't even work. Also, the help flag in the first button always informs that it works on files. |
|||
Location observed: Tool bar, middle group |
TS |
Violated principle: Simple and natural dialogue less is more- |
Problem classification: L , Graphical design |
US: 1 |
Problem: There is a little arrow in the upper-left corner of the help flags. It is most times hidden back and mixed with the mouse. It is not useful at all and might distract users a bit. |
|||
TS |
Violated principle: Simple and natural dialogue -graphic design- |
Problem classification: L , Graphical design |
US: 3 |
Problem: The icons for List files matching pattern, List routines matching pattern, List identifiers matching pattern are not very descriptive of the operations they perform. Users might not easily see how they work. |
|||
TS |
Violated principle: Error prevention |
Problem classification: E , Non optimal functionality |
US: 1 |
Problem: The exit button is very close to the stop query button. Users could accidentally press it when trying to stop the processing of a query and then start exiting from the tool. |
TS |
Violated principle: Simple and natural dialogue -graphic design- |
Problem classification: E , Non optimal functionality |
US: 1 |
Problem: The icon for stopping queries is very far from the place where the queries are started. Users will have to make long mouse movements whenever they use it. This is not a serious problem but will render users' performance. |
|||
TS |
Violated principle: Simple and natural dialogue -less is more- |
Problem classification: E , Lack of robustness |
US: 1 |
Problem: Contracting the History window affects the shape of the tool bar. Also, it is possible to resize the history window from the top or from the bottom, however one way would be enough. |
|||
TS |
Violated principle: Consistency -standards- |
Problem classification: L , Lack of consistency |
US: 1 |
Problem: The icons for new, open and save history are on the right, however the corresponding operations in the main menu are on the left. This is not the way other systems implement it. Users with experience in other systems will probably look for these buttons at the left under its menu option. |
|||
TS |
Violated principle: Speak users' language, Simple and natural dialogue -graphic design- |
Problem classification: L , Graphical design |
US: 2 |
Problem: The icon for opening a Source Code file in an editor is very similar to the one for creating a new history file. However, both operations are completely different. It won't be easy for users to learn the difference. |
|||
TS |
Violated principle: Speak users' language |
Problem classification: L , Bad labeling |
US: 1 |
Problem: The help flag of the icon for opening a Source Code file doesn't suggest which type of file will be opened (e.g. whether source code or history file). |
|||
Location observed: Tool bar->Open current file in an editor, Help flag |
PW |
Violated principle: Simple and natural dialogue -graphic design- |
Problem classification: L , Graphical design, Bad labeling |
US: 3 |
Problem: This dialog window presents several graphic design problems. Some of them are:
Problem a) is more critical because users can have problems understanding the features of the tool. Problems b) and c) are not very serious but contribute to the good overall graphical design of the interface. Good graphical design is known to help users at learning and using the interface more efficiently. |
|||
PW |
Violated principle: Simple and natural dialogue -graphic design-, Speak users' language |
Problem classification: L , Graphical design |
US: 1 |
Problem: Many features are not grouped properly. For example, (a) some group boxes contain just one option, (b) it is no clear that certain groupings are the best possible, (c) certain related features are not grouped together, etc. These are not serious problems but contribute to the good overall graphical design of the interface. |
PW |
Violated principle: Speak users' language |
Problem classification: L , Bad labeling |
US: 2 |
Problem: Under the General Preferences option, the label External Development tools doesn't clearly suggest what it is for, what tools it refers to, etc. |
|||
PW |
Violated principle: Simple and natural dialogue -graphic design- |
Problem classification: L , Non optimal functionality |
US: 1 |
Problem: The type of drop-down list currently used for selecting options (e.g. fonts, sizes, etc.) is not the best widget that could be used. It might be better to use another like the one used in Microsoft word, for example. This is not a serious problem but contributes to the good overall graphical design of the interface. |
|||
GG |
Violated principle: Consistency -standards- |
Problem classification: L , E, Lack of consistency |
US: 1 |
Problem: The radio buttons in the Global-grep feature are not used according to the standards. This type of buttons is normally not used for representing exclusive or. This is not a serious problem but contributes to the good overall graphical design of the interface. |
|||
GG |
Violated principle: Simple and natural dialogue, Bug |
Problem classification: L , Non optimal functionality |
US: 1 |
Problem: The dialog window displayed when executing this feature is opened very slowly and grows incrementally. This is not a serious problem but will distract the users. |
|||
GG |
Violated principle: Simple and natural dialogue -graphic design- |
Problem classification: L , E, Graphical design |
US: 1 |
Problem: This window doesn't use the group boxes properly. The first group box has too many group boxes nested together. The group box at the bottom contains just one item. This is not a serious problem but contributes to the good overall graphical design of the interface. |
|||
GG, v |
Violated principle: Simple and natural dialogue |
Problem classification: L , E, Possible confusion |
US: 3 |
Problem: The way that the Global grep feature works is not very easy to understand from the design of its dialog window. For example:
|
|||
APPENDIX 3
Tasks used in the
Thinking Aloud Usability Testing
(final version)
APPENDIX 4
The Tool before the Thinking Aloud Usability Testing
(including changes after the Heuristic Evaluation)
1)
Change |
Description |
Before |
After |
1 |
Change of label (solution to problem 33, Appendix 2) |
File->New history files |
File->New History File... |
2 |
Change of label (solution to problem 33, Appendix 2) |
File->Load history files |
File->Load History File... |
2)
_____________________________________________________________________
3)
Change |
Description |
Before |
After |
3 |
Feature removed (solution to problem 12, Appendix 2) |
History -> Hide history window |
None |
_____________________________________________________________________
4)
Change |
Description |
Before |
After |
4 |
Feature removed (solution to problem 26, Appendix 2) |
Hierarchy -> Load data base ... |
None |
5)
Change |
Description |
Before |
After |
5 |
Feature removed (solution to problem 92, Appendix 2) |
Source -> Highlight text |
None |
6)
______________________________________________
7)
Change |
Description |
Before |
After |
6 |
Feature added (solution to problem 49, Appendix 2) |
None |
Hierarchy window, Routine object, Middle mouse button -> Defined Variables |
7 |
Feature added (solution to problem 49, Appendix 2) |
None |
Hierarchy window, Routine object, Middle mouse button -> Defined Types |
8 |
Feature added (solution to problem 49, Appendix 2) |
None |
Hierarchy window, Routine object, Middle mouse button -> Referred Types |
_____________________________________________________________________
8)
Change |
Description |
Before |
After |
9 |
Feature added (solution to problem 49, Appendix 2) |
None |
Hierarchy window, Variable object, Middle mouse button -> Item(s) Defining Me |
APPENDIX 5
Usability Problems found in the
Thinking Aloud Usability Testing
The following table shows the times during the sessions with the participants.
Session No. |
Tasks time |
Session time |
Participant Type |
1 |
1:33 hr |
1:55 |
Novice |
2 |
0:57 hr |
1:12 hr + 17 min tutorial |
Novice |
3 |
1:22 hr |
1:48 hr + 17 min tutorial |
Novice |
4 |
0:44 hr |
0:58 hr + 17 min tutorial |
Novice |
5 |
1:32 hr |
1:48 hr + 17 min tutorial |
Novice |
6 |
0:51 hr |
1:05 |
Expert |
7 |
1:02 hr |
1:15 |
Expert |
8 |
0:56 hr |
1:20 |
Expert |
Novices only |
28 |
problems |
|
Experts only |
9 |
problems |
|
Both |
35 |
problems |
|
TOTAL |
72 |
problems |
The following notation is used in the first row of the tables:
OW: Overall in the Interface
DW: about Dialog Windows opened by interface features
HW: related to the History Window
HiW: related to the Hierarchy Window
SW: related to the Source Window
TS: related with the Tool bar and Shortcuts
PW: related with the Preferences dialog Window
GG: related with the Global Grep feature and its window
PROBLEMS:
OI |
Problem observed in: 2 experts |
Short description: E , Problems with nested routines |
Problem: The tool didn't work very well with nested functions/procedures.
|
||
OI |
Problem observed in: 1 expert |
Short description: L , The term opq is not known by everybody |
Problem: Not all experts knew about opq, therefore not all understood well the names of the different databases that could be loaded. |
||
OI |
Problem observed in: 2 novices, 3 experts |
Short description: E , Problems with Go to line ... features |
Problem: There were several observations with the Go to line ...features. First of all, the tool didnt indicate line numbers, therefore, it was very hard to find the number of a specific line. Normally, when a user wants to go to a certain line number is because he knows that in such line there is something he is looking for. During the testing participants didn't use line numbers as a way to locate information. Experts hadn't even noticed the existence of Go to line ...features. In one task they were asked to go to a certain line number in the Source window. Most were able to do it because they found the feature during the session. However, it seemed that in general they had not used the feature:
|
||
OI EE |
Problem observed in: several users, 1 novice commented |
Short description: L , Tool labels not according to users concepts |
Problem: In their work users know about files, procedures, functions, variables and types, however:
Because of this some participants didn't know exactly what those features were going to do. In general, participants tended to briefly scan the labels in the interface and match them with their concepts. Just after several unsuccessful tries, participants more carefully read and tried to understand the labels. |
||
OI |
Problem observed in: 1 novice |
Short description: E , Users are unnecessarily asked to name a history file when it is created |
Problem: Whenever participants created a history file, the tool asked to name it. However, this was unnecessary work:
|
||
OI |
Problem observed in: 1 novice |
Short description: E , Name of the current history file is not always seen or understood |
Problem: Participants were asked to create a history file and name it using their names. Also, they were asked to save the exploration on such history file several times during the session. One participant incorrectly entered the name of the file in the Path name field and saved the exploration. He never realized that the exploration had being saved with the default name and not with his name. Later, he was asked to start the tool again and load his history file. The default history file was loaded automatically and he saw his exploration on the windows. Again, he never realized that the exploration was named with the default name and not with his name. All the time a label indicating the name of the history file containing that exploration (e.g. default) had been displayed at the top of the History window. Therefore, he either didnt see the label or never understood it. |
||
OI |
Problem observed in: 1 novice noticed that |
Short description: E , What's the meaning of loading a database and continue with the same history file ? |
Problem: When users load a database they have the option of continuing with the same history file. However, one participant following that option didn't understand if all previous information in the exploration would be kept or overwritten. In a similar way, if a user starts the tool for the first time, what would be the meaning of the "same" history file ? |
||
OI |
Problem observed in: 2 novices |
Short description: L , The label history is displayed in several places in the tool and confuses users |
Problem: The options for the History file reside within the File menu. However, there is another menu called History that misled participants. Participants were asked to create a new history file and some decided to open the History menu and look in it for an option to create a history file. Specially when learning, participants noticed different places with the label History and they didn't understand the differences very easily. |
||
OI |
Problem observed in: 1 expert |
Short description: E , Strange behavior of the tool when saving exploration |
Problem: One participant when saving his exploration entered a name in the dialog window and pressed the button for saving. Then, all the information in the tool was blanked for one second and came back again. Because it had been fast, it didn't confuse the participant a lot but he noticed this strange behavior. |
||
OI FF |
Problem observed in: 2 novices |
Short description: E , Problems copying and pasting |
Problem: There were several problems observed when participants tried to copy and paste. The facilities to do that were implemented by the operating system and not by the tool, therefore:
|
||
OI |
Problem observed in: 3 novices, 3 experts |
Short description: E , Some dialog windows inefficiently block the tool |
Problem: Some dialog windows partially and inefficiently blocked the tool while they were opened. While the dialog window were opened participants could still select certain things in the main window, however no refreshment of information was done in the Source window as it is normally done when there was no dialog window. Many participants tried to continue working while a dialog window was open, but they were confused when certain things worked and others didn't. It wasn't obvious for them that closing the dialog window would unblock the tool. In summary, some dialog windows that were supposed to block didnt block everything, and others supposed to allow working while open didnt fully allow it. |
||
Situations observed: |
OI |
Problem observed in: 1 novice commented that |
Short description: E , Does loading a history file loads the correct database ? |
Problem: This was not an problem but something a participant asked, when loading a history file is the corresponding database loaded as well ? |
||
OI CC |
Problem observed in: 2 novices |
Short description: L , How to combine the functionality of the Hierarchy window and Source window is not always obvious |
Problem: Much of the power of the tool resides in combining functionality between the Source and Hierarchy windows. However, for some novices it wasn't obvious how to combine that functionality in order to solve a task. For example, it wasn't obvious for them that if something was highlighted in the Source window and Information About Selected Item was used, then the information would appear in the Hierarchy window. Also, it was not obvious that they would have to click on the new object in the Hierarchy window so that the information was displayed in the Source window. This seemed to be obvious once they knew it but they required time to understand it. |
OI |
Problem observed in: 1 novice |
Short description: L , Relationship between main menus and windows not noticed |
Problem: Participants not always noticed a relationship between main menus and windows. |
||
Situation observed: |
OI |
Problem observed in: 2 novices |
Short description: L , Some features have the label selected and mislead users |
Problem: Some features had labels referring to selected things. Participants were misled by that several times, such as:
|
||
Situation observed: 1) The gray color for the shadow area 2) The blue color for selections done with the mouse Therefore some participants tried to use Information About Selected Item, but they were not sure whether the feature would display information about the shadow area or the selections with the mouse. |
OI |
Problem observed in: 5 novices, 3 experts (all users) |
Short description: L , Long in dialog windows not always read in detail and lead to inefficient performance |
Problem: Many dialog windows had titles and messages below the tittle bar. These messages and titles were scanned and rarely read in detail. For example, when reading "Enter regular expression", participants noticed they had to enter something but they rarely realized that the system expected a regular expression. At first, participants just scanned the messages and entered something. Just after several unsuccessful tries, participants more carefully read and tried to understand what the labels said. |
||
OI HH |
Problem observed in: 1 novice, 1 expert |
Short description: L , E, Problems with regular expressions |
Problem: Participants experienced different types of problems in features requiring regular expressions:
In conclusion, participants couldn't always fully exploit those features and they wasted energy and time. |
||
OI |
Problem observed in: several users |
Short description: L , E, Poor feedback while processing |
Problem: In some situations when the processing took long, participants didn't know if the system was still processing or something had happened. The tool didnt provide feedback or it had not been noticed by participants. In both cases, participants looked at the clock mouse and sometimes the messages at the bottom. They sometimes got desperate and started clicking in other places. |
||
Situations observed: |
OI II |
Problem observed in: several users |
Short description: L , E, Bad feedback after actions finish |
Problem: The feedback given by certain features when actions had finished was not easy to notice. Participants clicked on those features waited for something to happen. The features finished and displayed gave some feedback, however participants didnt notice it and kept waiting for some time. |
||
Situation observed: |
HiW II |
Problem observed in: 3 novices, 2 experts |
Short description: L , E, Poor feedback when there are no results |
Problem: Sometimes participants didn't notice when actions had finished with empty results. When participants didn't notice any change in the interface they scrolled the windows to identify any changes in the information. Some executed the action again several times to convince themselves that there had not been any results. Participants developed the concept of not trusting the feedback given by the tool. |
||
OI |
Problem observed in: several users, 1 expert commented that |
Short description: E , The tool doesn't run in the background by default |
Problem: The tool didn't automatically run on the background. Many participants started the tool from an operating system terminal and most typed an "&" in order to free the terminal. One participant commented that it was probably better to implement that the tool automatically run in the background. |
||
OI AA |
Problem observed in: 1 novice, 3 experts |
Short description: E , Messages in the terminal distract and mislead users |
Problem: Many participants had an operating system terminal opened when they were using the tool. They noticed all debugging messages sent to the terminal. Many times the messages said things like not found, etc. Participants tended to think that these messages were created by the actions they were doing and therefore there were problems. However, basically none of these messages was concerned with the tool but affected participants' attention. |
||
OI AA |
Problem observed in: 3 novices, 1 expert |
Short description: E , Tcl/Tk error messages confuse the users |
Problem: Sometimes Tcl/Tk generated error messages that were displayed on the screen. These messages affected participants' attention. Participants not always understood what the messages meant and confused some participants. It would be better to instruct Tcl/Tk to send this messages to a Log file and don't present them to the users. |
||
OI |
Problem observed in: 3 novices, 2 experts |
Short description: E , Tksee doesn't have undo facilities |
Problem: Participants tried to undo actions they did, especially after erroneous actions. However, the tool did not provide such facilities. Common situations were:
|
OI |
Problem observed in: 2 novices |
Short description: E , Many windows are displayed when loading a database |
Problem: When loading a database, participants had to deal with many windows. There was a window for selecting the database, another one warning about creating or not a new history, and finally another for giving the name of the history file. This problem was due to the tool design requiring to specify the name of a history file at the moment it was created. |
||
OI |
Problem observed in: several users |
Short description: E , Users unnecessarily have to specify filename when saving an exploration |
Problem: When saving an exploration, the tool required participants to specify a name for the history file. However, such file already had a name. It had been required when the file was created. |
||
OI |
Problem observed in: 3 novices, 1 expert |
Short description: E , Problems at exit |
Problem: There were two different situations when participants exit from the tool:
|
||
OI BB |
Problem observed in: 3 novices, 1 expert |
Short description: L , Discovering all the possible pop-up menus is very hard and not always done |
Problem: Discovering all the possible pop-up menus in the tool interface was very hard. Participants learning the tool didn't discover certain menus in some windows, particularly those provided by the middle mouse button. Novices required long time before discovering these menus and experts had problems remembering them. Not discovering those menus meant that participants didn't use the features in them and therefore many tasks were completed in very inefficient ways. It's important to mention that in all the sessions none of the participants discovered and used the most powerful features, even experts who had used the tool before achieved some tasks in very efficient ways (nobody efficiently used the Autogrep and Grep features, for example). |
OI |
Problem observed in: 3 novices, 1 expert |
Short description: E , Mouse buttons need to remain pressed so that pop-up menus stay |
Problem: Participants required time for looking and exploring the different features in the pop-up menus. Many times they accidentally released the mouse button while observing a menu, thus disappearing the menu. Keeping the mouse button pressed for a long time was hard for participants. Also, keeping it pressed and moving the mouse in order to select something was very hard as well. |
||
OI |
Problem observed in: 1 novice |
Short description: E , Right numbers in the keyboard don't work |
Problem: The numbers at the right in the keyboard didn't work. Some participants tried to use them when looking for a line number. |
||
OI |
Problem observed in: 3 novices, 1 expert |
Short description: E , Mismatch between problems reported by feature and the ones written in the source code |
Problem: The features that displayed sms-problems showed only the problems properly written in the source files. Many participants easily noticed that the problems displayed by the tool were not all the problems in the source code and concluded that the feature provided incomplete results. They also commented that:
Therefore, whenever participants wanted to see the problems they ended up scanning the code manually in the Source window and not using the feature. However, they were never absolutely sure if they had found all the problems. The same happened with activities. |
||
DW |
Problem observed in: 1 novice |
Short description: E , Dialog windows can disappear behind the tool |
Problem: Some dialog windows disappeared behind the main window of the tool and led to problems. Some participants clicked on the tool out of the area of an open dialog window and that made the dialog window disappeared behind the main window. Thus, participants had to bring it up again. During the sessions it was never a big problem because part of the dialog window remained visible. However, in general the dialog windows could have completely disappeared causing other problems to the participants. |
||
Location observed: |
DW II |
Problem observed in: 2 novices, 2 experts |
Short description: E , Sometimes dialog windows take too long to disappear |
Problem: Sometimes dialog windows took very long to disappear once the participant had clicked on the button for the action. Some problems with that were:
|
||
Situation observed: |
DW |
Problem observed in: 2 novices |
Short description: L , E, Path name field in dialog windows is useless |
Problem: Some dialog windows had an input field for entering a pathname location. There were several problems with it:
A much better design would be if users could navigate through the directories by double-clicking on a ".." displayed with the list of files. |
||
DW |
Problem observed in: 2 novices, 2 experts |
Short description: L , E, Clock mouse appears in unnecessary situations and misleads users |
Problem: When certain dialog windows were open, participants moved the mouse out of the area of the window and it changed to a clock shape even though the tool was not processing anything. Some participants thought that the tool was doing something although in fact the tool was expecting input from them. |
||
Locations observed: |
DW FF |
Problem observed in: 3 novices, 3 experts |
Short description: E , Input field is not presented highlighted |
Problem: Many dialog windows in the tool presented the most recent input in certain fields. However such input was not highlighted, therefore:
|
||
DW FF |
Problem observed in: several users |
Short description: E , Input fields of searching features present just the last string searched |
Problem: Participants frequently looked for previous patterns. However, the tool only presented the last pattern searched. Thus, participants had to always enter the input if it was not the most recent one. Sometimes they wanted to use the most recent pattern, but it would definitely have been very helpful if the tool remembered others previous patterns as well. |
||
HW |
Problem observed in: 1 expert |
Short description: L , E, Update Selected State feature is useless |
Problem: In the History window, the feature Update Selected State was not working anymore but it was still there and caused problems. For example:
|
||
HW |
Problem observed in: 1 expert |
Short description: L , E, Sometimes the Delete Selected State feature doesn't work |
Problem: In the History window the feature Delete Selected State didn't always work. One participant tried to delete a history state and clicked on the feature without success. |
HW |
Problem observed in: 1 novice, 1 expert |
Short description: L , E, Label in history states mislead users |
Problem: Sometimes participants went back to a previous history state after a long period of time (long time in terms of remembering in detail that particular state). They read the label of that state and used it to decide if that history state could have the information they wanted. Once they clicked on it, users scanned the information in the displayed Hierarchy window and saw if that history state was in fact helpful. However, the tool had never updated the label of the history state according to deletions or changes done in the Hierarchy window. Therefore, in certain situations participants were misled assuming that the information in that history state really contained what the label said. |
||
Situation observed: |
HW |
Problem observed in: 1 novice, 1 expert |
Short description: L , E, Things in the History window that look like history states but are not mislead users |
Problem: In the History window, some labels look like history states but they dont work like them. None of the participants knew or discovered that they were not real history states. This confused some participants. For example:
|
||
HiW |
Problem observed in: 3 experts |
Short description: E , Pascal built in primitives are not properly treated by the tool |
Problem: The pascal language in which the Company systems is written has certain built in primitives. The tool displayed some of these primitives in the Hierarchy window as if they were ordinary routines, however clicking on them displayed error messages in the Source window.
|
||
Primitive observed: |
HiW GG |
Problem observed in: 5 novices, 3 experts (all users) |
Short description: L , The Autogrep feature is extremely hard to discover and learn |
Problem: The Aurogrep feature was extremely hard to discover and learned. There were several reasons:
Some interesting insights were:
Due to this, participants could never exploit the power of that feature, which was one of the most powerful ones. This meant that they performed many steps for solving tasks about finding occurrences of one object within another. They either manually scanned to look for those occurrences or used the Search for text feature. |
||
HiW GG |
Problem observed in: 5 novices, 2 experts |
Short description: L , Grep feature is very hard to discover and learn |
Problem: The Grep feature was very hard to discover and learned. The most important reasons were because it was inside of a middle mouse button menu and because participants thought it would work in a different way. Due to this, participants never exploited this feature and instead completed some tasks in very inefficient ways using other features. |
||
HiW HH |
Problem observed in: 1 novice |
Short description: L , Grep does not work as users expect |
Problem: In the Hierarchy window, some participants tried to use the Grep feature in the same way it worked in other systems. For example, some tried to use a pipeline to filter results. However, the feature not always accepted what participants entered. |
||
Situations observed: |
HiW |
Problem observed in: 2 novices |
Short description: L , Find In This List ... doesn't scroll and therefore participants not always see the results |
Problem: In the Hierarchy window, sometimes the Find In This List ... feature didn't scroll to the point where the results had been left. Participants didnt see any changes on the interface and were uncertain if there had been any results. Some scrolled in order to look for them. |
||
HiW |
Problem observed in: 1 novices |
Short description: E , Find In This List ... selects results but leaves unchanged the Source window |
Problem: In the Hierarchy window, the Find In This List ... feature highlighted the results but it didn't refresh the information in the Source window. This is the normal tool behavior for other features in the tool. This caused some problems to participants, for example:
|
||
HiW |
Problem observed in: 4 novices, 1 expert |
Short description: L , E, Results appended at the end of the sub-list and window is not scrolled |
Problem: In the Hierarchy window, the results from certain actions were appended at the end of the sublist where the action had been started, however the window was not scrolled to the location of the results. Many times there were many objects in the window and the results were not immediately visible to the participants, therefore they had to scroll and look for the results. However, they not always discovered the results, especially when there were many objects in the window. They got upset because of the extra work and time to look for the results. |
||
HiW |
Problem observed in: 4 novices, 3 experts |
Short description: L , E, Deleting many items takes long and the feedback is not very good |
Problem: In the Hierarchy window, deleting many items normally took very long and the feedback was not very fast. Therefore, users required much time and effort to notice that the deletion had indeed worked but it had been slow. |
||
HiW |
Problem observed in: 1 novice, 1 expert |
Short description: E , Being highlighted is not the same as having the focus and that confuses users |
Problem: The difference between being highlighted and having the focus was not always noticed. In the Hierarchy window, one participant pressed the delete key on one item but it was not removed. The item was highlighted but didnt have the focus. Thus, participant pressed the delete key several times and didnt understand why it was not being deleted. |
||
HiW JJ |
Problem observed in: 3 novices, 1 expert |
Short description: L , Delete Sublist feature is misinterpreted |
Problem: In the Hierarchy window, the concept of sub-list was very hard to understand. Participants didn't see a sub-list as the group of objects below in a hierarchy level of another object. Instead they saw a sub-list simply as a subset of consecutive objects. Thus, sometimes they used the Delete sublist feature when there were no objects below in the hierarchy level. They didn't get any results but never understood why. |
||
HiW JJ |
Problem observed in: 1 novice |
Short description: L , Find In This List feature was misinterpreted |
Problem: One participant was trying to search for something inside the code of some routines. In the Hierarchy window, he selected a group of routines and used the feature Find In This List He thought that such feature was going to look inside of the selected objects. However, that functionality was implemented by the Grep feature and not by the feature he used. Like in the previous problem, participants tended to see a list as anything selected consecutively and as not the whole set of objects in the Hierarchy window. |
||
HiW |
Problem observed in: 2 novices |
Short description: L , The meaning of the relationship between child and parent in the Hierarchy window is difficult to understand |
Problem: In the Hierarchy window, participants tended to see a relationship "contains-contained" when an object was child of another. This led them to draw incorrect conclusions. For example:
This was an interesting result that gave some clues about how users interpreted the relationship child-parent in the Hierarchy window. In summary, the relation was many times seen as "contains-contained" instead of "before-after" in time. This problem mainly affected to participants learning the tool. |
||
Some particular situations observed: |
HiW |
Problem observed in: 3 novices, 3 experts |
Short description: L , E, Message about items at the bottom-left is not seen, remembered or well understood |
Problem: Participants were never sure about the meaning of the message about items at the bottom-left:
|
||
HiW |
Problem observed in: several users, 1 novice commented that |
Short description: E , Label done displayed before results appear |
Problem: In the Hierarchy window, just before certain actions finished a message "done" appeared at the bottom. The message was presented before the results of the action. Sometimes the results appeared much after. Some participants noticed the message done and thought that the result had been empty, suddenly the results appeared. |
||
Situations observed: |
HiW |
Problem observed in: several users, 1 novice commented that |
Short description: L , E, Messages at the bottom and mouse shaped is not updated at the same time and that misleads users |
Problem: In the Hierarchy window, there were several problems when certain queries were finishing:
|
HiW KK |
Problem observed in: 3 novices, 2 experts |
Short description: L , Clicking on something in Hierarchy window doesn't always present what users expect in the Source window |
Problem: In the Hierarchy window, the following was observed with certain objects:
Some problems here were:
In both cases, participants had to find object X in the Source window manually. Some scrolled and others used the Search for text ... feature (falling into all the problems associated with both methods). |
||
HiW |
Problem observed in: 3 novices, 1 expert |
Short description: E , Sometimes the Source window is not refreshed |
Problem: In the Hierarchy window, when participants clicked on something there were two strange behaviors:
|
HiW DD |
Problem observed in: 5 novices, 3 experts (all users) |
Short description: L , E, Objects can look the same in Hierarchy window and that presents problems to the users |
Problem: In the Hierarchy Window:
Some examples of this were with:
In all cases participants had to select the objects and look at the information in the Source window. This problem suggested that:
|
||
HiW BB |
Problem observed in: 3 novices, 1 expert |
Short description: L , E, Problems with the middle mouse button pop-up menus |
Problem: In the Hierarchy Window, participants had many problems with the middle mouse button pop-up menus, for example:
Participants brought incorrect menus many times. They found features by trial and error, thus resulting in very inefficient performance. |
||
SW |
Problem observed in: most sessions |
Short description: E , Launching editor takes long and there is no feedback meanwhile |
Problem: Sometimes launching the editor took a long time and there was no feedback meantime. Participants lost the focus on the dialogue By the time it appeared some were almost starting it again. |
||
SW |
Problem observed in: most sessions, 1 novice & 1 expert commented that |
Short description: E , Corrupted information from sms is displayed corrupted in the tool |
Problem: The tool displays information from sms exactly as it is received. If it comes corrupted then it is displayed corrupted as well. Participants didn't know if such information came corrupted from sms or it had been corrupted in the tool. For example, information about a sms problem was displayed as an ASCII text without ends of lines. |
||
SW KK |
Problem observed in: 5 novices, 3 experts (all users) |
Short description: E , Problems scrolling in the Source window |
Problem: In the Source window, scrolling required precise movements of the mouse and that was difficult for participants, especially when the displayed information was very long. The most common problems were:
Some of these problems led users to waste time and effort to position the window in the desired location. This problem happened many times when participants tried to locate shadow areas containing routines. |
||
SW KK |
Problem observed in: 5 novices, 2 experts |
Short description: E , Finding the shadow area in the Source window can be difficult |
Problem: In the Source window, participants had problems to locate the shadow area or routines, for example:
|
||
SW CC |
Problem observed in: several users |
Short description: L , E, Results from Information About Selected Item feature are not obvious to notice |
Problem: In the Source window, the feature Information About Selected Item displayed its results in the Hierarchy window. Participants not always noticed that and therefore didnt find the results. This particularly happened when the results didn't appear because they had been appended at the bottom of some objects in the Hierarchy window. |
||
SW DD |
Problem observed in: 2 novices, 2 experts |
Short description: L , E, Information About Selected Item displays all objects with the same name as the one selected |
Problem: In the Source window, highlighting an object and clicking on Information About Selected Item displayed all objects with the same name that existed in the database. Participants had to click in all those objects in order to see which was the one they had highlighted in the Source window. In other words, the feature was not context sensitive and meant that participants had to work more when there were several objects with the same name. For example, one participant highlighted a parameter type and clicked on the feature, he got five matches with the same name. One of those was the parameter type and the other four were routines that by coincidence had the same name. In this case, there was a difference in color among the objects (green and red) and that helped him to find which was the parameter type. This problem was more critical with other types of objects like routines, files, etc. where they were not displayed in different colors. |
||
SW |
Problem observed in: 5 novices, 3 experts (all users) |
Short description: E , Lack of robustness of the Search for text ... feature |
Problem: In the Source window, the Search for text ... was one of the most used features. Participants heavily relied on this feature, however it presented many problems:
From these situation:
|
SW |
Problem observed in: 4 novices, 3 experts |
Short description: E , The dialog window of the Search for Text ... feature hides matches found |
Problem: In the Source window, the dialog window of Search for Text ... many times hid the matches found. This was one of the most frequent problems. Almost any time that the feature was used participants had to move the window to some other place. |
||
TS |
Problem observed in: several users |
Short description: L , The features of some buttons in the tool bar are hidden in the middle mouse button menus |
Problem: Certain buttons in the Tool bar had their corresponding features in the middle mouse button menus. Some participants looked for those features in a menu (probably to confirm before trying them) but they rarely found them. It took a long time before some novices discovered where they were. |
||
TS |
Problem observed in: 4 novices |
Short description: L , E, Problems related with stopping the processing |
Problem: Participants experienced different problems related with stopping the processing of queries.
|
||
TS EE |
Problem observed in: several users, 1 novice & 1 expert commented that |
Short description: L , Some icons are hard to learn |
Problem: In the Tool bar, there were some problems with the first three buttons. As mentioned before, users know about files, procedures, functions, variables and types. However:
Only after several unsuccessful tries participants started reading the help flags more carefully. |
||
GG |
Problem observed in: 3 novices, 1 expert |
Short description: L , E, Problems with the Global grep feature |
Problem: Running a Global grep query generated a new state in the History window and cleaned the Hierarchy window. Participants noticed that the Hierarchy window was cleaned but they didnt understand why. Also:
|