Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migration of unmigrated content due to installation of a new plugin

Table of Contents

Table of Contents

Analysis

Info

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

...

  • (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

...

  • 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

...

  • 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

...

  • 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

...

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

Business Goals and Intentions

Main technical goals:

  • maintainability
  • extensibility
  • customizability

...

  • usability (also see DEV: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)

...

  • effectiveness
  • efficiency
  • satisfaction

Basic Principles of Interaction Design

Task Reasonableness

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

...

  • 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

...

  • 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...

...

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

Expectation Conformance

Consistent dialog behavior

...

  • (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

...

  • (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.

...

  • (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

Info

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.

...

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):

...