You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 4 Next »

Table of Contents

Analysis

Legend:

  • (tick) issue to be checked for each developed action/dialog
  • (star) new feature
  • (warning) important note
  • (plus) advantage
  • (minus) disadvantage

Current Status Analysis

UI Design/Usability Perspective

Metaphors

  • admin central
  • dialogs
  • editing in preview mode (only)
  • paragraph - dialog - template relationship
  • 4-clicks to edit

Disadvantages

  • (minus) not robust against errors

    e.g. setting a wrong value in the filter config can completely corrupt the whole instance

  • (minus) missing context
    • page structural view vs. content editing view (single page); context is lost when opening a new window

Technical Perspective

Disadvantages

  • (minus) no standard framework used
  • (minus) "diverged" control implementations

    e.g. a control is extended multiple times, to perform a single change one has to edit multiple files

  • (minus) no code/model/style separation
  • (minus) limited extension functionality (tree/list views only)
  • (minus) highly increased maintainance time

Users & Use Cases

Knowing the user is one of the most important thing when developing a user interface. When designing the interface or when we're taking any decision we should consider the following user roles and their characteristics.

Editor

Characteristics

  • usage intensity: layman, little experience
  • usage frequency: regularly
  • application domain knowledge: none

Tasks

  • creating and editing pages/contents
    • website
  • organizing content (uploading, moving, etc.)
    • website
    • documents
    • data

Manager

Characteristics

  • usage intensity: medium experienced
  • usage frequency: regularly
  • application domain knowledge: none to little

Tasks

  • reviewing, publishing/rejecting changes
  • configures website sections / mappings between website <-> data module
  • configures access restrictions (partly)

Administrator

Characteristics

  • usage intensity: experienced
  • usage frequency: sporadically
  • application domain knowledge: little

Tasks

  • configures server infrastructure, subscriptions, mail settings etc.
  • installs/configures modules
  • configures access restrictions

Developer

Characteristics

  • usage intensity: expert
  • usage frequency: regularly
  • application domain knowledge: advanced

Tasks

  • configuring templates
  • adding/altering functionalities
  • integrating other systems
  • ...

Business Goals and Intentions

Main technical goals:

  • maintainability
  • extensibility
  • customizability

Interface design related goals:

  • usability (also see next section@Usability goals)
    • contextual working
      • (tick) hide non-necessary features/functions
      • (tick) or "show most important functionalities only"
      • (tick) preserve context
    • error robustness
    • support learning
      • (star) built-in help
  • user experience ("joy-of-use")

Usability goals

Usability in general

Controls need to be visible, with good mapping their effects, and their design should also suggest (that is, afford) their functionality. (Donald A. Norman)

Generally usability goals can be categorized in three ways:

  • effectiveness
  • efficiency
  • satisfaction

Basic Principles of Interaction Design

Task Reasonableness

The user should be able to perform his tasks effectively and efficiently.

Availability

  • (tick) location transparent: browser based system
  • (warning) avoid/indicate session timeout

Usefullness

  • (tick) every dialog should hold an appropriate amount of interaction points
  • (tick) e.g. replace "OK"-only dialogs with status messages (which might disappear after 30 secs. automatically)

Comfort

  • (tick) show all necessary information
  • (star) show links to related sections
  • (star) show help topics

Clarity

  • supported by interface design (colors, balance, etc.)
  • (tick) don't show actions that are not required
  • (tick) always indicate navigational context, (star) therefore use breadcrumb

Self descriptiveness

Is the purpose of the software system perceptible?
It should be possible for the user to recognize the application's data model

There are different ways to provide information...

  • as feedback
  • on request
  • as additional descriptions

Several questions give a hint on the fact if the user is able to perceive the applications state. Those entral questions are:

  • where am I?
    • "context, context, context"
  • what can I do here? where can I go to and how do I get there?
    • (star) context sensitive actions/function bars, means that the icons available on the function bar depend on the current selection
    • (tick) dialogs have clear outcomes
  • how did I get here?
    • (tick) highlight navigation path
    • (star) use breadcrumb to indicate navigation path
    • (star) even use fade-out effect for last-clicked element

Assessability

Assessable is if the user...

  • ...dictates the navigational path
  • (tick) gets indications for flow constaints appropriately
    • (star) modal dialogs
    • (star) wizzards
      • use steps
      • for intermediate steps use "Next" as button label, the last one is labeled with "Save"
    • (tick) print a message that clearly states if an action can be aborted or not
  • ...dictates how fast he passes the navigational path
  • (star) allow aborting an action
  • ...can decide how he want to access information
  • (star) provide multiple navigational alternatives
    • browse the menu/trees/lists by using mouse/keyboard
    • use short cuts
    • use address bar or breadcrumb
    • use specific URLs; (warning) conflicts with AJAX behavior
  • (star) provide multiple views
    • list/gridtree
    • preview with inline editing
  • (tick) the UI should indicate
    • that specific data can be viewed differently if appropriate
    • that regardless of the selected view, the underlying data is the same

Checklist
Are the usable functionalities (in current context) obvious?

  • (tick) there shouldn't be functionalities that first have to be discovered by (right-) clicking everywhere
  • (tick) there have to be well-defined places where all possible functionalities can be found/accessed from
  • (tick) use disable/enable, highlights dependent on the user's current selection to define the context

Is the current application status observable?

  • (tick) give the user feedback
  • (star) loading/progress bars
  • (tick) introduce a general place for messages (like "caution", "error", etc.) / (star) status bar in normal applications

Is the current application status interpretable?

  • (tick) indicate if an action will most probably takes a while to be finished
  • (star) use an animated item to indicate that the system is still working
  • (tick) indicate subsequent dialogs by "..."

Does the current application status signal allow a comparison to the users intent?

  • (star) percentage bar for huge uploads

Some features (not only GUI related) might help making the application assesible:

  • (star) scripting console (5)
  • (star) fail-safe mode (5)

Expectation Conformance

Consistent dialog behavior

  • (tick) if a (modal) dialog has only one outcome, disjunctive UI controls have to be used

    e.g. don't use tabs for link selection but radio button list or drop-down control instead

  • (tick) same labels always indicate the same action
  • (tick) keyboard shortcuts are used consistently
  • (tick) a user sees when a conversation/action/screenflow ends

    e.g. a save button always ends the conversation, which is indicated by closing the window

Conformance to the users' characteristics

  • consider frequency of usage and software system's experience

Conformance to generally accepted conventions

  • use metaphors; try to apply desktop application metaphors

Checklist
Are the results of an action foreseeable?

  • (tick) give visual feedback when changes from in-place editing are saved
  • (tick) hitting dialog's buttons either triggers validation messages or close that dialog, returning to exactly the state in which the application was before
  • (tick) use "..." conequently if hitting a button triggers a dialog to show up

Failure Tolerance

Avoid errors

  • (star) auto-completion
  • (star) converters/formatters/advanced controls (e.g. date selector)
  • (star) input validation
  • (tick) check not only syntactical but also semantical checks

    e.g. setting a wrong class for a filter can destroy the whole instance entirely

Signal errors

  • (tick) provide appropriate messages if validation fails

Provide measures to resolve errors

  • (star) tooltips
  • (star) show help links context sensitively

Customizability

Customizability is important since we want to increase the efficiency of the application's users which have different experiences on how to work with a software system.

Editors most likely use the mouse to interact with the system. However, expert users might prefer keyboard shortcuts or different window arrangements to perform there task.

Customizations regarding the task that is to be performed

  • (star) provide scripting support

Customizations accounting the user's experiences

  • (star) user preferences
  • (tick) provide alternative views

    e.g. developer prefers trees or even writing XML files instead of clicking through the UI

    e.g. inline editing vs. tree editing

  • (tick) provide alternative navigation options

    e.g. address bar vs. clickable menu

Learning Support

  • (tick) provide descriptions in dialogs
  • (star) tooltips/context sensitive help
  • (star) help/documentation links
  • re-new knowledge
    • (star) tip-of-the-day

Software/Hardware Constraints

Deployment Platform

Note that it is out of the discussion to switch to another deployment platform with the next release. However, we should discuss different deployment platforms because choosing the underlying technology (JSF vs. Webservices) might have impacts on the options regarding deployment scenarios in the futute. E.g. using JSF will prevent us from (easily) developing an alternative a rich client UI on top of that technology.

Browser based software system (HTML/JavaScript based)

  • (plus) simple updates
  • (plus) scalability
  • (plus) development experience
  • (plus) user acceptance/experience
  • (plus) editing the website directly in the final site design is a good, successful mapping
  • (minus) usability loss
  • bad performance / higher latency
    • (minus) long response times (user feedback)
    • (minus) no multitasking (for a single user) / no backgrond task processing, except when fully supporting multiple browser windows/tabs
  • not very error robust
    • (minus) use of browser back/forward button could loose to data loss
    • (minus) session timeout might cause data loss
  • (minus) browser/platform incompatibilities
  • feature constraints
    • (minus) no undo support
    • (minus) limited keyboard support
    • (minus) limited drag'n'drop support

Compatibility
(thumbs up) compatible with Webservices approach
(thumbs up) compatible with JSF approach

Desktop application (e.g. Eclipse Rich Client)

Comparison to the browser based approach.

Legend: (plus) means also supported; (plus)(plus) means even better supported; (minus) not or not that good; (minus)(minus) even worse

  • (plus) updates
  • (plus) scalability
  • (minus) development experience
  • (minus)(minus) user acceptance/experience
  • (minus)(minus) mapping
  • (plus) usability
  • (plus) performance / latency reduction
  • (plus) error robustness
  • (plus) platform compatibility
  • feature rich
    • (plus)(plus) undo support
    • (plus)(plus) full keyboard support
    • (plus)(plus) full desktop drag'n'drop support
    • (plus)(plus) native look & feel

Compatibility
(thumbs up) compatible with Webservices approach
(thumbs down) not compatible with JSF approach

Web based rich client (Flex/Air)

  • (plus) updates
  • (plus) scalability
  • (minus) development experience
  • (minus) user acceptance/experience
  • (minus) mapping
  • (plus)(plus) usability
  • (plus)(plus) performance / latency reduction
  • (plus)(plus) error robustness
  • (plus) platform compatibility
  • feature rich
  • (plus) undo support
  • (plus) enhanced keyboard support
  • (plus) basic desktop drag'n'drop support (using Adobe Air)

Compatibility
(thumbs up) compatible with Webservices approach
(thumbs down) not compatible with JSF approach

Software Requirements

Client-side requirements

  • (tick) browser compatibility: Internet Explorer 6+7, FireFox 1.5+2, Safari 2+3, Opera 9

Server-side requirements

  • (warning) Java 5
  • (warning) Servlet 2.4/2.5

Environmental conditions

Metrics (current system)

Some metrics to approcimate the size of the current system:

  • more than 45 dialogs
  • two structural components: tree, list
  • two navigational components: accordeon, context menu
  • ~19 controls

Project Runtime

Approximately ~50 work days (including technology evaluation):

  • analyses (40%) ~20d
  • evaluation (15%) ~8d
  • prototyping & test (15%) ~8d
  • implementation (first sprint) (30%) ~15d
  • No labels