Sunday, April 22, 2012

SD Chapter 8: Developing the User Interface

The user interface, as we all know, is main way that users interact with the software.  It is one of the most important elements of a piece of software.  The book outlines the design principles essential to making a good user interface.  Here's the list with the descriptions from the book:

  1. Completeness - "All the steps of every use case in the design must appear on a page or group of related pages in the user interface, but no more."  In other words, the user interface should be designed with every possible scenario that could happen in mind.
  2. Language - "The language of the interface must be consistent with the language of the domain and the user.  All labels and user options that appear on individual pages must be consistent with their counterparts in the design document and the application's domain." 
  3. Simplicity - "No page should contain too much information or too little.  Each page should be pleasant to view, yet its functionality should not be buried by excessive detail or elaborate stylistics."  It's the basic rule for all user interfaces - if it takes longer than 15 seconds to figure it out, it needs to be redone.  Simplicity is a key component because, let's face it, no one wants to spend more than a minute or have to buy a book to figure out how to navigate the user interface for the software they're using.
  4. Navigability - "Navigation within a page and among different pages should be simple, explicit, and intuitive."  This goes along with the previous one.
  5. Feedback and Recovery - "Each page must provide the user with a clear indication of what has just been done, what can be done next, and how to undo what has just been done."  If for some reason a user entered incorrect information and wanted to retrieve it for correction, there needs to be a way for users to recover that data.
  6. Data Integrity - "The types and valid values for individual user data entries must be clearly indicated.  the software should validity-check all data at the time of entry and the user should be required to correct errors before the data are kept in the database."  In other words, users need to know exactly what they should enter or be entering into the database.  We wouldn't want the wrong data!
  7. Client-server Integrity - "The activities of several different users who happen to be using the system at the same must be kept separate and independent."  This is crucial, otherwise data would get mixed up, or worse, the server could crash.  And that is the last thing anyone wants for their software.
  8. Security - "An individual user should have access to the system's functionality, but only that functionality for which he/she is authorized."  Any information, but especially sensitive information about users, should be safe from any outside access.  This is pretty much a given.
  9. Documentation - "Ever page or group of pages in the user interface should be linked to a step-by-step on-line instruction that teaches a user how that page can be used to accomplish a task."  Just in case the user can't figure it out, there should always be documentation to explain what the software is for and how to use it.
RMH Homebase is once again used as an example to showcase these principles, but I don't think it should be.  With every exercise we've done over the course of the semester, we've been having to add different features to the code for this project that meet these design principles.  The thing is, I think these should have been a part of the project all along.  For those of you that don't know, RMH Homebase is a real world project used by the Ronald McDonald House.  With Exercise 8.1 at the end of this chapter (asks you to change the password security to make it more secure), I read that and thought "Shouldn't that ALREADY be a part of the project?"  I mean, that's one of the key design principles listed for user interfaces and it hasn't been added before?  I don't understand how that could have happened.  I realize that this happens with other projects as well, but I have to say that I expect better of a piece of software designed for an agency as large and well-known as the Ronald McDonald House.

No comments:

Post a Comment