Forum OpenACS Q&A: OpenACS Core Team Selection Issues

Collapse
Posted by Joel Aufrecht on
  • How big is the core team?
  • How long is a term?
  • When are elections?
  • Who votes? How is the election conducted?
  • Is the whole OCT replaced at each election? If there are staggered terms, how many pieces are there?
  • Are all seats at-large? Should there be any divisions based on funding source, role (coder vs user vs etc), language, geography?
  • What would be a better name than core team, given that we also use the word core to refer to a specific portion o the OpenACS architecture?
  • What is the maximum membership for any one entity? One person? Ten percent (rounded up or down? is 2 out of 15 people ok?)
Collapse
Posted by Malte Sussdorff on
- The core team should consist of enough members to distribute the workload but not too many to make it inoperable. Somewhere in between 6 and 9.

- A term should be for one year. Maximum two years. This has to do with the fact that in our dynamic environment you should not have to commit yourself to more than a year to a project, if you don't consider to stay in a company for that long :).

- Elections should be held twice per term period. At each election half of the member seats are up for renewal. This allows for a smooth transition.

- Voting should be executed by the People with CVS commit rights that have participated in forum discussions for the last three months. Additional voting rights can be given to active members of the community (a certain number of postings in the last three months). The criteria will be checked by the  OCT and a list of voters published one month before the vote.

- All voters are elligable to be elected. To become a candidate a voter has to have at least one sponsor from the OCT members whose seats are not up for voting (reasoning is that at least one person would like to work on with the new candidate for at least half of his/her term).

- Voting should be conducted in a poll. Each voter has a number of votes equal to the seats in the OCT that become elligable. The front runners win. If there is a tie for the last seat, the OCT (old and newly elected) make a vote between themself (again, they are going to work with the new person, and if the community is indifferent between the two, let the OCT decide).

- We should not make any division based on whatever criteria. We should keep the number of people per organization down to one though.

- Another name: OSC: OpenACS Steering Commitee, or TCS: Technical Steering Commitee

- There is no maximum number of terms a person can serve

- If someone has to leave the OCT, the seat will be empty til the next election. The term of a seat do not change because of this. If the term was from 1st of Jan til 31st of December and next voting is on 30th of June, the new person would have a shorter term (from 1st of July til 31st of December)

Collapse
Posted by Jade Rubick on
Will the voting be done in the forums? Perhaps in a VOTING forum? Perhaps people with CVS rights could be part of a group that has permission to post in this forum?
Collapse
Posted by Joel Aufrecht on
Malte, great stuff! Let's keep going: A core team of nine, with one-year terms. The election is Sep 25. We want staggered one-year terms and elections every six months.
  • If we do staggered terms, should four of those nine seats be six-month terms instead of a year?
  • Can candidates choose which seat they're running for?
  • Since the whole OCT is up for "re"-election, do we relax the rule that only OCT members not up for election can sponsor candidates?
  • We have 24 committers and nine seats.
    • it's a month before the election. Who's going to do "a list of voters published one month before the vote?"
    • Should cvs commit power be a qualification for voting in the future? If so, what is the qualification for commit power?
    • How can we open the voting pool to non-coders? If the main criterion is "a certain number of postings in the last three months," what is that number and how will we keep people from abusing that criterion?
    • What other criteria can new people use to qualify?
    • How can we make the electoral body bigger?
  • "OSC: OpenACS Steering Commitee, or TCS: Technical Steering Commitee " Either is fine. Do we see this body as strictly technical, or as the final voice of the community on all topics?
  • "Voting should be conducted in a poll. Each voter has a number of votes equal to the seats in the OCT that become elligable. The front runners win."
    • Where is the poll conducted? Who administers it?
    • Can a voter vote many times for one person? If not, then I think it works like: you have a ballot of e.g. 20 names, and you put a mark next to nine of them. This is approval voting - we simply tally up all the votes for each person and the nine highest totals win.
    • Or do we want to go with a ranking system (instant runoff, Borda, or Condorcet)?
    • Is voting open or secret?
    • As a community using a database-backed web system, we should of course do all this with a voting package. For the immediate election, how about we just use flat text with asterisks or numbers?
Collapse
Posted by Jade Rubick on
- Staggered terms: I think it's a good idea to have half the inital seats be for 6 month terms.
- I think the people with the most votes should get elected for the longest terms. How about that?
- I think for the initial election we should relax the rule that only OCT members not up for election can sponsor candidates.
- I'm not really sure what other criteria should be used besides CVS commit rights. But we do need to define this. People may then want CVS rights even if they don't commit anything. And then we need a formal set of criteria to determine who gets CVS access.
- I'm not sure that making the electoral body bigger should be the most important goal. I think what's important is that the electoral body reflect those with a large stake in the direction of OpenACS.
- I like Technical Steering Committee. Let's restrict their focus to just technical matters. That seems to be the problem we're trying to address. Why do we need a spokesperson for the community, when it is so diverse? What we need is a solution to which direction we head technically, not a spokesperson.
- I'm fine with approval voting or instant runoff.
- voting should be open, I think. Or at least verifiable.
- flat text is fine for this election.
Collapse
Posted by Talli Somekh on
The issue of figuring out who is the electoral body is a messy one and I don't think there is a perfect answer. Upon considering it, here is my proposal for the first electorate (to vote on Sept 25):
  • All users who have posted in the past three months are eligible
  • All CVS committers are eligible

I believe that the group should be open as possible for this first election. This will be the inaugral "OpenACS citizenry". I don't think that we will see a lot abuse here since we have a fairly tight group of people who pay attention to the boards. Also, since there's been relative quiet in threads regarding governance, I don't suspect we will have to worry about any "vast conspiracy" to undermine the general feeling about governance in the community.

The incentive to join the first vote will be eligibility to participate in the next vote. This original group will also be empowered to vote on new additions to the "citizenry".

Does that make sense?

Personally, I don't like the idea of requiring sponsorship of a current OCT member to run for election. I don't quite understand the logic behind that. Presumably it's so that OCT members can choose people they would like to work with.

But what if we want to elect new members of the OCT because the current members are behaving with cronyism? Wouldn't the requirement that to run for the OCT you need to be friends with the current board bar any kind of radical new blood?

I think it would be a real shame if a big time web database community didn't use it's own survey and polling tools to conduct its critical voting procedures. Someone's already written a number of tcl scripts for conducting votes, here is the link. Perhaps they can be adapted for use in the OACS context?

(Actually, ElectionMethods.org is itself an interesting read regarding this subject.)

As far as the maximum number from one organization/company/institution... I think that's a toughie. I like Joel's idea of a certain percentage. Or perhaps 2. it's a bit hard because there is a lot of overlap among clients, companies and organizations. I don't quite know the answer to this one...

talli

Collapse
Posted by Joel Aufrecht on
Talli, what do you mean by "The incentive to join the first vote will be eligibility to participate in the next vote?" Should voting in the first election be a criterion for voting in future elections? If so, is it sufficient by itself? So the permanent voting criteria would be:
  • CVS committers
  • (current OCT members?)
  • Everybody who's posted in the last three months
  • Everybody who voted in the last election

I think there are two rationales behind sponsorship. The first is the working together issue, which I think is less important than the risk of a self-selecting group. The other is a nomination process, without which I guess the ballot would be equal to the voter list? Are we willing to try a California election? If not, what other nomination methods might we try?

Do we want to do approval voting (vote for the nine people you want?) or some kind of ranked voting (vote 1-9)?

Collapse
Posted by Danielle Hickie on
Hello everyone,

Just popped in to write that I'd like the selection process to keep in mind people who aren't necessarily programmers. A healthy community needs all types of voices. If possible, it would be nice to see some faces from the South, and some women involved.

Just my two cents,
Dani

Collapse
Posted by Joel Aufrecht on
Some possible ways to get more qualified voters:
  • allow currently qualified voters to each invite one person
  • Allow anybody to vote if they register on OpenACS.org before a certain date
  • Here's how Apache does it:
    The Apache Software Foundation is a meritocracy, which means that in order to become a member you must first be actively contributing to one or more of the Foundation's collaborative projects. New candidates for membership are nominated by an existing member and then put to vote; a majority of the existing membership must approve a candidate in order to the candidate to be accepted.

    They have about a hundred members and a board of nine.

Collapse
Posted by Carl Robert Blesius on
What about a bonus system that allows people earn the right to vote from the community itself. Something along the lines of the Slashdot Karma/moderation systems. http://www.definedesign.org/article.php?sid=77 (link from a quick google search)
We have the tools to do it, it would force us to define what a good OpenACS citizen is, and it is something we could use in an educational setting as well.
Collapse
Posted by Talli Somekh on
Joel,

I was thinking that the eligible voters for *only* the first election would be those who posted in the last three months. Among this group, only those who actually do vote will be eligible to vote in the next election.

My thinking is that this group will be relatively self-selection - they have visited the website at least once and considered the application and have gone so far as to post something. They've also revisited the site and spent the time to consider the candidates and vote.

However, I like your idea of having anyone that signs up by a certain date to be eligible for voting. Among this group, only those who vote are eligible for the next vote. The reason is that there are certainly people in the community or who use the OACS who do not post or have CVS committer rights. If they choose to sign up and to consider the candidate, I think that is enough.

To grow this list afterwards I like Carl's idea of having some kind of bonus system. Perhaps something like amazon's "X number of people found this useful" or some kind of elementary rating system.

This could further be a rather nice addition to the data mining process - such as filters for things like "find all 5+ posts that deal with new portals".

Alas, I suppose that would involve a great deal more hacking work, though...

talli

Collapse
Posted by Talli Somekh on
Thinking more about ways that people can become OACS citizens with voting privileges...
  • Submitting bug reports
  • Fixing bugs
  • Submitting patches
  • Helping to clean up the bug tracker
    • Assigning submitted bugs (currently there are 300+ unassigned bugs to a developer and 400+ bugs that haven't been assigned to a release version!!! No wonder there are 434 open bugs!!!)
    • Closing resolved bugs
    • bugging people about the bugs they submitted or were assigned
  • Contributing graphics for use on OACS.org or in packages
  • Contributing use cases for developing packages
  • Contributing marketing material
  • Setting up an OACS social
    • BUYING A ROUND OF DRINKS AT A SOCIAL
    • Doing a reenactment of Vinod's "Hula of Zeus" at a social

Those are but a few.

In order to implement this I think it would be difficult to set up a system where every object someone contributes is tagged. However, perhaps it would be easier to have a facility in a user's public profile where another user can give them a "zorkmint" when something they've contributed has been useful? After a certain number of zorkmints have been accumulated, the user becomes a citizen.

how does that sound?

talli

Collapse
Posted by Tom Jackson on

Talli, all of those sound good. I'm interested in the fact that there only around a hundred members of the Apache group. How many here would make it by any of these criteria?

I was just looking at the United States Constitution to see what criteria for citizenship were there. I didn't find it too helpful, but it didn't depend on participation.

Apparently any bum over the age of 35 can become President of the United States, save being born in the Land of the Free.

So if some individual finds her/himself using only AOLserver and OpenACS, instead of Apache/PHP/Zope/IIS, should they be a citizen by default? Isn't this person living in the Land of the Free and the Home of the Brave?

Collapse
Posted by Talli Somekh on
Tom, if you ask me... yes.

Since the OpenACS doesn't have 60% market share, we can't really be too selective about who wants to help out. Anybody that adds some elbow grease to the project should be encouraged to be greater participants in the community. I propose that this encouragement should be in the form of being empowered to help choose the community's leadership.

I'm not sure what reasons there are for being selective and elitist about who is an OACS citizen. Presumably it's so that we don't become bureacratic and ineffective.

But we have over 400 outstanding bugs, suggestions and todos in the bug tracker, 100 more open bugs than closed bugs. And that's only because I went and closed all the bugs that have been resolved for more than 3 months.

We're also still considered an insular community where outsiders don't know how to become more involved. There is at least one developer who has submitted a rather critical package that hasn't made it into CVS for an unknown reason.

Not to mention we're still not very well known in the FOSS community.

So it doesn't seem that we are so efficient that we need to protect our core business approach.

From my perspective, we need to come up with a radical way to get people to buy in. I think if someone joins the Right (or preferrably the Left if you're of my political persuasion) Way of OACS they should be welcomed and encouraged to get even more involved.

That being said, my suggestions above about giving people zorkmints for relatively objective contributions - things relating to bugs, helpful postings to the boards, improving documentation, etc. I would even say that people can get their first zorkmint the first time they register or download the OACS.

They become OACS citizens only after they've gathered enough zorkmints. Btw, I would advocate that only current OACS citizens can dole out zorkmints.

talli

Collapse
Posted by Carl Robert Blesius on
1 zorkmint for Talli, the coiner of zorkmints.
Collapse
Posted by Frank N. on
OK, this may drive this thead out on a tangent, but here goes...

Talli (PBC, s-o ZtA, b-o HtR),

You touch some important points, especially the part about the community sometimes having a closed feel. Both you and I have personally met many of the core people, so I suspect you agree that in reality the people behind are anything but closed to outsiders.

IMHO the problem is simply, that A) many of the core people know each other very well from the aD days, and B) they are often very, very busy as well. So I wonder if many of them simply have less of a need for making noises as compared to, say, a project, which historically grew out of a personal code project on the web. And when they do communicate, it is often in private. I'm a "recent addition" to the community :), and indirectly I can see that currently at times decisions are made, which are often only mentioned in passing in public at a later date, if at all.

Some ideas:

***) Have a weekly, or bi-weekly, "OpenACS Happenings for Week X-Y" thread on the dev forum. Here everybody are encouraged to tell what they are currently working on, decisions made (whether personal, or by, say, the OCT), and future plans. This would be easier to make and maintain than an official newsletter or the like. My guess is that even very brief entries by many of the core persons would show a flurry of activity, which often isn't apparent by reading the, at times, very quiet forums.

***) Have 'commit levels' and a document describing them. By this I mean some agreed upon policy of what people with commit priviledges but different levels of experience are allowed to do to the tree without asking anyone else (would perhaps help on the bug/patches issue). Eg. I am a newbie, so I am only allowed to change things in HEAD, that doesn't touch security issues or change the state of the DB. But I would be encouraged to fix, say, trivial noquote bugs where I find them, in cooperation with the package maintainer.

The OCT members are at the top, and then there might be two other levels, one in between newbie committers and the OCT, and those people without commit priviledges.

This way people 'down on the floor' would perhaps feel more free to work together closing the simpler bugs while sparing the core members. It might take twenty times as long for me to fix a DB select as one of the core members, but it would be educational, and I would get more of a feel of doing something constructive. It is a curious but well known psychological fact that you tie people more strongly to you by getting them to do favours for you, not the other way around!

***) We already have some pages on openacs.org aimed at the newcomer. After rereading them I cannot help feeling we might want to roll several of them into one, longer 'Getting Involded' document. Sort of a 'Welcome to the community, here is how it works and the pieces fit together' piece. Especially important would be a suggested list of reading (in order) and how to get started from scratch/proceed from here. Ie. this document should have a status of being wrapped in virtual neon saying 'README.1st'!

Also strongly emphasize the importance of the IRC channel, especially for newcomers, as this is a very good way of getting the feel of the other active people there. Yes, the IRC channel is mentioned twice on the front page already, but... ;)

The current documents seems to suggest that people, who try out OpenACS already have a fixed goal in mind, ie. they already know they want to build a website using the toolkit. The interested hobbyist who just stopped by may not have any such thing in mind.

***) Have mentors/IRC anchor people, who have publicly stated they don't mind be borthered by newbies. I am aware that in principle this is probably true for most of the long time community members, yet often I myself am reluctant to raise one of the core on, say, IRC over what may or may not be a trivial issue. Allow same mentors to step down from the position, temporarily or permanently, as time restrictions dictate.

Frank.

Collapse
Posted by Lars Pind on
Frank, this is a tangent from the voting issue, but you're absolutely right.

I could definitely see a newsletter happening if someone would volunteer to ping me and any other developer, say, every week or every other week to ask what I was up to, and then compile the list and post it somewhere.

I could see it happening in other ways, too, but I think that would be a good way to get it off the ground.

The "here's how you get involved" doc is important, and I encourage you and others to start compiling that as well. I have some thoughts, but I think it's best if a recent newcomer takes the time to write the "what I wish I'd found in a document when I started" document.

Mentor: Also yes.

There are many great ideas, we just need to pick some and make them happen.

/Lars

Collapse
Posted by Joel Aufrecht on
Back to how we can select an electorate for the upcoming election.

We have 24 committers. This pool is both too small and not inclusive of non-coders.

If we want to count everybody who's posted in the last three months, how many people is that? We have about thirty new posters per month, 130 different people post every month, and we have around a thousand posts a month. So we could pick an electorate size, such as 100 people, and then choose the cutoff that comes closest to that number. I.e., at least one post in the last three months would probably get hundreds, two posts in the last three months might get a hundred. (recent posters)

Should we then email all of these people to tell them that there's an election? What kind of turnout could we expect?

How will we nominate candidates? Is the potential candidate pool the committers, the electorate, or anybody? Can people put their own names up? Must nominations be seconded before names show up on the ballot?

How long is the election? 48 hours?

Collapse
Posted by Jade Rubick on
Regarding Frank's idea: why not just have a developer blog, which all the main coders could contribute to once a week?