Feature Evolution and Variance


Sponsor Prof. Colin Potts
potts@cc.gatech.edu
Area Sofware Engineering and HCI

Problem

Most design literature in HCI and software engineering assumes
simplistically that the "users" want a "system" and that our task
is to develop one that meets their needs. But, most designs now are
evolutions of existing systems that are already in use.

There's been some research into how software implementations evolve
and the results of growing "entropy" over time, as the architecture
becomes more and more spaghetti-like. But I know of no work on how
the user-visible features of an application evolve. Do we get
"spaghetti interfaces"? Is version 5 of the application really the
same application as version 1? (E.g. is a desktop publisher the same
as a word processor?) How do the designers' tacit claims about the
users and their goals change from release to release?

This idea of "claims" is an important one. If you put in an interface
an "undo" feature, you are claiming (though not usually consciously)
that users often perform operations that they regret, or that they
often experiment with operations to see what they do. If you
implement activities in a to-do list with four levels of priority,
called "must do today", "should do today", "nice to do today", and
"after hours" you are making some definite claims about how users
organize their lives. So every feature is a set of claims, or a
set of answers to questions that could have been asked. Phrased this
way, a lot of user interfaces consist of dumb answers.

(a) In this project, you'll take a common PC or Mac-based software
package and rationally reconstruct from the user interfaces and/or
documentation how the claims about the users and their concepts
evolved from one version to the next.

In representing the features, you should use a standard object-
oriented notation such as UML. This will make it easier to compare
different models (i.e. answers to design questions such as "a
document is..." or "an appointment is...").

The research question is whether there are any patterns of evolution,
and if so what. It would be nice to have some hints, but that's
asking a lot. It would be good just to have a catalog of differences
as an application evolved.

This is a very open-ended and challenging project, so I don't expect
a theory of feature evolution. You might keep focused on an
apparently simple sub-domain -- such as importing pictures into
Word documents. There is room for several parallel versions of this
project running concurrently. One person could take one application;
another person another application. Or you could all work on the
same application, but concentrating on non-overlapping feature sets.
Ideally, you will look at three versions very narrowly, rather than
two versions more broadly, but that will depend on your interest and
the availability of the versions.

This should appeal to anyone interested in HCI, object-oriented
languages, database (it's doing some conceptual modeling, after
all) and software engineering.


(b) A similar project is to compare the tacit claims about user
concepts across contemporary versions of competing products. For
example, what are the similarities and differences among different
organizers' tacit theories of activities and appointments?

The same comments about scope and interests apply here too.