ArticlePDF Available

Empirical Study of Software Developers' Experiences

Authors:

Abstract

There is evidence that CASE tools do not completely meet the goal of their diverse users. Part of the problem seems to be a gap between how programs are represented and manipulated in the user interfaces of CASE tools and the experiences of software developers, including maintainers, testers and programmers. The empirical study presented in this paper uses two different methods to measure the experiences of skilled and novice developers with the same CASE tool for C++. The methods include h euristic evaluation conducted with the experienced developers and psychometric evaluation conducted with both groups. The results indicate that experienced and inexperienced developers reported similar kinds of problems, including poor program learnability, difficulties with the visibility and usefulness of program functio nalities, and ambiguous erro r and help messages. These findings are discussed in relation to other empirical results about developers' experiences with CASE tools.
1
Empirical Study of Software Developers’ Experiences
R. Kline and A. Seffah
Human-Centered Software Engineering Group
Psychology Department and Computer Science Department, Concordia University
1455 Maisonneuve Blvd. W., Montréal, Québec, H3G 1M8, Canada
E-mail: {r_kline, seffah}@cs.concordia.ca
Abstract
There is evidence that CASE tools do not completely meet
the goal of their diverse users. Part of the problem seems
to be a gap between how programs are represented and
manip ulated in the user interfaces of CASE tools and the
experiences of software developers, includin g
maintainers, testers and programmers. The empirical
study presented in this paper uses two different methods
to measure the experiences of skilled and novice
developers with the same CASE tool for C++. The
methods include h euristic evaluation conducted with the
experienced developers and psychometric evaluation
conducted with both groups. The results indicate that
experienced and inexperienced developers reported
similar kinds of problems, including poor program
learnability, difficulties with the visibility and usefulness
of program functionalities, and ambig uous erro r and he lp
messages. These findings are discussed in relation to
other empirical results about developers’ experiences
with CA SE tools.
1. Introduction
Integrated CASE tools are intended to support all phases
of the software d evelopm ent lifecycle, including coding,
implementation, and mainte nance. U nfortunately, there is
evidence that these integrated development environments
do not always fulfill these goals. For example, Iivari [1]
found that the best single negative predictor of CASE tool
use is perceived voluntariness. That is, if developers
perceive that use of a CA SE tool is vo luntary, they tend
not to use it. Results of other surveys by Seffah and
Rilling [2] and Jarzabek and Huang [3] suggest that even
highly experienced developers often use only a small
number of CASE tools capabilities out of the total set
available. Either developers are un aware that these
functionalities exist or they do not know how to apply
them in a different context. For example, a developer may
know how to use correctly use a visual debugger tool
during development, but they may not know how to use it
during maintenance to understand the structure of the
application from the exe cution grap h.
Developers in the same surveys cited above also describe
CASE tools as relatively difficult to learn. They also cited
numerous problems with the user interfaces (UI) of CASE
tools. Included amon g these problems are unclear error
messages and non-intuitive organization of icons, menus,
or toolbars (i.e., low affordance). They also reported that
graphical representations intended to decrease memory
load often h ave just the op posite effect.
Findings similar to those just summarized above have
been interpreted as evidence for a cognitive gap between
developers’ experiences and how CASE tools are
organized in terms of how their users interact with them
[1-3]. Understanding developers' experiences with extant
tools is an importa nt step towards developing more
human-cen tric CASE tools. The obvious question we are
addressing here is how developer experiences can be
quantified or appre ciated. In wha t follows, we present a
measurement-oriented framework for understanding and
quantifying developer experience. As an example, we
consider the case of a widely-used CASE tool, Microso ft
Visual C++ 6.0.
2. Measuring Developer Experiences
There are several different methods to measure developer
experiences with CASE tools, including ethnographic
interviews, laboratory observation, remote testing,
measurement of formal usability metrics, psychome tric
evaluation, and heuristic evaluation. Interview methods
can be rather subjective, and laboratory testing or remote
testing can be expensive or difficult to im plement.
Heuristic evaluation an d psychom etric evaluation both
have the advantage of being relatively low cost. In
heuristic evaluation, about 5-10 experienced users
evaluate a program’s user interface against a set of
accepted principles, or heuristics [4]. Early lists of
heuristics were lengthy and rather difficult to apply, but
Nielsen [4] proposed a relatively small set that was
specialized for use in this study—see Table 1.
Psychometric evaluation in which develo pers com plete
objective questionnaires offers a more systematic wa y to
measure and com pare exp eriences ac ross different
developers and CASE tools. The questionnaire selected
for this study, the Software Usability Measurement
Inventory (SUMI; [6]), facilitates these ends through its
multi-factor form at, generally exc ellent psycho metric
2
characteristics, and relatively lar ge norma tive sample. The
50-item SUM I measures five different usabili ty areas,
including affect (whether users like the program),
program helpfulness, learnability, efficiency, control
(whether users feel like they know what the progra m is
doing), and overall satisfaction. Ratings of individual
developers can be compare d against thos e in the SUM I’s
normative sample in a m etric where a sc ore of 50 is
average, the standard deviation is 10, and higher scores
indicate greater satisfaction. The SUMI scoring program
also identifies individual items where the respo ndents
report statistically lower levels of satisfaction. Inspection
of these critical items m ay identify specific kinds of
usability problems.
Heur istic Definition
Visibility Informs user about status.
Real World Match Speaks the developer’s language.
Consistency User feels in control of what they are
developing (the program), not just
controlling the CASE tool
Error Handling Clear erro r mess ages and recovery.
Rec ognit ion, n ot Re call Minimizes memory load.
Flexibility
Suits users of varying experience.
Minimalist Design Shows only relevant information.
Rele vant H elp Easy to search and find information
Table 1. Definitions of heuristics (adapted from [5]).
Unlike heuristic evalua tion, small samples are inadequa te
for psychometric method s. This is because results from
small samples tend to be statistically unstab le due to
sampling error. As a rule of thumb, there should be at
least one subject (user) for each item on a questionnaire.
The SUMI has 50 items; thus, a sample of at least 50
subjects is needed in order to place much confidence in
the stability of the results. Psychometric evaluation is also
more suitable for novice developers. For this reason, we
used in this study both methods with a group of
experienced developers and only psychometric evaluation
with a larger sample of novice d evelopers.
3. Method
3.1 Participants
A total of seven experienced de velopers p articipated in
the heuristic evaluation of a widely-used CASE tool for
C++. These sa me participants also completed the SUMI
questionnaire about this CASE tool. Most of these users
had similar backgrounds and demographic c haracteristics.
All but one were male, most were in their late twenties or
early thirties, and they had on average about 10 years of
general experience with computers and about 5 years of
professional programming experience. All reported that
they were very familiar with the C++ CASE tool they
rated.
The inexperienced developers made up a comparison
group. These 54 individuals were enrolled in a
undergraduate computer science program (64% male,
36% female; average age = 27.3 years), taking an
advanced course in C++ programming, and used the same
CASE tool rated by the experienced developers. A total of
75% of the students reported using computers for over 3
years, 18% fo r 1-3 years, and only about 6% for less than
6 months. The average student reported using the C++
CASE tool an aver age of 3-10 hours a wee k.
3.2 Procedure
The experienced developers completed a rating form with
detailed definitions of the nine heuristics listed in Table 1.
The rating form also solicited comments about program
usability in each area or about usability problems not
mentioned by any of the heuristics. The experienced users
completed the SUMI at the same time. All questionnaires
were completed anonymously. The inexperienced
developers also comp leted the SU MI ano nymously. T heir
participation in this research project was voluntary and
had no bearing on their course standing.
4. Results
4.1 Heuristic evaluation
Review of the comments by the experienced developers
generally indicated few usability prob lems for the co ntrol,
flexibility, and minima list design heuris tics (Table 1).
Other areas did n ot fare so well. A notable example is
error handling for which many problems were noted, such
as ambiguous messages and poor system error
representation. Software developers using the C++ CASE
tool for testing generally also complained of insufficient
information about recovering from errors. Concerns about
inadequate feedback from the C++ CASE tool were also
noted for the visibility heuristic. Other concerns were
expressed about the CASE tool’s real world match: Some
of its dialogs use sp ecific technical te rminology or are
ambiguously worded.
4.2 Psychometric evaluation
4.2.1 Experienced developers. Presented in Figure 1 is
the median SUMI satisfaction profile for the experienced
developers. This profile suggests about average o verall
satisfaction with the C++ CASE tool. Specifically, the
experienced develop ers’ descriptio ns of the efficiency,
helpfulness, and sense o f control in using the tool are all
3
about average compared to the SUMI's normative sample.
However, they expressed below average satisfaction with
the program's learnability; that is, they described it as
difficult to learn. The content of critical SUMI items was
generally consistent with problems identified in the
heuristic evaluation by the same expe rienced developers.
Figure 1. Satisfaction profile for experienced
developers.
4.2.2 Inexperienced developers. Presented in Figure 2
is the median SUM I satisfaction pro file for the
inexperienced developers. As a gro up, they expressed less
satisfaction with the C++ CASE tool than the experienced
developers. Specifically, the only median scores for the
inexperienced developers that were about avera ge are in
the areas of affect and program helpfulness. However, the
below average score of about 40 on the learnability scale
is comparable to that of the experienced developers. Thus,
both groups described the C++ CASE tool as relatively
difficult to learn. The inexperienced developers also
reported additional problems in the areas of global
satisfaction, control, and efficiency. Results of
nonpara metric statistical tests paint a similar picture: The
group medians d o not differ statistica lly on the affect,
helpfulness, learnability scales at the .05 level, but they do
on the rest of the scales.
Specific usability problems identified by SUMI critical
items among the inexperienced users include the lack of
helpful inform ation on the sc reen when it is ne eded,
Figure 2. Satisfaction profile for inexperienced
developers.
difficulties learning new functions, trouble movin g data in
and out of the program, and disruption of a preferred way
of working.
5. Discussion
It is not surprising that experienced developers rep orted
greater overall satisfaction with the CASE tool for C++
than inexperienced developers. Of greater interest are the
areas of agreement: Both groups described the CASE tool
as difficult to learn and mentioned concerns about lack of
understandable on-screen information. These points of
agreement are also consistent with results of other studies
of programmer experiences of CASE tools [1, 2, 3]. The
latter suggests that the find ings of this study ma y not be
specific to the particular C++ CASE tool evaluated here.
It is also of interest that two very different measurement
methods, heuristic evaluation and psychometric
assessment, identified quite similar kinds of user
experiences. This suggests convergent validity—that the
usability of a particular CASE tool is robust enough to be
evaluated in more than o ne way.
We believe that these results provide additional evidence
for a conceptual gap between the software engineers who
develop CASE too ls and the software engineers who use
them. This study is also part of an ongoing effort to better
apprecia te develop ers’ experien ces with extant software
engineering tools used in program development or
maintenance.
6. References
[1] Iivari, J., “Why are CASE Tools not Used?,
Communication of the ACM, 39 (10), 1996, 94-103.
[2] Seffah A, and Rilling, J., “Investigating the
Relationship between Usability and Conceptual Gaps for
Human -Centric CASE Tools,” IEEE Symposium on
Hum an-Cen tric Computing Languages and Environ ments,
Stresa, Italy, September 5-7, 2001.
[3] Jarzabe k, S., and Huang, R., “The Case for User-
Centered CASE Tools,” Communication of the ACM, 41
(8), 1998, 93-99.
[4] Nielsen, J., “Heuristic Evaluation,” in J. Nielsen and
R. L. Mack (Eds.), Usability Inspection Methods, John
Wiley, New York, 1994.
[6] Kirakowski, J., and Corbett, M., “SUMI: The
Software Measurement Inventory,” British Journal of
Educational Technology, 24 (5), 1993, 210-212.
... Throughout this paper, we use the concept of work style (Campos and Nunes, 2005b) as a compact way to describe the user's way of working (working alone or collaboratively, thinking at problem level or at solution level, using a sound semantic or simply being creative). Although some research has been dedicated to studying why modelling tools are not used (Ilvari, 1996), leading to some frameworks that can measure the tool usability in a costeffective way (Seffah and Kline, 2002); our approach is distinctive because it combines work style quantitative data that can be easily obtained with logging tools (tools that measure the user's actions running unobtrusively in background) with qualitative data that predicts a given tool level of acceptance. By quantitative, we mean data that we can easily measure in numbers, like e.g. the number of times the user switches from a high-level view of the User Inter-face (UI) into lower-level, detailed views of the UI. ...
... We devised an approach that aimed for an empirically sound framework that could be used to inform as well as to validate the design of new tools. This research objective is not new, but the question is very timely: the argument that the practitioner's behaviour must be studied in order to make better tools has been used recently by Seffah and Kline (2002); Ko and Myers (2005). There has also been a growing body of research aimed at building models for e.g. the design of interactive systems within their physical environments. ...
Chapter
Full-text available
In this paper, we have captured the interaction design styles into an empirically-based framework that can be cost-effectively used to study existing design tools as well as to inspire the development of new design tools like TaskSketch. We don't claim that our
... Fowler (2000) indicates, referring to Holt (1997), that more than 50% of all organizations are still not using any systematic methods. The IS professionals do not even believe that they have the skills needed to use the systematic working methods (McGuire & Randall 1998) and nor the experiences to use CASE tools (Kline & Seffah 2002). The SPI studies (Humphrey et al.1989, Jurison 1999, Börjesson & Mathiassen 2002) have denoted the importance of process oriented approach of software engineering. ...
Article
Full-text available
Productivity and innovativeness of information work is becoming an important issue among information workers. This paper explores the working and learning of IS professionals when adopting new application development tools. I study how the IS professionals work, communicate, think through problems, and learn by way of getting work done. I also analyse the changes that the adoption causes to the individual style of working. The research questions are formulated as follows: 1) What contributes to the effective use of IT tools? 2) How does the adoption of new tools affect the individual working methods? The research is based on interviews of fourteen young professionals who have just recently started using a new application development tool. The interviews have been conducted in their working places. The focus is on learning at work. Special attention is paid to the initial motivation of the innovation, to knowledge acquisition, and to communication with their team members during the problem solving process. According to the findings, the IS professionals' working style is personal and context-oriented. As learners they do not interact with their peers and do not use systematic working methods too much. The internet and help systems are used as the basis of group interaction and source of knowledge more likely than the colleagues and text books. The systematic orientation of working practice is limited to the context at hand. At the end of the study, the results are discussed and recommendations are proposed to improve the software process.
... Good models and good tools should highlight opportunities for innovation, leave the details open (concentrating on essentials), invite creative projection and inform – and guide – towards good design. Although some research has been dedicated to examining why modeling tools are not used [1] or creating frameworks that can measure the tools usability in a cost-effective way [2], our approach distinguishes itself from the fact it combines work style objective (easily obtained through logging tools) with subjective data that predicts a given tool level of acceptance. The remaining of this paper is organized in the following way: Section 2 briefly describes related research on work domain analysis, and models and tools for the interaction design tasks. ...
Chapter
Full-text available
In our research, we have been combining Work Style modeling with the well-established principles of Usage-Centered Design having the objective of designing and evaluating better design tools. Our approach distinguishes itself from the fact that it combines work style quantitative data (easily obtained through logging tools) with qualitative data that predicts a given tool’s level of acceptance. We describe a set of principles that were proven successful during this design process, illustrate sketches of the tools, and highlight the relevant design aspects that worked and those that didn’t work.
Article
Full-text available
The author examines attitudes toward CASE usage in a wide variety of organizations.
Article
Full-text available
The Software Usability Measurement Inventory is a rigorously tested and proven method of measuring software quality from the end user's point of view.SUMI is a consistent method for assessing the quality of use of a software product or prototype, and can assist with the detection of usability flaws before a product is shipped.It is backed by an extensive reference database embedded in an effective analysis and report generation tool.
Conference Paper
Full-text available
Several interviews that we conducted highlight that many of the ease-of-use (usability) problems of CASE tools are instances of "conceptual gaps". A conceptual gap arises because of some difference between the software developer's mental model of the integrated development environment (IDE) and the way it can be used. Filling these gaps is the first step towards human-centric IDE. In this article, we begin by motivating our investigations with a survey highlighting common usability problems in the most popular Java IDEs. We then discuss how the developer's experiences with the complicity of cognitive studies can minimize these conceptual gaps while making the IDE more human-centered. We close our discussion with recommendations for establishing a rigorous scientific investigation for filling these conceptual gaps, as well as for developing and evaluating the ease of use of IDEs.
Article
This article discusses the sparse use of the computer software CASE tools in various software projects. The CASE tool is designed to increase productivity, improve quality, simplify maintenance, and making software development a more enjoyable task. But the current studies suggest that CASE technology dose not provide all these benefits. Authors analyzed their own experiences with designing and using CASE tools in industrial software projects and investigated common tool adoption practices they also examined CASE technology from the perspective of technical and non-mechanical issues involved in software development. They found that CASE tools are far too oriented on software modeling and construction methods, while other factors that matter to programmers receive little attention. In this article, authors discuss why a method-centered approach impedes the adoption of CASE tools in industry and suggest remedies to some of the problems. According to them, a CASE tool should provide more guidance for a novice developer that for an expert. It must be based on sound knowledge from different types of developers and their expectations.
  • J Kirakowski
  • M Corbett
Kirakowski, J., and Corbett, M., "SUMI: The Software Measurement Inventory," British Journal of Educational Technology, 24 (5), 1993, 210-212.