2009-01-09

Snowl Roadmap

Based on Snowl's potential futures, and in line with its principles, I've put together a roadmap for its next three releases (beyond the imminent 0.2 release).

Generally, I'm aiming for six week development cycles that are that ambiguous mixture of date-, feature set-, and quality-driven, so the goal is to hit the target date with high quality implementations of the specified set of features. But work may be pushed to later releases or the schedule extended as appropriate.

Each cycle has a theme on which I'll focus my efforts, and I'll publish regular preview releases, which will be numbered with consecutive "pre[n]" suffixes (f.e. 0.3pre1, 0.3pre2).

Most of the work on the roadmap is stuff I'm planning to do myself, although it also lists tasks that other developers have expressed an interest in tackling. And it's ambitious, so I probably won't get to all of these tasks (although I'll probably do other things that come up along the way).

If you want to do something with Snowl, whether or not it's on the roadmap, check out the source code and go for it! (And let us know what you're doing so others don't duplicate your work.)

Caveat: nothing is written in stone, it's the best laid plans of mice and men, take it with a grain of salt, etc. Among other things, this roadmap doesn't account for time I may spend working on other projects, nor am I any better than other hackers at estimating the time it takes to do work I haven't already done. And the farther out the roadmap goes, the fuzzier its plans.

Also, your suggestions are welcome. Are you missing something from the roadmap? Is there something on it that shouldn't be there? Let us know!

The latest version lives on the Mozilla wiki at https://wiki.mozilla.org/Labs/Snowl/Roadmap. Currently, it looks like this:

Priorities

As with Firefox development (f.e. with Firefox 3.1 features), Snowl tasks are prioritized. For Snowl, the fuzzy prioritization scheme is:
  • P1: really want
  • P2: want
  • P3: nice to have

Releases

These are the target release dates for the imminent 0.2 release and the three releases after that:
  • 0.2: Monday, January 12
  • 0.3: Monday, March 9
  • 0.4: Monday, April 20
  • 0.5: Tuesday, May 26
(Note: The 0.3 cycle is eight weeks long to accommodate twoish weeks of vacation I have planned in January and February.)

0.3: simpler and smarter

Feeds

  • P1 expose feeds from frecent (frequent + recent) websites [atul]
  • P1 pick a feed automatically from among feeds with equivalent content
  • P1 let users subscribe to feeds by entering the location of a website
  • P2 automatically subscribe to feeds in live bookmarks [atul]
  • P2 automatically discard old feed items and tweets
  • P2 automatically determine how often to refresh feeds
  • P2 let users specify how long to retain feed items and tweets

Twitter

  • P1 support replying to messages
  • P2 support direct messages (private messages to specific users)
  • P2 automatically subscribe to Twitter account in browser history
  • P3 shorten long URLs when composing messages

Architecture/Extensibility

  • P1 simplify composition of messaging service implementations from Source and Target prototypes

Misc

  • P1 split collections view into resizable accounts/people sections [alta88]
  • P1 support email protocols [alta88]
  • P2 integrate Snowl into Thunderbird
  • P2 organize river view into editions
  • P3 use JS templates to build stream, river views

0.4: people and extensibility

People

  • P1 add a person-centric view
  • P1 automatically associate identities that represent the same person
  • P1 let users associate identities that represent the same person

Extensibility

  • P1 optimize database schema for sparse/custom attributes (f.e. username for Twitter, website URI for feeds)
  • P2 move OPML import/export processing into messaging service connectors so they can provide custom attributes (f.e. username for Twitter)
  • P2 compose subscription dialog from messaging service connector-specific overlays
  • P3 factor out common functionality from Feed and Twitter implementations into Source and Target prototypes

Conversations

  • P2 derive conversations from message metadata
  • P2 display messages in the contexts of the conversations to which they belong

Misc

  • P2 add a wordle-like view of messages

0.5: broader horizons

Feed Conversations

  • P1 retrieve comments on feed items automatically
  • P2 enable users to post comments on feed items

People

  • P1 consume contact info from Portable Contacts service providers
  • P2 provide contact info to Portable Contacts consumers

Misc

  • P1 support several additional messaging services/social networks
  • P2 support categorization of accounts and messages via tagging
  • P2 synchronize subscriptions to a cloud datastore
  • P3 synchronize all message data to a cloud datastore

1 comment:

jigarshah.net said...

Hi,
Its really great to see Snowl has a road map and not just an experiment. Here is my wish list:
In my opinion integration with existing architecture would be really great. I have used lots of feed reader. Only issue is that i have to maintain feeds at multiple places. And that's where i really admire Sage.
- A good Three-pan feed reader.
- Organizing feeds / twitter accounts in folders. It would be nice if it can integrate with Places for syncing feeds.
- Regarding Profile view, Yes it would be really great to see dead Coop coming to life. I would really wish to see flock ppl helping / contributing here :)
Profile view can be built on the top of open social standards.