<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=ISO-8859-1">
</head>
<body text="#000000" bgcolor="#FFFFFF">
There is a continual debate that we have in bugs about whether to
include certain features in the core code or not. I'd like to see if
we can develop a consensus about a philosophy here.<br>
<br>
One of the risks that we face, and have succumbed to in the past,
is to add features and their complexity to the core code primarily
because a developer was motivated to do so. I confess that I have
been guilty of that in the past.<br>
<br>
One of the results of that is well stated in a review of Thunderbird
<a href="http://www.linux-mag.com/id/7788/">by Linux Magazine</a> :<br>
<br>
"<i>One of the problems with Thunderbird is that it doesn’t seem to
fit with most users’ needs for email. That is, it doesn’t work
well for business users who need features like calendaring and
groupware connectivity, and it doesn’t work well for casual mail
users who have mostly adopted Webmail or whatever ships on their
computer. ... It’s too complex for casual users, and not
full-featured enough for business users."<br>
<br>
</i>In terms of positioning of the product, I think that we should
push at both of these boundaries, at the same time realizing that we
will probably never be able to displace webmail for the most casual
user, or Outlook for the most complex enterprise.<br>
<br>
To push at the simplicity boundary, we must be willing to reduce the
complexity of the user interface. One of the main ways that we have
to do that is through addons. The user interface for features that
are only going to be used by a tiny fraction of our users should be
pushed to addons, and not included in the core code.<br>
<br>
In the long run I would like to see us do this more explicitly by
adding a category of addon that is maintained along with the core
product, and shipped with the core product. So these addons would
have the same commitment to support as any core feature, but are
included as addons to reduce the overall complexity of the product.
Good candidates for that in the long run would be chat, calendaring,
RSS feeds, bayesian junk processing, advanced security models, and
advanced search and filter functionality.<br>
<br>
In the short run, I would encourage us to be selective about adding
new features that complicate an already overwhelming user interface.
Just because a developer is motivated should not be a good reason to
add new user interface items for rarely needed features.<br>
<br>
Comments?<br>
<br>
:rkent<br>
</body>
</html>