Re: Re: [DRAFT PROPOSAL] PEAR constitution

From: Date: Sat, 30 Dec 2006 22:23:37 +0000
Subject: Re: Re: [DRAFT PROPOSAL] PEAR constitution
References: 1  Groups: php.pear.core 
Request: Send a blank email to pear-core+get-5325@lists.php.net to get a copy of this message
Hi Anant, Anant Narayanan wrote: > Hi Greg, > >> http://pear.php.net/~greg/constitution.txt > > Looks great for a first draft! Some comments: > > * Why do we actually need a president? What can the role of president > achieve that cannot be done by the PEAR group? IMHO; since the PEAR > group can override a veto by 2/3rds majority; why wait for presidential > approval? Adding one person on the top will delay decision making. The > size of the PEAR group can be increased to 8, and we can do away with > the president. All the responsibilities assigned to the president can be > transferred to the PEAR group (2/3rd majority required to pass an item) In your comments, you are ignoring the primary purpose of the president, which is to do external diplomacy, acting as a liaison with the PHP Group (EXTREMELY important job - they control our CVS, and we are after pear.PHP.net), and also replacing PEAR Group members who vacate mid-term. For most decisions, they will simply be rubber-stamped by the president the instant PEAR Group votes on them. A president who is trigger-happy with veto power will simply be voted out of office (one of the checks on power). Presidential approval could even be easily automated, such that an email is sent to the PEAR president with a link to approve or to veto. It won't delay anything significantly unless there is a reason to delay it, and in that case, we will definitely want a presidential veto. To me, the purpose of a president is obvious when one takes a look at some successful open source projects, even under the PHP umbrella: PECL has Wez Linux has Linus and so on. There is always someone on top, at least "spiritually" if not as a dictator. Until a few years back, PEAR had Stig. Having a benevolent leader is very, very important to getting anything done. Others may disagree with me, but I don't think it would be fair to say that the PEAR Group has achieved anything close to the level of leadership needed to run PEAR. Then take a look at the months since Pierre left and I decided to declare myself transitional PEAR dictator. Here is a short list of projects that have come to fruition that have always been "gee wouldn't that be nice if somebody would do that": - PEAR website statistics are fixed - documentation coverage is available for all packages - PEAR website is now synchronized from a release, opening up CVS to development Now, things that have not yet happened that should have happened 1-2 years ago: - PEAR has no plans for PHP5 beyond an exceptions mandate and an E_STRICT mandate for all new packages - PEAR has not been able to complete documentation - PEAR has not been able to define a clear roadmap of any sort. Obviously, there is a long ways to go before PEAR will be fully functional, but without someone to lead, PEAR becomes a bureaucracy without the ability to pull itself out of a mess, let alone to innovate. > * As for "expediting" important decisions; you can simply require 2/3rd > of the _active_ members in the PEAR group; without waiting for everyone. Forgive my bluntness, this won't work in the real world. How do you define active? With the current PEAR Group, this would mean that if Martin votes for something, it would pass, as he is 100% of the active members! This is not a healthy way to expedite decisions. What if 6 of the 7 members go on vacation, and an important decision comes up, does the 7th member simply decide what to do? With a president, this is a much clearer and more palatable way to handle these situations. Also, because actions taken by the president are by definition emergency, the PEAR Group can easily vote to undo a hasty and poorly executed decision. > * Ditto with the position of Vice president. The idea here is to > decentralize control as much as possible. The PEAR group as a whole > takes all decisions. The previous PEAR Group made decisions, and it took almost a year before Martin managed to commit them to the documentation (thank you Martin - this is no indictment of you or the PEAR Group, only the faults in the structure itself). We need someone who is responsible for things like this. I wrote to allow the position to rotate for this exact reason: being Vice President is more work than being a PEAR Group member. The Vice President is also necessary to fill in for the president. If there is no president, then all we really need is a secretary for the PEAR Group. > * The "collective" idea is great and we should really go ahead with > this. +1 to the mentor idea too. > > An alternative structure: Could you put this up on the web somewhere, with a version? I have several questions. Incidentally, your proposal is surprisingly similar to an early draft of a PEAR Constitution that I was working on with several other devs 2 years ago, it's definitely an option :). Here are the problems that I could not resolve in attempts to define how the government works: > Create a set of groups within PEAR that consist of a similar set of > packages (eg: the Web Service Group; the Math Group; the Gtk Group). > This is _not_ the same as PEAR categories; two or more categories may be > clubbed to form one group. Ideally; we have around 10-15 such groups of > 30-40 packages each. Who decides which packages go into a group? What if there is a dispute (should Console_Getopt go into the command-line parsing group or in the PEAR Installer-related group?), how is that resolved? Are packages allowed to be in more than one group? > A "group lead" is elected by all developers involved in packages > belonging that particular group. A developer votes for a particular > group only once; however may vote in different groups as long he/she is > a part of it. All group leads automatically make up the PEAR group. Yes, > this will increase the size of the PEAR group, but then; why not? This > way we ensure equal representation of all aspects of PEAR and keep the > group "rolling". What if none of the packages in a group are very actively maintained, and the developers in that package don't want to be active in the government, how do you require them to participate? If one developer has a dispute with the group leader and therefore the group that can't be resolved, who do they appeal to? When do elections happen? How long are terms? Who decides whether a new package is accepted into PEAR? > A similar system for the "group QA lead"; and all group QA leads make up > the PEAR QA team. Each group QA lead is responsible for the quality of > all packages in his/her group. > > This encourages a decentralized and healthy environment. Who is responsible for granting CVS karma? How about pear website accounts? What about maintenance of the website server itself? I agree that most decisions should be decentralized that are currently centralized, the collectives idea is designed to do exactly what you are suggesting. However, I don't think that each collective should be responsible for sweeping decisions like overall QA requirements changes as PHP evolves (for instance, how exceptions are handled), and I don't think that a large PEAR Group will be able to make unpopular (but necessary) decisions. Most important, the PEAR Group had a majority of inactive members because there was no real pressure to do anything. For most of the package groups/collectives, there will be 1 or 2 super-active developers who will likely be elected to serve, with little chance of a replacement. In addition, the representative democracy you're proposing work in my country (USA) only because we have a supreme court to define how legislation works, and a president who can say "no way jose" to extremely divisive bills passed by a slim majority. In any case, if you feel strongly about your proposal, please put it in web page format, so that it can be easily voted on. Thanks for participating in this one, Greg

« previous php.pear.core (#5325) next »