Waiting..
Auto Scroll
Sync
Top
Bottom
Select text to annotate, Click play in YouTube to begin
00:00:00
foreign [Music] [Applause]
00:00:11
[Music] [Music] [Music] thank you
00:00:42
[Music] that ain't working money for nothing good morning I I'm impressed not only that that you continue to turn out at 8
00:01:04
30 in the morning but that you do so even on the last day of the conference the previous keynote speakers have set a very high standard and I hope that I can be at
00:01:19
least in the same league as as they are I think one of the problems in the object-oriented object technology world is that we have been
00:01:30
very busy laying sound foundations and and trying to put together a class act from the technology standpoint so so busy that sometimes in all this bricks
00:01:43
and mortar that we've constructed in our repositories the human beings get somewhat lost this is unfortunate because in the end
00:01:58
that's what software whether it's object oriented or not is really about now we have an investment in this because in truth this is also one of our biggest problems
00:02:10
and a survey that was done not too long ago trying to identify the causes of cost overruns I don't know if anyone in this room has any experience with cost overruns
00:02:23
they they found the following interesting information the number four cause of cost overruns was insufficient user analyst user designer communication
00:02:35
they're not talking with each other the number three cause was then not surprisingly a user lack of understanding of their own requirements so the users didn't know what they
00:02:46
needed anyway the number two cause was overlooked tasks oh that's interesting we're probably overlooking because of them because the users don't understand them and not only
00:02:59
that but we're not talking with them so we're not helping them understand them well what was the number one cause [Music] frequent requests for changes from users
00:03:13
because of course we overlooked some tasks and that's because they didn't know they needed them and we weren't helping them figure out that that's what they needed by actually talking with them
00:03:25
now that's the situation that we're in uh in in the object oriented as well as the procedural world uh what are we going to do about it well we've been punishing not only our
00:03:39
our end users but we actually have been punishing ourselves in the process um the in my view uh the um
00:03:52
literature of the field um has not given us a great deal of help in this in this process I did um uh shortly after I arrived on the scene at the University of Technology a couple
00:04:05
years ago a survey of 15 of the most prominent uh design textbooks on object-oriented design published recently 1992 to 1995. it was a
00:04:19
scientific sampling I took every book from my office and Brian Henderson seller's office and there actually were a lot more books but there was also a certain amount of overlap between our
00:04:31
our collections in in total this collection represented almost 6 000 Pages worth of material uh how much of this had to do with anything
00:04:45
concerning users user requirements user interface usability well on those topics we had a grand total of 161 pages in fact more than three quarters of that
00:04:59
was in three books and if it wasn't for Ian Graham's book being including in this included in the sample it would have been a much much sorier picture um now counting the number of pages is
00:05:13
probably not completely fair so maybe we should look at things like the the total coverage in terms of citations
00:05:25
and if we look in the index of citations to anything with use or user in in the title we find a very similar picture and in fact there were five books in
00:05:40
this that had no citations to any of the 12 words that I was looking for and amusingly enough there was one book that devoted an entire page to usefulness but didn't think it important enough to
00:05:52
index it that's the situation that that we've been in the user interface World in object orientation well why we've been busy fighting a revolution
00:06:05
and the clouds of War have been drifting over our skies the methodology Wars and in the notation Wars although we're told that that that peace
00:06:25
has come to our little Community we're now Unified although there are a few partisans out in the uh out in the outback who think that the issue may still be open
00:06:44
[Applause] in all of this there hasn't been a lot of room for attention to issues of user interface usability and usefulness
00:06:55
now what are objects all about does object technology matter to users do they care about it should they care about it in my view object technology is really a
00:07:09
concern with the technology under the hood it's a question of the of the valves and what kind of a carburetor and things like that not the technology on the
00:07:20
surface and in fact for the most part we haven't been terribly concerned about whether or not there's even a hood release provided and whether our users can can reach it when they need to on the other hand I'll have to say that
00:07:33
I think object orientation does have something important to offer to our users unfortunately we've been failing but then again so has everybody else nobody in this industry I
00:07:50
think is doing a really laudable job across the board we continue to invent new languages that supposedly give us more power but it's not at all clear that that extra horsepower is delivering
00:08:01
more end utility we've been punishing ourselves in the process in my view object-oriented notation has a relationship to usability because notation is really the user
00:08:14
interface of of methods and processes it's what connects us to those methods um and if we take this view notation should be designed from the standpoint
00:08:28
of usability engineering software usability making use of disciplines like semiotics the study of signs uh perception cognitive psychology and all
00:08:41
the complete uh gamut of techniques that help us to produce more usable systems now that's not of course what has happened for the most part what we end up with is complex obscure arbitrary
00:08:55
notations and no particular models for helping us to design more usable user interfaces they're all concerned with the technology under the hood now one might think it'd be a good idea
00:09:09
to turn some of the experts on software usability loose on this particular issue recently in fact some human computer interaction Specialists did in fact
00:09:20
design an object oriented notation and it looked something like that a complex obscure arbitrary with no models for usage and user interface in fact it resembles some of the dominant players
00:09:34
in the recent notation Wars what are our systems for ultimately why do people ever have software uh in the view that that we've adopted
00:09:49
all software systems are tools whether they're the sort of things you usually think of as tools like editors and word processors compilers and things like that or whether they're what is
00:10:01
commonly called applications tools are things that help people accomplish something and they make that something easier to do or simpler to do or faster or
00:10:16
possible in some way and sometimes they also make it more fun that's a nice side effect unfortunately we don't necessarily Supply the tools in the right form and format if we don't understand the
00:10:32
answers to certain questions like what are users doing what are they trying to accomplish what is it they intend to do and are attempting and what do they need in order to
00:10:46
accomplish it the result is that we often Supply very sophisticated very powerful software and perhaps with very elegant very appropriate class models but not necessarily the tool that fits
00:11:00
what it is users are trying to accomplish so we never get around to this question how do we Supply what it is that users really need now this has something to do with
00:11:11
object-oriented user interfaces or UVS as they've come to be called or if you really want to be correct Ooey gooeys what is an object-oriented user interface it's the term has been around
00:11:26
for a long time and a number of attempts have been made to Define it some people say it's an interface of any system implemented in object-oriented programming some would narrow it and say that the user interface itself actually
00:11:38
has to be implemented in object-oriented programming both of those again focus on the technology under the hood rather than the actual user interface so some people will say object-oriented user
00:11:51
interfaces are interfaces involving icons toolbars pop-up menus point and click drag and drop the icky sticky ooey GUI that has become the legacy of modern
00:12:01
user interface design except that's the state of the art whether you're object oriented or not so that's probably not what object-oriented user interfaces are about some people say object-oriented user
00:12:15
interfaces are about pictures of real world objects because they're also laboring under the illusion that object orientation has something to do with Real World objects the question of whether or not there is a real world out
00:12:27
there or the hermeneutics of a postmodern Neo non-positivism don't seem to enter into this debate and the fact that your real world objects might be
00:12:40
different than mine is is not at issue one of the most Innovative approaches is the view that object-oriented user interfaces are object oriented because users send messages to objects I'll have
00:12:53
to tell you because I spent a lot of time dealing with users that users do not send messages to objects the only people who send messages to objects are people who have been engaged in decades
00:13:07
of small talk and are suffering from a certain amount of neural damage as a result of that what what users actually do I like small talk by the way I supported it as the
00:13:21
language of choice uh at uh at the University of Technology in Sydney um but that aside what users actually do is they do things with and two objects and if you talk with them for five
00:13:33
minutes you'll realize they never ever think of what they're doing as sending messages to objects that again is the technology under the hood uh Now Dave Collins recently published a book with the title object-oriented user
00:13:46
interface design and he describes the characteristics of an object-oriented user interface they're now in fact are two books on this subject so we're we've we've vastly increased the total number
00:13:58
of pages in the in the literature he says that users perceived and act on objects users classify objects based on how they behave and all user interface
00:14:10
objects fit together into a coherent conceptual model well this is a nice description but it actually isn't a lot about either user interfaces or object-oriented user interfaces the
00:14:23
first two things are really about users which may or may not be true and in fact again if you actually talk with users you'll find sometimes they classify things on the basis of behavior
00:14:36
um Trevor stop acting like your younger sister and sometimes they classify things on the basis of appearance oh you look just like my cousin uh so that's
00:14:48
not really the issue here and the third thing is actually about good interface design whether they're objects involved or not so we still don't know what an object-oriented user interface is well we can go back to this issue of
00:15:02
Real World objects which play an important depart part in some object-oriented analysis schemes and look at the state of art a state of the art in user interface is based on quote Real
00:15:15
World objects unquote here's an example actually this is uh this is a very old simulation that I revived recently years ago I said if the current Trend
00:15:30
continues somebody someday is going to do something really stupid like this you have a personal information manager based on an object metaphor that has
00:15:41
been brought to the user interface like a Rolodex and all you have to do is click on it and it opens up and and if you want to roll through the things in
00:15:54
the Rolodex you just click on the knob in fact you might even be able to drag the knob up and down well I'm sorry to say the world has progressed and there actually is a product out there now based on this
00:16:08
technology what's wrong with it what's wrong with it is a Rolodex is a very usable object when you can actually pick it up and hold it in your hand you can rotate that knob very quickly in either
00:16:20
direction you can stick your finger in one place and flip to another card it makes sense as a physical unit when you try to simulate it on the screen it not only becomes silly but it slows you down
00:16:32
it's a lot less efficient than just scanning through a list of things um so what we often end up is not usability it but silly simplistic
00:16:44
simulations of these Real World objects and again we can't blame this on the object-oriented world or object technology it's in part um a misunderstanding about what
00:16:57
software systems are really for a more familiar and ubiquitous example is the idea of the notebook metaphor which of course as processors become
00:17:09
more powerful becomes animated well unfortunately metaphors although they can sometimes be useful to help users make sense of our systems they also can be limiting and animations can be
00:17:22
annoying in this kind of a uh a metaphor on the desktop for a personal information management system we have a complete representation of a daytime or a day Runner or some other
00:17:36
kind of of Pocket personal planner even to the the tabs which if we click on them we can flip the pages and go to a particular section of the notebook
00:17:50
don't pay too close attention to the fact that people who use these for an extended period Time end up with Whiplash from trying to read the labels as they flip back and forth
00:18:03
the really nice thing is one of the best known of these products has the wonderful feature of allowing you to delete something from your notebook by
00:18:15
dragging it the wireframe wastebasket where just like in the real world it bursts into Flame now the actual product which I'm not showing you here and which will go
00:18:32
nameless has a much better animation of the Flames I mean they look so realistic and you know some programmer possibly working with a graphics artist spent
00:18:44
days getting that animation just right is this progress in my antique personal information management system I can delete something by hitting the delete key
00:19:01
well what these kinds of user interfaces are is their their sizzle they're very attractive they're appealing to people who buy software who
00:19:18
are not necessarily the people who have to use it in in my view from my work in software usability simulating a daytime timer or
00:19:29
a day Runner or filofax a rolodeck on a desktop is a little like those ballpoint pens that you can get at amusement parks did anybody pick one up last night they look like a quill pan they're made out of plastic because feathers are too
00:19:43
expensive nowadays and they're really cute but the truth is that to get real work done most of us would prefer something like an aurora or
00:19:54
a Mont Blanc a real tool now a Montblanc has got to be one of the ugliest pens ever developed but it writes beautifully and it just serves the function uh very well
00:20:10
now another Trend in the real world object a user interface world is the trend toward big objects if objects are good then bigger objects must be better
00:20:22
I call this the Bonanza of blobs and big bozo bitmaps the resemblance of this little simulation to anything you've ever seen is uh
00:20:35
well we're trying to protect the innocent um many of these things mix a kind of user over friendly uh approach to dealing with users at the user interface
00:20:47
with a smattering of geek speak so we're greeted by the friendly hi let me help you duplicate anything anytime and then it goes on to say just choose
00:20:59
the mode and click on the control actually I don't see any control but all right I'll try something here uh the the systems reduce an interaction with a
00:21:12
system to Tiny Tiny Steps in fact so small that we can't simply straightforwardly accomplish anything we have to first tell the system what we're going to do in which case then it changes mysteriously and those of you
00:21:25
who understand usability principles know that one of the things you don't do is have something that was once a hammer suddenly become a saw and you may in fact have missed the fact that when we
00:21:37
clicked on that radio button the uh the control button actually changed when we finally have told the system what we want to do in one step we can then make it oops
00:21:51
um you have selected a non-safe mode of duplication uh don't you love messages like this you have no idea what it means you may sit there and puzzle it out if you're
00:22:06
highly motivated uh then again you may not what I really want to do is I want a button that says not okay no no tell me something else do something
00:22:23
else stupid all right my father was a mechanic and he taught me a lot of techniques for repairing equipment a he always told me don't ever force it
00:22:49
get a bigger hammer so these are what I call equal opportunity interfaces because they annoy everybody equally unfortunately this is it seems to be an important Trend in user interface design and we're
00:23:03
seeing more and more consumer products and it's beginning to pop up even in some of the tools that we as developers end up having to use um now are there any good real world user interface objects or are there any
00:23:17
times when we really would like to surface the technology under the hood and offer it to our users well there may be and this is a topic we could spend a lot of time discussing but here's one
00:23:29
possibility that sometimes might make sense it might make sense for example to externalize to bring to the surface the factories or Constructors for some of our classes of objects in such a way
00:23:42
that when the user clicks on them or swipes them or drags them they instantiate instances of those objects for example this might work in some applications to have a a simulated pad
00:23:55
of fax cover sheets that could be used to open a new fax cover sheet and eventually launch a fax transmission when you drag and drop
00:24:06
uh from the user's standpoint however this doesn't actually necessarily represent a great uh world-shaking advance in technology it does fit the current document-centric Trend in user
00:24:20
interface design I love this word Centric which appears everywhere it's not in any dictionary yet I think we use it because it sounds big
00:24:32
the truth is that from the user's standpoint this kind of factory object is not much different from having a fax cover sheet tool or fax cover tool or even control n
00:24:45
or file new as a way of accomplishing the same action and in fact if you look at it very closely it's about the same number of motor steps and operations
00:24:56
that are needed no matter how you do it now there may be some possibilities where big Bozo bitmaps are in fact Justified here's just one example when I
00:25:10
first saw this which is sometimes called the Virtual Office this particular bitmap appears in a product called managing your money from Mecca software I thought this was really really Bozo
00:25:22
they said it would be very familiar and comfortable to you well I haven't worked in an office with a big oak desk like that in a quill pen in many years what this user interface mechanism does
00:25:39
is it provides objects that actually allow you to accomplish actions uh turns out the quill pen is for printing checks and all of the objects on the bookshelf
00:25:54
in fact are different repositories of information some of the objects are are very amusing you click on the Statue of The Thinker
00:26:06
if you need help um and if you experiment you find that there are all kinds of objects in this room that are active um including the mouse hole over in the
00:26:18
corner which is how you exit I suppose that's for users who are real rats the documentation for this particular product when it first came out said this is so intuitive you'll immediately feel
00:26:37
right at home all you have to do is click on the checkbook to pay the bills and click on the scales to balance your checkbook I was delighted to read that because you know I realized I'd been doing it wrong
00:26:50
all these years had been using a calculator and I went right out and got myself an old fashioned beam balance scale actually there is an advantage to some
00:27:05
of these um seemingly silly uh kinds of similes because they have a tendency once you know them to stick in the mind I've offered this wager to classes for
00:27:18
some years now I'll bet you five years from now we could meet and I could say so how do you balance your checkbook with managing your money from Mecca software and you'll remember um the really intriguing thing about
00:27:31
this kind of user interface which on the surface seems like another example of the artistic silliness we have to put up with is that they actually did usability testing and found out that the people who liked this and made the most
00:27:44
effective use of this were actually power users people had been using their products for a long time and were now trying out this new version why is that
00:27:56
well it's an interesting thing what this kind of big Bozo bitmap provides is a flat hierarchy with one central dispatch point and immediate access to everything in a sense it's the visual equivalent of
00:28:11
the C prompt you know where do you want to go today you can go anywhere I'm sorry where do you want to go today registered trademark you can go anywhere it provides however one additional
00:28:26
feature it provides objects in a context that is highly differentiated visually so that it's easy to remember where things are as such then it's a lot simpler than the
00:28:39
43 button toolbar that you'd have to use in order to provide an equivalent degree of access to all this functionality so it ends up for supporting fast
00:28:50
production use by by experts and in fact the only secret code you have to remember is what is the escape sequence that you use to get to this central dispatch point and after that it just tells you it reminds you visually it's
00:29:05
very easy to learn and to remember and even beginners like it but is it object oriented well actually not this was written entirely procedurally it could have been object oriented
00:29:18
another thing that has been coming along as a trend that may well help us to produce a more usable software is visual development visual development actually
00:29:29
started in the procedural world with Visual Basic power Builder SQL windows and others of the early visual development tools of course all of these tools now claim to be object oriented
00:29:42
and many of the object-oriented languages now have visual development tools based on them things like visual Small Talk visual age Borland's Delphi and the like
00:29:53
what visual development tools allow you to do is more quickly and more easily create user interfaces and working prototypes and some of them are becoming complete environments that allow you to
00:30:06
produce full-fledge industrial strength applications and software the the model for this is programming through Visual objects programming by
00:30:20
manipulating interface widgets and other objects on the screen the really important operant word there is visual visual development is visual so that
00:30:32
means it's not the same as having a really good package or library or set of foundation classes for interacting with user interfaces and when you change the mode of development to actually allow
00:30:45
you to think in terms of the visual placement and visual relationships among objects it not only accelerates the process but potentially it allows you to produce better results
00:30:58
um this facilitating of of visual thinking and direct layout however has a downside it's so powerful it's so quick and easy
00:31:10
to use all you have to do in many of these tools is grab a widget off of a palette and drop it onto the the form or screen that you're building in any order whatever order you happen to think of
00:31:23
things and then sometimes you may take the time to actually do some alignment or other aesthetic tweaking interestingly enough these tools some of them have only
00:31:34
recently provided the extra functionality to make alignment and and this aesthetic tweaking easy to do and in the process then what happens is the user walks in the room and says oh
00:31:48
that looks good I'll take it and the result is nobody users or developers is really paying attention to the overall organization or even some of
00:31:59
the important details about the user interface things like workflow what is the relationship between the order in which things appear in the user interface and the order in which they
00:32:11
are needed in the tasks the semantic grouping are the things that appear together things that people think of together or are they unrelated the choice of widgets maybe I should have
00:32:25
used check boxes here instead of instead of radio buttons but I didn't have time to think about it and not only that but it works so the arrangement of the visual objects how they behave which is an important aspect of usability and the
00:32:38
result is a a user interface that that people say oh cool uh but in fact may not be particularly usable so how do we go about delivering
00:32:49
usability to our end users and our customers well the standard approaches are usability testing standards and style guides prototyping and the use of human
00:33:02
computer interaction experts and specialists each of these has some real uh potential payoffs usability testing gives us some objective measurements some empirical
00:33:15
results numbers that we can take to managers and to marketing and it's based on established methods this is probably the best developed of all the approaches to user interface Improvement
00:33:28
uh standards and style guides allow us to potentially produce more consistent results given proven already worked out approaches prototyping is a practical efficient way
00:33:42
to accomplish user-oriented development you throw something together you show it to users you go back and you make some improvement and so on and Experts of course are the ones with the experience and in fact the use of experts turns out
00:33:56
to be by the actual studies cost effective because it turns out that the informed judgment that they offer US is an efficient way to figure out how our user interfaces are best improved all of
00:34:08
these also however have some downsides and limitations usability testing tends to be relatively costly it's also something that by definition comes relatively late in the process to really test a piece of software you have to
00:34:22
have a piece of software to test if not a an alpha internal release or a Beta release at least a darn good simulation the other thing is it often misses too much is just like testing in getting
00:34:37
bugs out of the software itself you can't test your weight equality you can't do enough testing to cover all the possibilities standards and style guides are good
00:34:51
except that the work of a colleague of ours in in Boston Jared spool has found that typically even when you take standard published guidelines like the
00:35:03
Microsoft Apple IBM sunsoft user interface guidelines and combine them with specialized corporate guidelines you still only answer about 10 to the to 20 percent of the questions that come up
00:35:16
uh in the course of real everyday development um prototyping unfortunately oftentimes becomes a replacement for design and for thinking about things and it isn't that
00:35:30
it's not a substitute for thinking about your problems and making careful deliberate decisions and with HCI experts the problem is there just aren't enough of them to go around the vast majority of developers
00:35:43
do not have a usability specialist to sit next to them and look over their shoulder most companies in most groups don't have access to usability testing and expertise or only have limited
00:35:56
access so they're just not enough to go around besides as we found in our investigations most of the decisions affecting the shape of the user interface and impacting on the usability
00:36:10
of the end product are being made by the developers like you and not by experts so what are we going to do about this we think that there has been
00:36:25
um over the course of many years a shift in the focus of the development process and and in the long term this is continuing in the right direction it started out with our attention fixed almost entirely on the code and
00:36:39
computers back when I first learned programming at uh at MIT in 1901 uh nobody talks about user interfaces
00:36:52
there was no such thing you submitted jobs in stacks of Punch Cards some of you probably remember punched cards and um and a day or sometimes too later you got back a printout
00:37:06
um as the systems got more powerful and allowed us to do more things we begin to shift our focus more on what kind of functionality we delivered and what kind
00:37:18
of features we supplied and eventually this attention brought us out to the user interface now user interfaces were discovered by our field long before they
00:37:30
were graphical as soon as the first terminal was attached to a computer even the old freed and flexor writer kinds of terminals there begin to be a concern about user interface but you'll
00:37:44
notice that all three of these things they're really technology centered they're they're focused on the software itself they don't really look outward eventually some people in our industry
00:37:55
discovered that on the other side of the screen there was a real person a user this made us profoundly uncomfortable I mean most of us would not be in this business
00:38:08
if we weren't basically Geeks at heart um we like talking to machines now some years ago I would have said no no I'm I'm not a nerd I mean I have a degree in management uh I I have a a
00:38:25
license as a marriage and family counselor um I'm a people person well my partner Lucy Lockwood disabused me of that illusion one time when she went into my desk looking for something
00:38:39
and and she saw that there was a uh something in there and she said what is this and I said well it's a screwdriver she said what's that thing next to it I I said well that's a straight bladed screwdriver this is a Phillips head
00:38:52
screwdriver and she said and what's that weird thing next to it and well it's it's an IC puller and she said what are they doing in your desk well that's so in case I have to take
00:39:08
the back off the computer and swap chips she says that proves it you're a geek so now I'm proud of it well what do we do what do we Geeks do
00:39:23
when we encounter real human beings we're a little uncomfortable with the situation so we get friendly and user-friendly software was invented
00:39:42
this is the stuff that you know when you sit down at the terminal it starts off with a message welcome to the excess system uh please log on by typing your full
00:39:55
name so you type in welcome back Larry Constantine it has been 7 hours and 36 minutes and 24 seconds and and 14
00:40:08
hundredths since we last saw you please type your secret password oops I'm sorry you must have made a mistake try again be more careful this time foreign
00:40:34
ly software didn't last long because it's not really a good idea unfortunately there are some young people up in Redmond who didn't get that word [Applause]
00:40:52
and so now we have Bob or as we call it in Australia Bruce user friendly as an approach to software development was replaced fairly quickly with user-centered development
00:41:12
user-centered development says users are the heart of the whole matter so let's put them at the center of the development process make them the primary focus in the most extreme forms of this in participatory design
00:41:25
approaches you actually invite them to move in with you and become part of your software team user-centered per se did not last long either for a different reason
00:41:37
uh the thing is about user centered is it doesn't sound all that interesting it sounds like something you could learn about in five seconds and it's very hard to sell books and courses on it so user centered was quickly replaced
00:41:51
with user-centric and this is a safe term because when your boss looks up Centric in the dictionary and doesn't find it he or she concludes that it must be
00:42:05
something worth learning about and they'll authorize the 900 for you to go take a course um fortunately user-centric as a point of view is also
00:42:19
becoming less popular and we think it's being replaced by another approach which we call usage centered design what's important in usage centered
00:42:31
design is not the user as a person or the user as a specific user but for the way in which they're making use of our software and by focusing on this usage
00:42:45
we have a chance to deliver software that is substantially better now usage-centered design not only sounds too much like user centered but it doesn't sound like something you'd have to go to school to learn
00:42:59
so we also have another term for it which is teleocentric now that is in the dictionary if you have a big one like the Oxford English Dictionary and what does it mean it
00:43:12
means purpose-centered or usage centered so if you go back to your companies and institutions and people ask you what did you learn at uppsla besides learning about patterns and ethical challenges
00:43:24
and things like that you can say that we learned about teliocentric design foreign now how does this contrast to the tools that we have available to ourselves
00:43:37
what is the central metaphor on which all of software engineering and software development has been based almost since its Inception it's the classic software engineering metaphor of a black box who
00:43:51
who did that these cards are everywhere um the the black box metaphor is is interesting a black box of course is a box you can't see into and we have all kinds of things related to black the
00:44:09
black box metaphor encapsulation information hiding things like that that are at the heart of object technology but what are the typical models that we use to design systems that are supposedly based on this black box
00:44:22
metaphor well they're things like the data flow diagrams structure charts entity attribute relationship diagrams herel charts event models class hierarchies object communication diagrams what do all these things have
00:44:36
in common all of the intention is focused Inside the Box and so for the question of you know what color box do we Supply to our users we
00:44:47
give the same answer that Henry Ford did back in the early days the automobile you can have any color you want as long as it's black because we're not even looking at the outside now usage-centered design brings some
00:45:01
new models to this process that help us to pay more attention to what it is we actually supply to the user what it is that they see um we use these models to answer
00:45:15
questions we don't do modeling because we like to build models no we like to build software and Supply things to people and that's ultimately what we get paid to do we use these models to answer questions like what kind of users are
00:45:28
going to make use of this system what is it that they're trying to do what do they need in order to accomplish it and how are they going to do it with the system that we're building for each of those questions we have a different modeling approach to answer
00:45:42
the question of what kind of users we use a user role map which represents relationships between classes or kinds of users and the system we're trying to design to answer what are users trying
00:45:53
to do we use use case models which represent the essential structure of the usage by those users to answer the question what do they need in order to accomplish it we have the use context model which represents the materials and
00:46:08
tools that they will need to complete the task and for the question how are they going to do it with the system we're building we have a navigation map which shows how they negotiate their way
00:46:19
through the features that we Supply to them at the user interface now these first two models are concerned with usage and the second two models are concerned with architecture
00:46:31
now I'm a fanatic about citation um my partner says I'm actually compressive obsessive about it um so the the the main citation on usage
00:46:44
Center design is Constantine and Lockwood um how'd that slide get in there the heart of this approach to uh usage-centered design is the notion of
00:47:00
abstraction and Abstract models this is a concept that should be very comfortable to all of us in the object-oriented uh world because object orientation is based on the idea of
00:47:12
abstraction what abstract models do is they give us a way of looking at things that's actually simpler than the real thing and in this way they allow us to avoid messy and distracting detail
00:47:26
and we can defer decisions about how we fix those details this means that we can focus our attention more on the whole on the broad picture of the software the user
00:47:38
interface and in these particular models with a particular emphasis on purpose and intent the other thing that abstraction and Abstract models do is they invite
00:47:51
Innovation and encourage creativity as Stephen Sondheim said regarding the French pointless Georges um
00:48:04
his favorite color is white it represents a blank canvas or piece of paper which has so many possibilities and the Intriguing thing is that we found as developers and designers get
00:48:17
more experience using abstract models they open up new possibilities for Creative innovation ah good brief look at some of these models obviously we can't do a whole tutorial
00:48:32
here but to give you a little bit of a flavor of what this approach to what objects are all about might be one of the models is the user role model which
00:48:44
is a focus on the relationship between users and systems rather than on the users per se Ivar jakobson when he first introduced this concept referred to them as actors
00:48:57
a rule is an abstraction it's not a person it's a relationship that play is played by some group of users and as Rebecca worth sprock calls it it's a collection of interests expectations
00:49:10
behaviors and responsibilities um all of those have to do with users but they're not the user themselves for example um I use a word processor I'm a geek but I'm also a real human
00:49:24
being I use the word processor in different roles sometimes I'm using it in the role of a writer in which case one of my expectations is for the system to just get out of the way and let me
00:49:37
type as fast as I can and get my ideas from here into into there I don't want a lot of functionality and I certainly don't want little pop-up things that tell me what's going on or that I've
00:49:51
misspelled a word or something like that on the other hand when I'm edit an editor I'm interested in exactly how the sentences are constructed is the spelling correct rearranging paragraphs things like that and I have a different
00:50:04
expectation for what tools and materials the user interface should Supply to me I also sometimes am operating in the publisher role and in which case I don't care what the words say most Publishers
00:50:18
don't uh what I care about is what is the arrangement on the page how does it look how does the text flow from one column to another where are the breaks how does
00:50:30
it does it relate to the position of the pictures things like that this is one piece of software one user and different roles with different expectations now the user role model is not something
00:50:42
really elaborate it's just a list of user roles described by those characteristic needs and behaviors the heart of what we've been doing is something called the essential use Case Model
00:50:54
now this an essential use case is an abstract case of purpose-directed usage citation Constantine Lockwood it's idealized it's technology independent and that's why it's called
00:51:07
essential and there we're drawing on the work of Steve mcmenamin and John Palmer whose classic book essential systems analysis is probably the definitive work on the subject
00:51:21
now this is an extension and we think a very important departure from the notion of use cases um as developed in object-oriented software engineering which of course is evar's work
00:51:35
an essential use case and use cases in general represent the external Black Box view of supplied functions something that's complete that's something that's well defined and makes sense to the user
00:51:47
an essential use case however is concerned with the purpose not the concrete steps or mechanisms it's about what a user in a role is trying to accomplish rather than how they're going
00:52:00
to accomplish it and it's simplified and generalized what exactly is it it's a structured narrative that's cast in the language of the domain or uh the user
00:52:13
it consists of three very simple Parts a name and essential purpose and sometimes the name is enough to capture the essential purpose and a two-column dialogue this is an innovation
00:52:27
introduced by Rebecca and we also think it's an important innovation it organizes the use case it divides up things that are fundamentally different the user actions and the system response
00:52:39
and that line down the middle is the system boundary it actually represents metaphorically the user interface now the thing about this model is it's very good way to communicate and
00:52:52
negotiate with users and what makes it so good is there's nothing for them to learn there's really no notation there's no conventions there's no logic or or obscure relationships for users to have
00:53:04
to learn all it is from their standpoint is a simple conversation of the he said she said he said she said kind of variety and they don't have to be trained they they fall into using them
00:53:17
as a way of communicating with analysts and developers quite naturally what's an example of this there are a few archetypal applications that tend to show up over and over again
00:53:32
in papers and books on object orientation one of them is using an ATM machine an ATM from the standpoint of the essential purpose
00:53:44
um this use case is getting cash why because that's the most common transaction at ATMs now for the the ATMs at my bank in Australia
00:53:58
um the use case looks something like this it starts with me inserting a card the system response is to read the magnetic stripe on the card and request my personal identification number I enter my pin on the keypad the system
00:54:12
verifies it and displays a menu of options I press a key of cash withdrawal it displays the account menu I press the key to tell it which account I want it
00:54:25
prompts for the amount I enter the amount it displays it and requests me to verify it I confirm the amount it then returns my card I take the card and
00:54:38
finally it gives me the money now what does this have to do with getting the money in particular in order to look at this from an essential standpoint from the
00:54:52
standpoint of purpose teliocentric we're interested in the question of why why would a user do any of these things why for example would I take something valuable like my ATM card and stick it
00:55:06
into a slot in a wall knowing there's some chance I might never see it again the bank even tells me guard this as if it were cash
00:55:21
well I'll tell you I never stick cash in a slot in the wall so why am I doing it well what this is all about is I'm trying to identify myself in a way that the system understands
00:55:36
I'm concerned about that not because I particularly want to insist on making withdrawal from my account as far as I'm concerned I'm perfectly happy if the bank gives me your cash
00:55:51
but I'm I'm acutely dissatisfied if it's the other way around and you would say the same thing so all of us as users in that role have a collective interest in
00:56:03
identifying ourselves for the same reason we want the system response to be to verify that identification we want to make sure that the bank knows that this is in fact indeed the person
00:56:17
to whom I'm speaking um now what else do we expect from the system well I'd like it to offer choices because I don't always do the same thing however one of the choices I would like
00:56:29
it to offer me is the usual Mr Constantine the thing is the bank and I both know that almost every time I take out cash I take out the same amount
00:56:43
those of you in the banking industry know the typical ATM transactions 80 to 90 percent of them are cashed withdrawals and 80 to 90 percent of those are for exactly the same amount
00:56:54
the user took out last time now the bank has this on file they know what it is why don't they offer it to me in fact why can't I just hit one button the top button and and get what I want
00:57:08
or just do one thing or just not and say yes or for that matter of course stupid so I make the choice and then I take the money that the system has has given me
00:57:24
um now you will notice this is a lot simpler on the right than on the left the difference is by focusing on the essential purpose we
00:57:37
distill the use case down to it's Bare Essence the central core of what it is the user is trying to do in the process we've opened up many possibilities
00:57:51
years ago when I first started using this example I suggested you know among other things you could use retinal scans to identify your users why you have to have them carry around a card with you I mean you you can just put your eye up to
00:58:04
the slot and that's it or if it's a good camera technology they can you know stabilize the image and zoom in on your eye and so forth everybody laughed well the amusing thing is that they're actually doing that now there are trials
00:58:17
in Japan and the United States of ATMs based on on retinal images there are lots of other techniques the system could recognize your voice by voice print analysis it could ask for a thumbprint for that matter it could look
00:58:32
at you and and say aren't you Mr Constantine don't I recognize you uh so essential use cases open up many more possibilities for simpler more
00:58:44
straightforward ways from the user's standpoint of providing these Services now some people have sufficiently warped Minds so that they think in abstractions
00:58:56
I won't take I won't completely own up to this but sometimes I do but most people in fact are more comfortable thinking in concrete terms and so they start off with a concrete
00:59:09
scenario and then simplify and generalize it and that's perfectly acceptable way to get at these um essential use cases now another term that you'll hear a lot
00:59:21
in this area both in object orientation and in user interface design is the word scenario and some writers even use the word scenario to replace the word use case
00:59:34
which some people find a bit unfelicitous but in truth there is a difference between scenarios as usually used both technically and
00:59:45
informally and use cases and essential use cases the difference is like this scenarios are intended to represent some kind of typical interaction but they're
00:59:58
cast in concrete very specific terms perhaps we're designing a system to partially automate the the technical support the help desk facility and so one of our designers says okay okay
01:00:12
here's the scenario it's it's 4 AM and Ian Smith calls a tech support line there's nobody on duty he gets the please enter your customer ID prompt and keys in
01:00:24
1768-2002 on the Telco keypad now all that is very specific but none of us would be so naive as to think that we're only going to support customers named Ian Smith
01:00:37
or that the system will necessarily be optimized so it will only perform completely at 4 AM no those are intended to be representative kinds of things the problem with scenarios is that scenarios
01:00:50
do not make clear what part is intended to be representative and what part is to be taken literally a use case on the other hand represents a generic scenario
01:01:03
it's a specific interaction however with a given user interface cast in generic terms the use case in this particular example might read something like customer calls tech support here's the
01:01:16
prompt keys in ID now there are a lot of assumptions still built into this it assumes that the primary mode of output from the computer is audible they
01:01:32
hear the prompt and that the user is going to key in their ID on the telephone keypad what would the essential use case in
01:01:43
this case be like well an essential use case is a generalization of use cases that represents abstract interaction based on purpose or intent the user asks for help and identifies
01:01:57
themselves now the differences here are very important the difference between the first two scenarios and use cases is exactly the kind of thing that all of you who program would appreciate
01:02:10
immediately it's actually this the difference between writing something in literals or constants and writing something in variables and essential use cases are an additional level of abstraction and
01:02:23
generalization from use cases and what that allows us to do is to design simpler better and potentially more creative and Innovative user interfaces
01:02:35
the last abstract tool that I'll just briefly describe is something we call the use context model this is an abstract model of the workspaces that users use a concept that
01:02:48
we originally borrowed from Karen holtzplatt and you buyer they call them work environments it's based on an observation about how human beings normally go about accomplishing tasks
01:03:01
they tend to do them in specific places or with an array of specific tools and materials that support that work so if I want to change the oil on the
01:03:13
car I don't go into the kitchen I go into the garage I don't get out a ladle and a pot I get out cans of oil and a wrench and things like that
01:03:25
if I go into the dentist and the agenda for the day is an abstraction is a a an extraction or an abstraction
01:03:38
what's arrayed on the on the tray by the assistant or the hygienist is very different set of tools and materials than if the agenda for the day is a routine cleaning this is so ubiquitous about how we carry
01:03:51
about tasks that it's something that that only academics would ever even think about so the use context model is an abstract way to represent those tools and materials that would be needed to
01:04:02
support the work as represented by a particular essential use case it's nothing fancy we do it by laying out Post-its on on paper the result is something that some of our
01:04:15
colleagues refer to as a low Fidelity prototype because it looks like a prototype for screens and dialogues and things like that except not very well drawn the widgets don't look like widgets now
01:04:27
we think this actually misses the point of it because it's not a low Fidelity prototype it's actually a high fidelity abstract model that allows us to work through key questions in the organization and architecture of the
01:04:40
interface without having to draw or decide on details of exactly what those things are going to look like or how they're going to be arranged ultimately of course this guides the layout of an actual user interface prototype
01:04:53
now I haven't said anything about users in this process directly I've talked about models that help us to understand what they're trying to accomplish and how we're going to support it the problem of users and development has
01:05:06
been with us for a long time all the way back to the traditional software development life cycle models which were sequential based on a series of steps or phases what has popularly been called
01:05:19
the waterfall models and these models are aptly named for that cold Icy Splash at the end where you suddenly realize oh I'm in
01:05:31
deep water and I don't have a paddle of course we've gone beyond that and now we have a variety of modern recursive irritative Gestalt translational and concurrent engineering uh models um
01:05:46
here's one example that comes from Ian Graham he calls it Soma um the question however is still where are the users in this process and if we look
01:05:59
for them it's hard to find them ah there they are this particular model I picked because it actually has explicit reference to an activity called user review that could occur many times
01:06:12
on the other hand in practice very often users are still viewed as problems why well because we don't know how to talk with them they don't know what they need
01:06:26
uh we're going to leave out requirements so anytime we see them coming down the hall it probably means they want something more or they want something changed and in most of the modern software
01:06:40
development life cycle models there's just no attention to user interfaces except as a technical detail or an aside as in most of those books on object-oriented design
01:06:53
now object orientation has offered a promise for a very long time the promise of seamless development This Promise also contains some problems it begins again with that wonderful real
01:07:07
world whatever it is uh and moves through a process of more or less object-oriented model building and eventually produces object-oriented
01:07:19
software in the idealized view all of this is one smooth process without distinct phases or steps or disconnects or or or or changes of of point of view
01:07:33
um in the ideal case what this allows is us to use the vocabulary of the application domain and of users and embed that into the software in such a way that that vocabulary is a
01:07:47
consistent way of communicating not only with users and with each other but also with the machine there's still the question of where are the users in this process do we talk to them at the beginning in
01:08:01
order to learn their language and then dismiss them or do we invite them in and give them an office how do we do that well here's a flexible alternative that
01:08:13
could be called usage centered one way of looking at this consisting of a number of activities focused on modeling what it is users need and are trying to accomplish
01:08:26
some some activities involved with developing initial versions of systems some activities involved with fitting those to the real world context some activities involved with producing
01:08:39
the software that will actually be used and ways of improving that now how this differs from the more traditional models of software development life cycles is it consists of a collection of
01:08:52
overlapping and concurrent activities which in many cases can actually be reordered reordered to fit the needs of a particular development project or reordered in in some cases dynamically
01:09:06
as the needs of the project change over time it's model driven and what in fact is the core model is the essential use Case Model which drives the structure of the user interface architecture
01:09:18
it drives the object during the design process it drives the construction process and it drives the inspection process and testing process it's also usage centered at the very heart of it
01:09:32
is these models of essential usage and it's user involved users play a role in collaborating with the development team at key points at those points where they
01:09:45
are most needed and when they can be of most help all right where does this leave us if we want to produce objects as if people mattered then there are some things that
01:10:00
we need to do first of all I think we need to integrate usage what it is users are trying to accomplish and usability how
01:10:10
well we support that as a continual and primary concern throughout the object-oriented development process secondly I think we need to incorporate
01:10:23
user interface design with a special object-oriented twist to it as an explicit activity within our methods and methodologies not as a as a side issue
01:10:37
not as a peripheral concern but as something very important and Central in the process third I think we need to find innovative ways to Express
01:10:49
objects and object technology and the object-oriented metaphors at the interface not in ways that we think are clever cute mathematically elegant but
01:11:02
in ways that are driven by the real needs of real users what does that mean well we're only going to understand those things if we involve users in some way appropriately
01:11:15
as collaborators in development now it's rather shocking to think so many decades into the evolution of object orientation that we're just now getting around to really be concerned about that
01:11:29
but the truth is object orientation started out with developing things to serve us so we were the users and we understood the problems and the
01:11:40
issues and as object orientation moved out and began to address the patterns of the and problems of the rest of the world we had to pay more attention to those issues
01:11:53
how do we do this well we need to understand from users through their involvement their intent what they're trying to accomplish their goals or purposes the roles that they
01:12:05
will be playing in relationship to our systems the vocabulary they're using the patterns of usage and how those patterns of usage will change and what they need in order to support that Usage
01:12:18
Now needs are not the same as once we jokingly tell our classes that you should never ask a user what they want the risk is they'll tell you
01:12:33
and they'll tell you whether they know or not and not only that the worst question you can ask is yes and what else would you like because they'll always have an answer
01:12:44
when Microsoft released word for Windows 7-0 they proudly announced that as the result of the wish line that they had been operating they had been able to
01:12:58
satisfy in the new release some I don't know was 800 wishes and the user interface looks like it there are there are studies of high-end word processors that have actually found
01:13:14
that there may be as much as some 20 percent of the features of the system that no user ever uses which means 20 of the code might as well not have been written
01:13:26
and instead what they do is provide facilities at the surface of the user interface that at best just distract users I think that the empowerment of people
01:13:40
in the workplace includes us as developers and our end users is an important issue but from my point of view in order to empower users first of all you can't ignore them you can't leave them out of
01:13:53
your methods you can't leave them out of your agendas you can't leave them out of your your your thoughts you have to pay attention to them but more importantly
01:14:05
compared to the traditional notion of user-centered design to empower users to really Empower users what you need to do is not to make them the center of your
01:14:16
development universe the important thing is to give them better tools so in the end it does become a technical issue the kind of thing that we as
01:14:30
technologists as Geeks as nerds are basically concerned with now there are people who think that the humanistic concerns are really important I happen to be one of them my own
01:14:43
experience and in looking at the results that come out of these processes is that they're not necessarily all that good and the tool perspective I think is the perspective that has the greatest payoff
01:14:56
avra Miller of Intel in an interview said look in this business we're tool makers we're not artists but you know being a tool maker isn't a
01:15:10
bad thing tool makers make things possible for other people and that's where I want to leave you is go out there make things
01:15:21
possible thank you very much and cope this is for you [Applause] foreign [Music]
01:15:38
[Applause] [Music] [Applause]
End of transcript