The Artima Developer Community
Sponsored Link

Weblogs Forum
Kelly Doesn't Care About Hash Tables

1 reply on 1 page. Most recent reply: May 27, 2005 11:30 AM by Damian

Welcome Guest
  Sign In

Go back to the topic listing  Back to Topic List Click to reply to this topic  Reply to this Topic Click to search messages in this forum  Search Forum Click for a threaded view of the topic  Threaded View   
Previous Topic   Next Topic
Flat View: This topic has 1 reply on 1 page
Matt Bauer

Posts: 7
Nickname: mbauer
Registered: Mar, 2003

Kelly Doesn't Care About Hash Tables (View in Weblogs)
Posted: Apr 17, 2003 1:26 PM
Reply to this message Reply
Summary
You wouldn't write a method without a test, why would you design a user interface without a test? I believe usability is a critical component in agile software development. Had I made usability part of my software development, I know that dating program would have changed my life.
Advertisement

I remember the first real program I wrote, a computer dating application while in school. I was quite excited at this opportunity for both financial and personal reasons. For six days I worked on the application and matching algorithms. On the seventh day I wrote a backdoor.

I was single at the time, being nerdy and such, and saw this program as my way out. I could use the backdoor to upload a list of girls that I wanted to date. Then when the nightly processing occurred, a little post processing procedure would append my name to the list of compatible boys for that girl. I was quite excited about this code. The application went into production after three weeks and I got my hair cut in anticipation.

After a week - Nothing. I didn't understand. Was there a bug? Is the system not running? I logged into the system and queried the list of girls. There was only twenty in the system and it wasn't any of the twenty on my list. In my calculus class I asked by friend Julie why so few girls used the application. I mean there were signs up and terminals throughout the building.

Should told me that Kelly tried to use it but it keep beeping at her. Beeping at her I thought? I decided to ask Kelly myself. Normally I wouldn't talk to Kelly, but that was only because I went numb when she was near. Not this time though! I was going to help her use my application and be right next to her when my name was printed next to hers.

I met her later that day at the cafeteria terminal. She started the dating application and entered her name and gender. She entered her height and height of boys she likes. She then entered her hair color and the color hair of boys she likes. Then the application beeped. She entered 'sandy blonde' again and the application beeped. She tried entering 'sandy blonde' again and I made other plans for Friday night. 'Sandy blonde' wasn't an option in the application. When Kelly entered 'sandy blonde' it would beep and display 'invalid hair color'.

I learned two important things that day. First, I needed to dye my hair. Second, Kelly didn't care that the application used the latest compiler. She didn't care that I utilized a hash table. She didn't care that it was running on the new server. All Kelly cared about was that it cost $5 and wouldn't let her find a boy with 'sandy blonde' hair.

I tell this story to put into perspective the Agile Manifesto principal, "Working software is the primary measure of progress." "Working software" is more than software that's passed unit tests. It's software that's working for the user. My dating application had passed all the unit tests, but it wasn't working to find 'sandy blonde' boys for Kelly.

But how do we ensure software is working for the user? We just need to remember another Agile Manifesto principal, "continuous customer interaction." It is important to remember that the customer is more than the few users assigned to answer our business logic questions. Customer means everyone using the system. The few customers assigned to the project have the luxury of help from the developers. They also suffer from a much higher understanding of the software do to their involvement in its development. In the end they don't accurately represent the end user. To truly make software that works for the user we must make usability design and testing part of software development.

I think we're very close to this. How easy would it be to have a usability engineer work on a story card prior to a developer? They could perform some paper prototyping of the UI with various users and then attach the final prototype to the story card. The developer could then focus on the code and not have to worry about the UI design. Then at every release of software the usability engineer could perform usability testing on it. Any usability problems would be put on a story card and the process starts over.

Is usability this important? Would it really pay to hire a couple usability engineers for a project? In short, yes. Here is just one statistic:

"Wixon & Jones did a case study of a usability-engineered software product that increased revenue by more than 80% over the first release of the product (built without usability work) (Wixon). The revenues of the usability-enhanced system were 60% higher than projected. Many customers cited usability as a key factor in buying the new system." (Bias, R. G. & Mayhew, D. J., (Eds.) (1994). Cost-Justifying usability. San Francisco: Morgan Kaufmann Publishers)
A full listing on the return of investment with regards to usability may be found here.

Can't developers just design the UI? In my experience the answer is almost always NO. Usability engineers often have design and/or psychology degrees. They have taken human factors courses and have a great understanding of design heuristics. What the last usability book you read?"

I encourage you to explore the world of usability. The easiest way is to join your local chapter of the Usability Professionals' Association. If you're in the Minneapolis area, definitely check it out. Some of the best usability engineers in the world work in and out of Minneapolis. I also recommend the following books and web sites.

Designing Web Usability by Jakob Nielson

The Design of Everyday Things by Donald A. Norman

Information Architecture for the World Wide Web by by Louis Rosenfeld, Peter Morville

Paper Prototyping by Carolyn Snyder

Jakob Nielson's Website - http://www.useit.com

Architecture and Design for the Digital Landscape - http://www.boxesandarrows.com

Keith Instone's Website - http://www.usableweb.com

Usability Professionals Association - http://www.upassoc.org

You wouldn't write a method without a test, why would you design a user interface without a test? I believe usability is a critical component in agile software development. Had I made usability part of my software development, I know that dating program would have changed my life.


Damian

Posts: 1
Nickname: cheater
Registered: May, 2005

Re: Kelly Doesn't Care About Hash Tables Posted: May 27, 2005 11:30 AM
Reply to this message Reply
lol, nerd
should've bought weights instead of a pc

Flat View: This topic has 1 reply on 1 page
Topic: C++ Meta-Binders Previous Topic   Next Topic Topic: Conversational Programming Languages


Sponsored Links



Google
  Web Artima.com   

Copyright © 1996-2014 Artima, Inc. All Rights Reserved. - Privacy Policy - Terms of Use - Advertise with Us