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.
