Open Source PIM/Core Solutions

Basic premises
There are some basic operating principles that are foundational to the concept of Open Source PIM. At the center of this foundation is a fundamental assumption: the user of software is in the best position to determine what meets her own individual needs. Those in the position of expertise in the realm of software delivery should therefore not assume that "one-size-fits-all".

Range of user abilities
Effective Open Source PIM should provide the user with a range of abilities, these include:


 * ability to mix-and-match disparate components with minimal switching costs or downtime
 * ability to evaluate and distinguish between various options with minimal effort
 * ability to decouple independent elements of a system in ways that do not "break" re-integration with other systems
 * ability to use a consistent set of operating metaphors and a unified work flow
 * ability to change operating metaphors without loss of information

Specific methods

 * recognition over recall
 * selective recall
 * selective attentiveness

Recognition over recall
Give the user the most opportunities possible to direct their interactions through recall of past interactions, and recognition of commonly-understood interactions.


 * maximize use of common metaphors
 * maximize use of explanatory metaphors for
 * phased-reduction distractive elements such as "eye candy" and "entertainment"
 * these can be useful and effective in initial phases, but eventually the user will be less interested in the application and more interested in simply getting something done

Selective recall
There will always be some arbitrary elements that the user will have to commit to memory. A common example are "keyboard shortcuts" used in some large applications. The principle of selective recall dictates that the end-user should be allowed the flexibility to choose which elements she wishes to commit to memory, and which elements she would rather submit to "recognition-over-recall".

Allowing the user to choose which parts of an application are important enough to memorize, and which are only ancillary produces significant benefits. Moreover, it is possible to design interfaces that easily facilitate this kind of choice with well-established practices.

For example, in the case of keyboard shortcuts, the user should be able to:
 * choose which actions get assigned and re-assigned to which keyboard shortcuts
 * get a quick preview of which keyboard shortcuts are already assigned and where, to avoid assignment collisions
 * have quick access to menus for individual actions that are not assigned to keyboard shortcuts
 * filter and incrementally search through visual menus for actions not assigned to keyboard shortcuts

Selective attentiveness
The user can only focus on a limited range of inputs. Selective attentiveness, therefore, is a principle that emphasizes minimalism and reduction of awareness to only that which is specifically relevant at any given point in time.