Since the core team members will be chosen by vote, I think it's useful to
talk about how to decide for whom to vote, so I thought I'd lead off by
describing the criteria I'll use.  I've got a prioritized list I'll share
here.  Every core team member does not have to have every criterion, but
the three candidates need to be able to join together, Voltron-like, to
form a cohesive unit with all of the skills.  So here's what I think is
important:

- Willingness to serve: This is a binary criterion and all it means is
whether the nominee is willing to do the job, if elected.  Let's move on..
.

- Technical proficiency:  I'm looking for a nominee with fairly serious
code-fu.  The core team should have several uber-alpha-geeks on it, and we'
re lucky that AOL is supplying some good code-fu on their side of the
table.  AOLserver is about high-performance, multithreaded web
applications written in C and Tcl (foremost) using a database for storage.
  The means the nominee needs to get C, Tcl, SQL, HTML, HTTP, concurrent
programming, network programming, threading, signals, multiplexed I/O
(poll/select), interprocess communications, and should have experience
with these issues on more than one Unix variant (Windows experience is
nice, too).  I'll pardon some deficiencies in some advanced HTML design
issues such as JavaScript and CSS, but the nominee should understand
things like why the browser will bail on a page when the page loads fine
but the external stylesheet can't be found.  The nominee should also have
a good grasp of SSL and cryptography issues, including how a cert chain
works, why self-signed certs are not secure, and why an SSL-delivered page
that links to a non-SSL image is not a secure page.

- Knowledge of and experience with AOLserver:  Well, it's the AOLserver
core team, after all, so a nominee should have built at least one major
application with AOLserver.  It would be a big benefit to have someone who
went through the transition from 2.x to 3.x so they understand what we
gained with 3.x, and what we lost.  It's also important the nominee isn't
looking to make AOLserver into another Apache, IIS, or SunONE Server;
there are valuable concepts and techniques to be borrowed from those other
servers, but there has to be a difference between AOLserver and the other
thing, or else we should just all use the other thing.

- Knowledge of and experience with Tcl:  Tcl and AOLserver share a lot of
DNA, so a core  team member should be completely comfortable with Tcl.
Since 2.x, most of the steps taken in AOLserver have tightened the
relationship with AOLserver and Tcl; I believe that at this point, you can
do a good job of integrating another scripting language with AOLserver,
but it will always be second-class when compared with Tcl.  I'm not going
to pass judgment on that -- AOLserver and Tcl have both gained a lot from
the symbionism -- but it is a fact of AOLserver development.  A core team
member should not have the agenda of making AOLserver the best LISP
webserver environment around, at the expense of Tcl.  Since the nominee
should be comfy with Tcl, they should also be comfortable with the
processes around the current organization of Tcl/Tk, including how their
core team works, but, while AOLserver and Tcl are like two peas in a pod
in a lot of ways, they are _different_ peas, and the nominee should be
ready for times when following the "Tcl Way" is not the right thing for
AOLserver.

- Knowledge of and experience with ACS or OpenACS:  Users of ACS and its
descendants are probably the largest community of AOLserver developers
outside of AOL.  If the core team doesn't have at least one member from
the OpenACS community, then I think the Open Source effort is failing.
Getting an OpenACS member on the core team is good for AOLserver, and it's
good for OpenACS.

- Experience with at least one other webserver product:  This goes back to
my ideas about differentiation between AOLserver and other products.  Even
if it's not clear exactly which products compete with AOLserver, I think a
nominee should have done a major application with something else, whether
it's Apache and Perl, JBoss, Zope, SunONE, or something else in the
category.  I think it's particularly good if the nominee has some
significant experience with a mainstream product, rather than something
with market share on the same order of magnitude as AOLserver.  I think we
need this because, for example,  when someone says they want .htaccess
compatibility, the core team members should understand how fundamentally
different the .htaccess approach is from that of AOLserver, so a
reasonable judgment can be made as to whether to set AOLserver down that
road.

- Respect for the community:  As I see it, the core team members who come
from the community are the representatives of the community; membership on
the core team is not an opportunity to impose one's will on the community.
 If the core team is disagreeing with the community most of the time, then
the core team is wrong (at least the community side; AOL has different
interests in this).  Core team members should be working on processes to
make sure that the community continues to be represented, including  what
the decision process is for changes to AOLserver, and what the process is
for sitting on the core team -- I don't expect that core team membership
is without bound; the term should have an explicit limit, and then we hold
new elections, or whatever.  The other side of this is that there is a
fine line between a community and a mob; the core team needs to be able to
help organize the efforts of the community so that the villagers don't
pick up torches and pitchforks.  Sometimes, the core team has a priority
and it has to be followed, and the core team has to work with the
community to realize the goal, even if it means temporarily redirecting
the efforts of the community (the current docs effort is a good example of
this).  Sometimes, however, if it's clear that the community it working in
a totally different direction from the core team, the core team needs to
adjust and review the goals.  It's a mutual respect thing.

- Good communications skills:  Ironically, I think this one doesn't need
much explanation.

- "Plays well with others": I don't want to Google USENET for a nominee's
name only to find 364,124,476 responses, most of which are participation
for flame wars.  I'm looking for someone with a slow fuse, who works
really hard to see both sides of an argument, and won't just say "well, we
agree to disagree" at the first opportunity.  I'm hoping the core team
will go out of their way to try to understand why someone wants something,
 and will try really hard to include, rather than exclude contributions.

- Enthusiasm:  So this one is on my list, because it's important, but also
because it's _last_.  In my priority list, wanting to do the job a lot, as
opposed to just wanting to do the job (or just being willing to do the job)
 counts less than the other aspects I've mentioned.  I'd rather have a
reluctant alpha-geek than an enthusiastic marketer; there's nothing wrong
with marketers, but right now, AOLserver is highly focused on the
technical side, and getting past the technical hurdles of the next year or
so is plenty of work (after which, perhaps, we can look to holding the
next community core team elections).

So that's my list.  I'm not saying it should be everybody's list, or that
it should be anybody's list other than mine; I just thought it would be
helpful to spend a little time talking about how the community should make
this first decision.

Pete.

Reply via email to