Usability Institue Logo- A bolt that can be fastened with any of 4 tools
PicoSearch
Reducing Training to Its Sensible Minimum: Zero...
Inexpensive, Independent Usability Consulting by Jack Bellis
Home Page- List of All Content Home Page- All content, in date order Resources: page describing tools you can use Morsels: just our short articles and blurbs Just our Before&After Articles Site Reviews and Critique About: details on who I am and what I do Address, phone, number,  and so on
Contact me for a FREE usability review!
 

Software Functionality Catalog

If you want to contribute a section, email me; I will add you to the authors list. Someday this may be an industry-wide doctrine.

  What
  • A reusable list of all typical infotronic functionality
  Why
  • Too many projects are surprised to find one feature after another that is missing, late in the game. That's because projects start from a blank slate and add functions, whereas they really should start from a full feature list of everything the software world has learned, and work backwards. Eventually, this stuff will be in a framework (for every development environment) rather than a dead document.
  • So we all stop reinventing the wheel on every software project
  • So that usability expectations are addressed at the only time where they have a chance
  • To finally deliver quality, usability, and usefulness
  How
  • Copy it into your specs
  • Delete the irrelevant
  • Add the unique
  • Consider crediting www.usabilityInstitute.com at your option
  • Is there any wiki out there that has strong support for tree-wise editing? Then I'd gladly post this somewhere where everyone could contribute.
  Who

Comments

I recently worked on two different projects that have features for groups and members (within the groups). An issue came up on the first project, after the initial design was coded and being tested, that users needed to see at a glance all of the members within the various groups so they could resolve problems with the structuring of the groups. We had a classic function-driven design in which one created groups and then added/edited/deleted members within the groups, but we had no at-a-glance, multi-tiered list or tree.

I realized we were developing another project at the same time, and it had the same issue; a functional spec was written calling for typical group maintenance: add/edit/delete groups and members. But again no foresight that a powerful browse/sort facility would eventually be needed. Why? Because all software projects start over again from the beginning. I've long lamented that the flowchart of most business logic should have been committed to paper for many years now, but it still isn't. Well, at least we can make a list of conceivable software capabilities... a function list of the oft-repeated needs that are common to many software apps. So here you go. It will be added to over time but incompleteness is no excuse for inaction.

Function Tree

  • "Primitives"... basic interactions (infrastructure/foundational usability?)
    • Point to an item
      • Text items provide rollover explanation
      • Critical information is in a dynamic rollover (for instance in a list of international locations, the local time is shown)
      • Interaction items (buttons and links):
        • Provide visual cues
          • Before pointing, that they can be interacted with such as a beveled edge or blue/underline motif
          • After pointing, that they can be interacted with such as a color shift or movement, depression of button
    • Controls
      • Hyperlinking/Cross-Referencing
        • All information is linked to the natural destination (the classic desktop app example is that group names open the group list)
      • Input/Text Field
    • Click or otherwise invoke an item (From Tog)
      • Any delays:
        • Visual or sound feedback in 1/20th second
      • Delays of 1/2 to 2 seconds
        • Hourglass
        • Animate the hourglass
      • Delays over 2 seconds
        • Message
        • Explain expected length of delay...
        • estimates are good not bad
        • Add descriptive details for long delays
        • Provide beep after >10-second delays are over
        • Provide active, not passive notifications after >10-second delays are over
      • Delays involving loss of context or control (round trip to server, or system can't be used during delay)
        • Trap accidental multiple clicks
        • Immediately display an intermediary message page.
        • Alternatively perform results in an asynchronous (background process/offline) manner
        • Display a modal dialog box, not just a subtle status bar indication (my FreshBooks review)
          • Progress indicator
          • Detailed rolling display of activities, hypothetical if it must be
          • "Finished" message
          • "Close button
      • Delays involving accountable results
        • Provide active, not passive notifications after >10-second delays are over
          • Interactively
            • Log file: open, save, print, re-open later
          • Asynchronously
            • Via email
            • Via log file in known location on system and on user interfac
  • Accessibility
    • Most accessibility items are techniques moreso than discrete functions. Refer to Advice on Accessibility.
    • Skip to Main Content: Use a link at the top of the page with the exact words, "Skip to Main Content" so that screen reader programs can let blind or low-sight users avoid listening to the repetitive links at the top of every page.
  • Application:
    • Options, Preferences, Customize
      • Macros
      • Keyboard
      • Buttons
    • Extend
      • Download Extensions
    • Check for Updates
      • On demand
      • On schedule
    • Bulletin Board/Whiteboard (this is an unstructured note posting capability)
      • Private/public option
    • Pushed Help
      • Announcements
        • Email all users
        • Display announcement panel
        • Display by start and end date
        • Auto delete by date
        • Embed links
      • Required Field Indicator: Place a red asterisk adjacent to field labels.
      • Glyphs: Icons on buttons, menu items, and dialogs, visually landmarking and reinforcing the function. (Constantine/Lockwood)
      • Rollover/Tooltip
        • Provide descriptive text for icons and terse labels
      • Field highlighting: Glow or color-coded border on current/focus field or control, providing "You are here" information. This technique is inspired by Macromedia.com's shopping cart. Image of highlighting technique
      • Embedded Prompts: Text such as "Select a Value" within dropdown lists. (Constantine/Lockwood)
      • Input Prototypes: Representative examples of required formats, such as "[Time of Day 13:30]" (Constantine/Lockwood)
      • Input Templates: Syntax examples of required formats, such as "[Time hh:mm]" (Constantine/Lockwood)
      • Workflow You-Are-Here Indicator: simple timeline bar such as 1-2-3-4 with highlight over current step.
      • Tip of the day
        • Don't show this again
        • Edit>Preferences>Enable Tip of Day
        • Show at which interval: once, never, session. Example
      • Just-in-time (topic intro) help panels Example Example2
        • Option at Display Time: Don't show this again
        • Rollover: Explanation of how to disable Example
        • Edit>Preferences>Intro Panels
          • Show/Hide Intro Panels (individual check boxes)
          • Open Intro Panel (hyperlinks on each text description)
      • "Coach": sensing software that makes occasional recommendations. For instance, functions could be tracked for frequency of use and after 10 logins, unused functions could be publicized.
      • Instructor-led training
        • Traditional classroom
        • Synchronous, distance learning (online at the same time, also called virtual classroom)
        • Asynchronous, distance learning (online at different times, facilitated)
      • Account Expiration Reminder Example
    • Pulled Help
      • Contents and Index (classic help file)
      • Documentation of Hotkeys, exhaustive listing
        • By hotkey
        • By function, categorically
        • By function, alphabetically
      • Techniques (theory of operation; the oft-missing information about how an app works)
        • Print all at once
      • What's New (information in date order)
      • Survey: Did this topic help (Image)
      • User-Contributed Content: A facility for users to add their own topics and information to context-linked help pages, primarily to provide business information that is not appropriately addressed in generic product information.
        • Public/private
        • Approve by administrator, and make public
    • Sandbox (Play database)
    • About
      • Version Number
      • Build Number
      • Build Date
    • Registration (registering a previously trial version of software)
    • Go to Company Website
    • Support Group
    • Send Feedback
    • Errors
  • Served Web Pages/ (hey, it's not easy to organize a changing world!)
    • Easy URL Entry
      • Support xxx.com without "www"
      • Avoid punctuation and underscores
    • Mistaken URL Handling
      • "Not-found" (404 error) page
        • Link to Site map
        • Search box
        • Sparse or "exception-like" appearance
        • Detect and explain invalid links that are from within your own site (http://www.alistapart.com/articles/perfect404)
        • Detect and explain invalid (outdated) links from common search engines.
        • Detect and explain invalid links from undetectable sources (referrers) such as Favorites.
        • Function to "Report this broken link"
    • Intuitive (tidy) URL subfolder names (http://www.guuui.com/issues/04_04.php)
      • Examples:
        • <root>/downloads
        • <root>/products
        • <root>/contacts
        • <root>/sitemap
        • <root>/search
        • <root>/about
        • <root>/support
    • Page Generalizations
    • Support Page
      • Forums
      • Wiki
      • FAQ
    • Contact Pagewww.daycaresoftware.com
      • Form to submit a message
        • Name
        • Phone
        • Email
        • Message
        • Submit
        • Clear
      • Phone Numbers
        • Voice
        • Fax
        • Toll-free
      • Chat Links
        • AOL/Yahoo/MSN
      • Mailing/Brick-and-Mortar Address
    • Page Utilities (Image example)
      • Print
      • Send
      • Bookmark
      • Comment
      • Report
    • Interaction Types
      • Mail
        • Paragraph-wise correspondence
      • Share (Image example)
      • Notify
      • Friend
      • Chat
        • Sentence-at-a-time correspondence
      • Forum
        • Post question/comment
        • Post reply
        • Web search
        • Account profile
      • Wiki
        • Public editing
      • Blog
        • Post
        • Post reply
      • Community
        • Discussion Group
        • Review (post review)
        • Rate (stars in interactive control)
        • Vote (squidoo: post then escalate candidates)
    • Ecommerce
      • Mimimum Distractions on Form/Cart PagesProducts
      • Product Presentation
        • Images can be enlarged
        • Close-ups (for example, shoe tread pattern is in focus)
        • Different Angles (for example, shoes show sole)
        • Product in use
        • Units of measure clear
      • Landing Page (the first page a user reaches after responding to a solicitation to go to an online vendor; courtesy of MB via ixda.org discussion group). Note: in the trade, the solicitation is called a "creative," as in "After they click on your creative, you have 4 seconds to convert them."
        • All of the following above the fold
        • Purchase button
        • Product/Service identification (name/number)
        • Product image or other visual
        • Price
        • Availability (whether it's in stock)
        • Delivery cost
        • Delivery duration
      • Registration
        • Send activation email
        • Reminder to whitelist the company (image example)
      • Shopping Cart
        • Drag-and-drop to docked cart (http://www.panic.com/goods)
        • Shipping, tax info up front
        • Request purchaser contact phone number, person to ask for, time to call
  • Document (as in web pages, white papers, application-created files and documents)
    (The following pre-Web functionality really needs to be formalized because no one does it anymore.)
    • Revision Date... yes, you need to stamp one into the legible text of your doc, at the top .
      • Created Date (a special case, really, of Revision Date)
    • Table of Contents (this equates to the underlying and pervasive issue of all Web "browse" design and site maps).
    • Index, as in the back of a book (this equates to the underlying and pervasive issue of Web design, wherein intelligently-created indexes have become forgotten, and some would suggest that "search" is a replacement. We are of course learning just how misguided that notion is.
  • Window
    • Maximize
    • Minimize
    • Restore
    • Split
      • Horizontally
      • Vertically
    • Tile
    • Cascade
    • Freeze
    • Numerical Window Coordinates
  • File:
    • Open
      • New
      • Browse
      • Open Recent
      • Recent Files List
      • Import
      • Scan (Twain scanner compliance)
    • Notes
    • Statistics
    • Properties
    • Tell a Friend
    • E-mail as Link
    • Send
    • Add to Calendar
    • Save
      • Already-saved cue (the inverse is called a 'dirty' flag by developers)
      • Save copy (interim backup, seen in Macromedia programs, to save a good state while you continue with potentially risky changes)
      • Save All
      • Save As
      • Export
      • Publish
        • Upload when saved
        • Upload out-of-date files
        • Compare files to server
      • Version (saving versions, that is)
      • Rollback (like Version, but limited quantity of rolling versions)
        • Rollback Levels (example: "3" saves three old versions)
    • Backup (This section was inspired by Trust and Blame, an article lamenting the perils of electronic data.)
      • Save previous version as backup file (MS Word's "Always create backup copy")
      • Save automatically on timed intervals (MS Word's "Save autorecovery info every x minutes")
        • Configure the timed-saving interval
      • Save to external location
        • Prompt or remind
          • Configure the reminder interval
        • Save to (another) web host
        • Save to removable media
        • The vendor solicits, acquires, and tests the backup (proves that it is reloadable). This is a key for custom business software prior to the vendor's establishing market success. The failure of a customer's installation cannot be placed solely in the novice customer's hands.
      • Automatically load from backup upon failure (MS Word's autorecover prompt)
    • Print
      • Printer Friendly Version
      • Selection
      • Automatically convert embedded web links such as "Home" to the URL: RSIRescue.com
    • Close
    • Revert
    • Delete
    • Task List
      • Add/Edit/Delete Task
      • Indicate Task Completion
      • Indicate Task Incompletion
      • Report Task Status Summary
      • Clear Task Statuses
        • Across Files and Folders
    • Properties
      • Size
      • Identification
      • Folder Path
      • Custom Properties
    • Template:
      • New
      • Open
      • Save
  • Edit:
    • Cut
    • Copy
    • Paste
    • Record (macro)
      • Edit codes
      • Playback
    • Search
      • As a docked panel
      • Repeat, with keyboard support
      • Support for every entity (special characters)
      • Save and Open (reuse)
      • Meta-values: <Me>, <Today>
      • Replace
      • Replace all
      • Direction: Up, Down, All (cycle from current spot)
      • Search Results
        • Show searched criteria
        • Adjust search criteria interactively (type right over terms?)
        • View results as grid/list/table vs as detail/preview ("Google-like" results)
        • Explicitly state when no results are found
        • Suggest criteria with expected result counts
      • Scope
        • Current document
        • Folder/Backup
        • Project/Backup
    • Redo
    • Undo
      • History list with slider
    • Repeat
    • Format Painter
      • One-time-mode
      • Persistent mode
    • Selection
      • Select all in a single action
      • Select multiple
      • Select by touching (not having to completely encircle)
      • Select by encircling (merely touching doesn't select)
      • Invert selection
    • Invocation
      • Pointing (mouse and substitutes; touchscreen)
      • Keyboard
        • Function keys
        • Programmable (custom) keys
      • Voice
    • Order
      • Bring to Front
      • Bring Forward
      • Send Backward
      • Send to Back
    • Arrange
      • Distribute Horizontally
      • Distribute Vertically
    • Align
      • Left
      • Right
      • Center
      • Top
      • Middle
      • Bottom
  • Format
    • File
    • Page (page setup)
    • Section
    • Paragraph
    • Sentence
    • Word
    • Character (Font)
      • Preview at a glance
      • Sort by qualities (Antique, Modern, Serif)
  • View
    • Zoom
      • 100%
      • Fit in Window
        • Page Up/Down perfectly aligns to adjacent pages
    • Sort
      • Table columns
        • All data are separate columns (especially coded values, such as phone area codes, email status, individual email recipients; don't string together data when a table user will invariably want to sort every possible column)
        • Show sorted column
        • Show sort direction
        • Multi-column sort (sorting a column within another column) Example
        • Rollover row highlight, or "ruler effect") http://bugs.kayako.net/
    • Magnify
      • To dragged region
      • To occupied area
    • Full screen
    • Toggle tool panels
    • Rulers
    • Grid
    • Status Bar
      • Display state of current options
    • Guides
    • Hidden objects
    • Toolbars
    • Visual/Code Design
      • Visual design (and manipulate visually)
      • Codes (and manipulate ASCII [search, edit, replace text behind the visual interface])
      • Both
  • Security
    • Image Verification (ensures that a human operator is interacting with the system; also called "captcha" page/technique.
      • Audio Alternative for the visually impaired (Image) (Tag: accessibility. Some day I'll make this a full encyclopedic system.)
    • Users
    • Groups
      • View members in groups at a glance
  • Per Specific Object/Data Types(This section could include thousands of functions unique to the data types, and may in fact some day do so. For now, we'll target just those special items that distinctly add value that distinguishes particular products.)
    • Navigate
      • Browse Hierarchically: navigate the object structure in a collapsible outline (tree) control
      • Sort:
        • By date created
        • By date edited
        • By creator
        • By object name
    • Search
      • Non-denominational Search: Searches across all indexes: for instance, as in Amazon's Search function where a word is searched among Title, Author, and Subject without performing separate searches
      • AND, OR, AND NOT
      • Contains
      • By date
      • Suggestions at zero/few matches: show fewer conditions that match Example
    • Text
        • Select rectangular range (Word's Alt-drag)
        • <to be completed
    • Mail
    • Time, Timeline
    • Image
      • Replace Colors
      • Paint transparent color
      • <to be completed>
    • Page Layout
      • Page break preview (such as for spreadsheets)
    • Hypertext
    • Table
    • Spreadsheet
      • <to be completed>
    • Database
      • <to be completed>
    • Site (a hosting site definition to maintain a website)
    • Favorites
    • Calendar
      • Add to calendar
    • Project
    • Budget
    • Game
    • Legal Agreement Terms
      • Accept/Decline
      • Save a Copy (saves a file that the user can print)
    • Map (directions to a location)
      • Animated cars moving toward destination (Example: GIF  Live site)
      • Traffic lights and other landmarks
      • Fuel station locations
      • Distances
      • Travel times
  • Library
    • Save as library component
    • Retrieve/Insert library component
    • Edit library component in the routine functionality
  • Inheritance
    • Templates, Style, Security Groups
      • Apply
      • Retroactive
      • Detach from Template

Revision History


"My interest in usability arose from the pain and tears of patching the wounds of suffering interface designs with the inadequate bandages of help files and user guides." — Daniel Cohen

2002, UsabilityInstitute.com   All Rights Reserved    jackbellis@hotmail.com
Any and all content may be reused without prior consent if you simply acknowledge the source, UsabilityInstitute.com