A few days ago I announced my retirement from PHP core via twitter and the internals mailinglist. Actually I have always felt a bit weird calling myself being part of "PHP core" since in all the years I have never added any code to core, actually I have only removed some code as it was being moved to PECL. Anyway whatever you wanna call it, I ended up in a position where I could participate in many core decisions and finally even helping Johannes RMing 5.3 together for about a year. And like most open source developers I did what I did because I personally cared about the project and enjoyed being part of something that helps so many people in the world. Obviously it also helped my career and my employer in many ways. So all in all I put in time and I got a lot of things in return.

So what exactly did I contribute over the years? As I stated above it wasn't code, though I did contribute various ideas that in the end where implemented by other core developers. But I guess my main contribution was things like the todo lists, the wiki, RFCs, efforts like the TestFest which all led to the point where I have become trusted enough to handle the organizational aspects of the PHP 5.3 RMing job.

Of course I cannot solely claim these were only my contributions. For example while I started the todo list many core devs updated the todo list themselves. The wiki would obviously be nothing without others adding content to it and someone setting up the server etc. The RFC section is obviously modeled after Stefan Marr's traits proposal. Also I actually did a shitty job on the TestFest in the first year, but many enthusiastic people made it a success none the less and others have grown the initial idea over the years. So I am only claiming that I played a role on the above mentioned things. But I think I can be proud of what I have brought to the project and these additions now seem to be quite accepted in the project, so they will continue to evolve.

Through out all of the things I did my main vision was to increase transparency of what is happening within the project. Otherwise ideas get lost, new developers have no idea where to turn, end users have no idea of where things are heading etc. A key aspect here imho is that stuff like processes and discussions need to be documented. Obviously common sense stands above everything else, but I think its important to consciously deviate from the defined path instead of coming up with everything ad hoc. But PHP traditionally has had a bit of a paranoia that structured development would make the project boring and feel like work rather than fun. It always seemed weird to me that a language who's main feature was low barrier to entrance was making participation in the development process so seemingly hard. Like the wiki idea was resisted for years because it was said that files in CVS were better, but imho its simply not convenient for developers and even less so for end users. Where is the fun in inconvenience?

At the same time PHP is an incredibly successful projects and has been long before me and PHP would be just as important today if I would never have come along. So when I argue in favor of short release cycles with a defined list of high profile features to be planned in advance in order to better focus resources and more importantly reduce the time between a code contribution and the accompanying release, then I have to realize that I am proposing a change to something to a process that has led PHP to the top of the web programming hill. Of course I have stubbornly argued in favor of change in the past, some of these changes have come about and have improved things. But it always seemed like a battle and every battle has its risks if just the time lost to all parties to participate in the battle. Also I think few people actually enjoy such battles but open source needs to be fun.

At this point I just feel that if I continue to fight for the kinds of changes I want, then I feel that the harm from fighting is too great relative to the potential gains of these changes. But at the same time the status quo is no fun for me. To me 99% of what I did as PHP 5.3 RM was totally unnecessary if we would just structure our processes more. Where is the fun in that? I am know I am not alone in this perception, but I also feel like I constantly justified my arguments by speaking on behave of "silent masses". But why aren't these silent masses not speaking up .. maybe because they do not exist?

So I guess the conclusion is that I simply do not enjoy donating my spare time given the current status quo and I also do not feel like the things I want to change so that things would be fun again are worth the risk. The only logical step, which I have been debating with myself since last summer, is to leave the project. I guess with the time saved I will have more time for other projects I care about like Symfony, Doctrine, un-informed.org and learning about new database technologies.