The following is more or less just a thought stream dump from my train ride back from frisbee practice. I just wanted to jump start a discussion on how emPHPower should be organized. I think the general idea of establishing a communication hub for core developers, end users and companies has been received with sufficient enthusiasm to start working on some of the boring details. The next logical step seems to be to start to fleshing out how the organization behind this communication hub should be structured. I want to leave as much power as possible with the individual members, which is one of the main reasons why I do not want companies to be come members. When planning all of this I also need to differentiate the "bootstrapping process" and my vision for how things should be afterwards. Actually I will focus on the bootstrapping process, since I think for the most part the members should have the opportunity to decide on the structure later on.
So initially there has to be a core group of people that dedicate a lot (and when I say a lot, then I really mean a lot) of their time to make this thing fly. This means working hard at getting the PHP world at large to hear and take note of this organization. Also it means building up the necessary infrastructure so that we can have the level of bottom up participation that is key to ensure that this organization is an enabler and not a centralized power. This means to me that we will probably need a dozen people in various roles (probably half technical and the other half evengelists, though there will be people working on both sides) and about 6 months of development time.
The necessary infrastructure to really enable a basic level of collaboration on a basic level should be in place within 3 months (probably the ability to quickly setup mailinglists, wikis and news feeds). After this point has been achieved we should try to get as many people to tentatively sign up as possible. I think for the initial period there will be no membership fee (or a really low fee at the most) to sign up, with the option of giving an anonymous donation. I am also open to code contributions to setup the infrastructure from anyone provided that the code is available under a very liberal open source license (and of course meets our needs and expectations in terms of quality).
During this time all members have the opportunity to collaboratively work on hopefully multiple proposals for our "constitution". The process will probably be more or less a free for all with the bootstrapping team serving as moderators if necessary (hopefully we will not have to be referees). After 3 more months we should be ready from a technological level to claim that we are a technology hub. That being said I envision that some parts in the "constitution" may need to be implemented as part of the infrastructure as well (for example certain voting mechanisms, or how articles make it to the frontpage or into the newsletter). At this point the bootstrapping team will try to find a good point in time over the course of the next 3 months to freeze the proposals and hold a vote on the actual constitution. We will probably need to define how long the voting should be allowed (I think 2 weeks would be ideal), but this can be decided depending on how many proposals there are and more importantly how many people have signed up.
I envision there could be a lot of people signed up at this point already. If there are less than 1000 I think I would not even bother calling for a vote. I would stop the project and accept failure of the attempt. I am hoping to have about 10000 people signed up. To become eligible to vote one would have to pay the fee for the first 6 months. So todays estimates this would be 25 Euros for someone living in western Europe. The fee would be scaled accordingly by the average income in the home country. We might adjust this amount to match a trend we are seeing in the constibution proposals that are up for vote. Until a constitution has been accepted the bootstrapping team will effectively work as benevolent despotes. We are the people that put in our heart to making this stuff work for the greater good. During the 6 months or more before the initial vote and having to pay a first membership fee, we will either have earned the trust of the community or we will have failed.
Each constitution should provide a method to manage the next 6 months in order to move from the bootstrapping process to the final structure, holding any further elections necessary as defined by the constitution. But the second the constitution is accepted, all paying members will immediately get whatever rights the constitution gives them. So I have said at the beginning of this blog post that I will mostly discuss the bootstrapping phase, but I do of course have some ideas of what kind of structure I would hope for later on:
As I said before the constitution might also want to regulate things like how certain groups of members can use the organization to exert influence. For example getting a wiki namespace or a mailinglist could just be done on a per request basis. Getting a top level navigation point on the front page (for example for phpwomen) might require a certain number of members that support this request. Same for how a news item makes it to the frontpage. I also think we will probably want a monthly newsletter. Again there would need to be some definition of who controls what goes into the newsletter. Maybe we will need additional positions that need to be voted for?
Focusing on the bootstrapping part has also enabled me to sidestep some of the tricky topics entirely. One of the top issues on that list would be the question of having closed lists to enable discussion between people that feel they are not ready to talk in public just yet. Most likely some companies could be interested in such lists. But in the bootstrapping phase we will have no use for closed lists and I will leave it to the constitutions to wonder about this one. Based on feedback from people I have become convinced that it would be best to never provide closed lists. Companies should find enough documentation on how to interact with the PHP community and what to expect on the emPHPower website, so that they can already make a solid decision on if they should get in contact or not. Making it too easy to go to closed lists will only harm our ultimate goal: To have all discussions out in the open.
Again I envision that quite a few points in the constitution needs to be hardcoded into our infrastructure. We also need to make sure that like in any democracy, minorities get sufficient rights. Especially since "emPHPower is a mediator and catalyst that empowers members of the community to follow their own ideas". So there is no problem with sending mixed messages to the outside or inside, as long as the noise of the message remains proportional to the numbers of members supporting the given message.
Update [25/06/2008]: I just noticed I omitted one important topic. How should the role of PHP core developers be within the organization. Initially I suggested for example that they all would be members without paying the membership fee. Some people have said that these people should instead be the early adopters that show with their commitment to paying the membership fees, that this is a viable proposition. Felix (Testfest role model and newest member in the PHP QA team) suggested that maybe the best is to give the membership for free but optionally invite them to pay nonetheless. More tricky however is the question of how PHP core gets to setup polls in the community. They will likely have to be able to side step the normal "limits" in number of supporting members to create a community wide poll for example.
I'm a little bit concerned about democracy in Software development. If you would let people vote, whether we should have square bracket syntax for arrays, then the majority would say yes, which IMHO would be a very stupid thing.
I would prefer a kind of certification that you have to pass to be entitled to vote. This way you would not have voters, which on one day complain that their n*n algorithm is slow, but on the other day write how it would benefit their code to have short array syntax. (Any resemblance to persons living or dead is purely coincidental.)
I'm not sure how 700 people, for example, would feel about paying €25 towards a project which is later binned. If it was decided the attempt would be abandoned if you had fewer than 1000 members after 6 months it would have to be very clear what would happen to the money that had been collected. Returning it all would likely be an administrative nightmare.
The simplest approach might be to give it to charity. Even then I suspect there would still be some hesitancy about handing over cash for a project which might never get off the ground. A way to mitigate that may be to ask for a nominal amount up front (less than €10 - if google checkout is still offering fee free payments for non-profit organizations then closer to €1 might be better) and then a pledge to pay the remainder if a set group size was reached. This would also allow decisions about different fees for different countries to be delayed.
Ah, slight misunderstanding here. The membership fee would only be expected to be paid before the vote for the constitution. At this point we should have enough people signed up for free to know if the project is feasible. Of course there is the danger that 10k people sign up for free in the beginning, but only 500 decide to pay the 6 month initial membership fee to be allowed to vote. We will make sure to mitigate this risk as much as possible.
Another scenario is that the community ends up so split over the different proposals for a constitution, that it will quickly become clear that even if 5000 or more people pay the initial membership fee, the number of members will actually go down after this period. These are all risks that people will have to factor into their decision if they want to join. One of the key jobs for us is to make the state of emPHPower as transparent as possible (though we will of course be very enthusiastic we will have to provide objective data .. if only to gain trust and credibility).
Now what happens if things fall apart when we have received money? Some money might still need to be used to pay bills for infrastructure investments. Today its possible to get started with very low up front costs, so this should not be such a large chunk. Handling a refund will likely be too difficult and will lead to all sorts of costs that will probably make it fairly useless to offer this. Again the amount of money should not be prohibitively high, so yeah in the end the best option is donate to charity. In this case we will probably provide a list of charities and let each member vote on which charity he prefers and we would then hand over a proportional sum to each charity.
Of course I hope this scenario will never happen, but yes its important to make it clear to all how we would handle this case. I hope its clearer now?
That makes more sense. Cheers for clearing it up.
while I am not clear what this idea is all about. I mean, I can understand some kind of advocacy, but no, I am certainly not willing to pay for that now (perhaps in a good mood clicking some ads ;-), though the overall intention seems good.
Meanwhile why don't you just start a Facebook group or something alike, there are enough free tools to build a community (advocating a hypertext preprocessor does not involve irc!), from that point things can maybe grow..
You might be surprised, but you are the first person to say they would be unwilling to pay for membership. What others have said however is that I need to make the "sales pitch" clearer. I will probably do so fairly soon in another blog post. For now the point of the membership fee's is more to show commitment, to make sure that people do not skew voting results by simply registering under different email addresses. Essentially emPHPower's networking capabilities alone should make the membership fee worthwhile for any PHP developer. Also it will ensure that for key infrastructure emPHPower will be independent and "self sustained".
Speaking of independent, this is also the reason why I would mandate that all the code of our infrastructure needs to be open source. Imagine we build all our infrastructure around Facebook and then Microsoft buys Facebook? Even if not, Facebook uses PHP (yay!) so by putting our infrastructure in their hands, we are giving them leverage than other companies into the organization.
I should also add, that I very welcome critical comments like the above. Only this way can I make sure that the final proposal will actually fly. A membership fee is also not yet set in stone. So please keep the comments coming on, pro or con. Actually the only thing that made me wonder if emPHPower can be a success is the lack of critical feedback. It seems to me like everybody was just saying yes because they did not really take this idea seriously enough to actually think it through.
I think it makes sense to have paying membership, that will give the means to the project to do its job.
Okay, I have some critical feedback. Please take this as constructive. That is my intent.
I've read a few of your blog postings and your website for emPHPower, but I still can't tell what the project is intended to do, beyond the very vague and general phrase "PHP advocacy." You need to be more clear and specific about the mission of emPHPower.
What problem are you trying to solve? Why is your organization best suited to solve that problem? Who participates in the organization? Who is your audience or market? Do they need what you are offering? What activities will your organization actually do? How do these activities satisfy your objectives?
For example, you mentioned above about doing some software development. You expect that this will take six months. But what do you hope to develop in six months? How will you know when you're done? Is six months enough (or too little)? How will the developed project further the mission of the organization? What alternatives exist, and why are you developing something new instead of using a ready-made alternative?
What do you offer members in exchange for their fees? You mentioned "networking opportunities," but can't they do that for free with Yahoo or LinkedIn (or a kajillion other sites)? How did you decide on the membership fee you quoted? How do you know that's enough to fund... uh, whatever it is your organization does? If someone asks how their fees will be spent, what will you tell them?
You have a catchphrase. Something about empowering people to follow their own ideas. Huh? Why would I need your organization to help me follow my own ideas? And what does that have to do with PHP advocacy? (hint: nothing)
Creating an organization isn't about structure and process. It's about the benefits you hope to bring to your market. The structure is how your organization operates, so it can achieve its mission. So far I haven't seen you write anything concrete or specific about what your organization hopes to achieve, and even less about what you will do toward that goal. If you can do that, the structure you need may become more apparent.
That's my feedback. I also came across a blog from Doug Hill (http://www.phpaddiction.com/tags/php/lobbying-for-php-emphpower-me/), who says he's had experience working in an advocacy organization and says some things that are similar to my comments.