|
|
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
- Extend
- Check for Updates
- Bulletin Board/Whiteboard (this is an unstructured
note posting capability)
- 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)
- 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
- Contact Pagewww.daycaresoftware.com
- Form to submit a message
- Name
- Phone
- Email
- Message
- Submit
- Clear
- Phone Numbers
- Chat Links
- 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
- Blog
- 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 ("Sign Up," "Register," "Join")
- Send activation email
- Reminder to whitelist the company (image example)
- Hierarchy of Increasing Security Strength
- Arbitrary username (meaning not email verified, such as jsmith).
- And password
- And minimum password length
- And mixed characters/numbers
- And special character(s)
- And email verification/activation (must respond to an email to use the login credentials you supplied
- Option of no email activation required to continue during first session (CNN seems to do this).
- And periodic change required
- And no repeating prior passwords
- And hardware (keyfob) code generator
- And biometric input (fingerprint/retina/voice)
- User ID
- Free-form Text (choosing between these two is beyond the scope of this function tree)
- Email Address
- Automatic Login/"Remember Me" (bypass login prompt for non-critical, non-monetary systems)
- Automatic Duration (such as 2 weeks)
- Explanation "Do not use on shared computers"
- What's This help link
- Third-party Registration
- Facebook
- Google
- Linkedin
- Opens a new window prompting to log in to facebook.
- Password
- Minimum Character Requirements
- Special characters requirement
- Number requirement
- "Show Characters" Option
- Reveal only the current character as it is typed
- Detect and Alert "Caps Lock" Active State
- Enumerate Benefits of Registering
- Enumerate How Registration Info Will Be Used
- Send Confirmation Email
- Require Activation by Link in Email
- Log In
- Save username
- Password
- Show Characters
- Save password
- Detect and Alert "Caps Lock" Active State
- Keep me logged in
- Log out other devices (Netflix) (September 30, 2016)
- User controlled option
- Always
- Forgot Password
- Password Reset>Activation email
- Send hint email
- Force never-used password
- Human User Verification/Captcha
- 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.)
- "Refresh" option, meaning generate a different text phrase because the first is illegible.
- Alternatives (courtesy M. Goddard)
- Logic problems (such as 2 + 2 = ?)
- Add second step (enter email, get verification code and then input verification code or click link)
- Upon sign up, have set image or phrase that people specify/select during registration, then ask them for that phrase upon sign in, or show them that image and ask if it's right; scammers won't have the right image.
- Users
- Groups
- View Members in groups at a glance
- 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
- 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
- Properties
- Size
- Identification
- Folder Path
- Custom Properties
- Template:
- Edit:
- Cut
- Copy
- Paste
- Record (macro)
- 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
- 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
- Database
- Site (a hosting site definition to maintain a website)
- Favorites
- 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
- 2016-Sep-30: Log out other devices (Netflix)
- 2008-Oct-11: All information is linked; critical information
is dynamic rollover; all coded values are separate columns
- 2008-Sep: Show remaining characters allowed
(Image
example)
- Share (Image example)
- Reminder to whitelist the company you're
registering with (Image example)
- 2007-Nov-10: Account Expiration Reminder (Image example)
- 2007-Mar-3: Contact Info www.daycaresoftware.com
- 2006-Oct-14: Help survey, audio alternative
for image verification, for the visually impaired (Image example)
- 2006-Sep-24: Legal Agreement Terms/Save a
Copy
- 2006-Sep-02: Rollover row highlight, or "ruler effect") http://bugs.kayako.net/
- 2006-Jul-15 First section, Primitives, enhanced
with log file functionality
- 2006-Jul-1: Timeline features added
- 2006-May-23: Added "Ecommerce Landing
Page" (courtesy
of MB via ixda.org)
- 2006-March 9: Backup features added, inspired by Trust and Blame, an article lamenting the perils of electronic data.
- 2006-Feb 5: Map>Animated cars moving toward destination (Example: GIF Live site)
- 2006-Feb-5: Primitive interaction functions, inspired
by http://www.asktog.com/basics/firstPrinciples.html (Latency
Reduction)
- 2006: Feb 5: Map> Animated cars moving toward destination (Example: GIF Live site)
- 2006-Jan-31: Search metavalues
- 2006-Jan-14: Drag-and-drop to docked cart (http://www.panic.com/goods)
- 2006-Jan-9:
Added a few misc functions
- 2005-Dec-4: Added
more help functions, inspired by "Instructive
Interaction: Making Innovative Interfaces Self-Teaching"
- 2005-Jun-12: Rollback versus Version
- 2005-May-25: About/Version Info
- 2004-Jan-07: Added some minor functions Full revision
history
- 2004-Apr-9: Bulletin Board/Whiteboard
- 2004-Oct-28: E-commerce and web pages added
- 2004-Nov-3: URLs, Printed links
- 2004-Nov-23: View/Page Up/Down Evenly
- 2004-Nov-23: View/Page Up/Down Evenly
|