r4 - 24 Mar 2005 - 19:39:57 - ChaoLamYou are here: OSAF >  Journal Web  >  MimiYin > ExtensibilityFramework

Motivation

A strong reason for FireFox's success is its extensibility framework and plugins. As Mitchell puts it, it reduces the usual software conundrum of either being "lowest common denominator" or being cluttered with way too many features (80% not being used by most users, but it's a different 80% for each user).

With a modular architecture, user's or IT administrators get to choose which extensions to install.

The main problem with our current extensibility plan is that it seems way too kind-centric. Most of FireFox?'s extensions are about improving or customizing the browsing experience in some way. They build on the browsing experience.

What I'm worried about our extension focus, is that we are building completely different apps from the PIM as we envision. How much relation does a calendar have with a photo album and an MP3 collection?

New Kinds are but one type of extension. Some build on the PIM experience e.g. RSS feeds more than others. But there are other extension areas that can build on the PIM experience. And that's what I think we should focus on. Where are the areas that users may want to replace or extend to build on their customized PIM experience?

TedLeung gives an illustrative perspective. The 'long tail' and 'short head' are colorful metahaphors in vogue today. We need to build the "short head" of functionality that everyone needs. But each person requires a different aspect of the 'long tail'. We need different pieces of architecture and content model that will allow the extensibility of different aspects of the long tail.

Extensibility Scenarios

  • Questions to ask ourselves
  • Which parts of the products do we envision PIM workflows that will require altering or adding more features to the product to satisfy these workflows?
  • What are these workflows?
  • What are the impacted areas in the product? If we can't provide the features in Kibble, can we design an extensibility framework that will allow other developers to provide these features?

  • Account settings
  • Rules and filters
  • Content parsers: spell-check, automatically providing a map URL for event location)
  • Contact manager

Areas of extensibility

  • Action kinds
  • Object kinds
  • Kind-specific tools (ie. Red-eye fixer for photos)
  • Cross-kind tools (ie. text auto-complete, spellcheck)
  • Views (ie. new panes, inter-pane interactions, layouts)
  • Widgets

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r4 < r3 < r2 < r1 | More topic actions
 
Open Source Applications Foundation
Except where otherwise noted, this site and its content are licensed by OSAF under an Creative Commons License, Attribution Only 3.0.
See list of page contributors for attributions.