Hi guys, Long message, but those who have been following me on the mailing list know that I sometimes have difficulty limiting myself ;-). Please read through all of it before commenting though, this mail's really important. I've been thinking on the subject on whether the system of loosely associated contributors is sufficient, or if we want to be organized in a more official team structure. In the end, I came to the conclusion that if I were to donate time to a project like Haiku, I would want to have some recognition of some sort, and the prospect of team membership with certain privileges certainly would reward me. I tried to come up with a clear proposal which outlines clear paths from contributorship to membership. All of the following guidelines are born somewhat out of my own frustrations of becoming involved with the Haiku project. I don't want to start a discussion on openness (and as dictator I will forbid anyone to do that based on this e-mail ;-) ), but I think that it's very difficult to get the sensation of being involved in this project, which has demotivated me some times. Note that I don't say that it's actually difficult to get involved, but it's all about the sensation, because for an outsider, the inner circle of Haiku exists of some contributors that have been there for ages, resting on a structure that has been there for ages and that has been deteriorating ever since - it has not adapted to the needs of the current Haiku project. I do think that the fact that the only seemingly 'recent' coder is Hugo Santos (bless him - and Ryan Leavengood as well) somehow shows the difficulty in finding an opening. I do appreciate all the efforts from people like Waldemar who try to open up things by creating lists of easy tasks, or by Koki and the gang that set the Google summer of code in motion. The latter for me being the proof that there are more than a dozen people willing to contribute but unable to find a way in just like me. Anyway, before this turns into a rant, with the API documentation (and later the user documentation) I want to create a system that effectively opens up for people to get involved and be rewarded with membership. In a reference to Benedict Anderson, that what makes a community is the 'imagined' bond people have, even if they don't know every other member of that community personally. With these guidelines I want to give every contributer a position in the community, in order to create a Haiku Team feeling. So what do I propose? As soon as you have dedicated your time to the documentation project and have produced at least one accepted patch, you will become a contributor. Contributors will have the following privileges: ○ In the documentation and on the Haiku Website (on the team page) you will be mentioned as a contributor. ○ During mailing list discussions and meetings you have the right to vote on issues of documentation guidelines, or other non-policy related issues. Contributorship lasts until the release of the first version of Haiku R1 (with the Haiku Book R1). After that you will remain credited as contributor to the first release of the Haiku Book, but basically the list of contributors will be emptied and we will start with a new list of contributors for the next major release of the Haiku book. I expect that whenever we reach that moment, there will be a transitional phase designed contributors that just started to work on documentation before the release. As soon as you are a contributor, you are on the right track for becoming a team member. To become one, you will have to do comply with two criteria: ○ Have been active for three consecutive months, starting from the date your first patch is accepted (so essentially from when you are an official contributor). This is to test whether or not you have a certain level of time you can invest in the project. Being active is defined as producing patches, participate in mailing list discussions, coming to meetings, etc. ○ You will need to have produced at least fifteen accepted patches. The definition of a patch in this sense is to create or update one documentation file (because in the traditional sense, a patch can touch more than one file). This is the fairest criterium I could come up with. Even though some files are very small, I think the fact that someone takes the time to perform the actions are more important than the amount of changes. And having said that, the amount of changes is very difficult to measure in this kind of work. Also note, that there is no difference between technical writers and proofreaders, it all comes down on the numbers. As soon as you are a team member you will get the following privileges: ○ In the first version of the documentation you will be credited as team member (even if you decide to leave the team) and you will be listed on the website as a team member. ○ You will get voting rights on policy issues (administrative and organisational). ○ You will be nominated for SVN access (which I expect you to get). ○ You will get editing rights to the WIKI. ○ You will get the right to accept patches from contributors. ○ You will be able to get your changes through without any reviews on the mailing list (unless you want to). These privileges also comes with some duties: ○ The duty to represent the team when it comes to helping out (potential) contributors. ○ The duty to remain active to a certain extend. This includes participating in mailing list discussions and meetings, and producing patches. ○ The duty not to abuse the resources allocated to you (SVN access, administrative access to parts of the website, etc.) Membership lasts a lifetime (so to say), but it would be appreciated that if for whatever reason you cannot or will not invest time anymore, you will lay down your membership (at which you will be able to regain it at any point of time on your request). You will lose your privileges and your SVN access - unless you are active in another area of development - but you stay on as contributor. As I mentioned, for the first release(s) of Haiku - the complete R1 series - you will be credited as team member in the documentation credits, even if you left the team. The final part of this policy proposal is on the role of team coordinator. For the past few months I've been trying to get this documentation team started, and as such I'm sort of leading the effort right now. Luckily, the creation of an official team will relief me with some of the duties, though I think a position like team coordinator would always be necessary. The duties of a team coordinator would be: ○ To act as an representative of the documentation team in special circumstances. Any member of the documentation team represents the team, but when it comes to interaction with important parties, such as the administration team or Haiku inc., the coordinator will act as the 'official' voice. ○ The duty to keep track of contributors and make sure they will be invited to become team members if they comply with the criteria. ○ The duty to interact with the general release coordinator (as soon as that position is created) to make sure that with the release of a Haiku version, the documentation is up to date and buildable without errors. ○ The duty to lead meetings, draft up an agenda and write up summaries. These tasks can be delegated to other members, but it's the coordinator's responsibility that each of them are executed. Coordinatorship lasts until a major release. After that, each of the team members can apply for coordinatorship on the mailing list, after which in an official team meeting, team members can vote for their preferred coordinator. The official procedure should be crafted by the documentation team when the time for a new coordinator is nearing (details such as can a coordinator apply twice, should the voting be anonymous, etc.). The time of major release is defined as the point where a release is done where the number directly after the 'R' changes from the previous release. The idea is that then the 'trunk' will open for the next major version (so when Haiku R1 is released, Haiku R2 will start development), so that the new team coordinator will coordinate the next major release. The outgoing coordinator will keep a role of coordinating the release in his major revision, so if he was the coordinator for the R1 release, he will still have to make sure R1.1, R1.2, etcetera., are in a good shape. If a coordinator decides to step down, the nomination and voting process will start over again. If the coordinator needs to leave in a hurry and cannot oversee this process, the most recent previous coordinator will take over this duty, or if there is none, the oldest (as in time of membership) team member will oversee the process. If an outgoing coordinator decides to step down, the current coordinator will either take over his duties, or appoint someone to carry out the tasks. These are the general guidelines which I want to make 'official' to get this ball rolling. It might go a bit too far into the future (especially with the coordinator stuff), but I hope it gives a descent base to start working from. Because at the moment there is no team, and I don't want to look like a dictator, I propose to have the following regulations as a sort of 'transitional phase' in place: ○ Until there are three official team members (including myself), there will be a temporary state of 'aspiring members' to decide on major policy issues. The criteria to become an aspiring member is to produce at least three accepted patches. You can become an aspiring member until there are three members. As soon as there are three members, the aspiring members have three months to become regular members. After those three months, the aspiring membership expires and you become a contributor. ○ Aspiring members will have the privileges of WIKI access and voting on policy issues. They also will be able to vouch for patches from contributors, but their own patches need to be accepted by team members or get a vouch from other aspiring members. ○ I will act as team coordinator until January 1st 2008, or until there are six (including me) official team members - whichever comes first. At that point there will be a vote on whether I can keep the role of coordinator for the Haiku R1 release. I will not be able to vote. The majority rules. In the case it is decided that we should enter the process of electing a coordinator, there will be a regular nomination and voting round, in which I should be able to participate if I choose to, regardless of any future policy decisions on whether or not a coordinator can rerun for his position. These are the terms which I think are pleasant to work under, and which will work well for a small number of people, as well as providing a basis for growth. I do have to note that I have never been involved in an Open Source project where this kind of structure is imposed on the participants (Mozilla might be an exception, but that structure probably is impossible for a mortal being to understand). So it would be doing something experimental again. But it will be fun. Kind regards, Niels