a kudos to php geek felipe pena

Paul has written a few posts about members of the PHP community and this inspired one by me. It’s about a guy few hear about but all benefit from and his name is Felipe Pena. Somewhat anonymous in the PHP community, he’s a true superstar within the PHP.net project itself.

His path began with several patches to the Brazilian Portuguese translation of the PHP manual. And in typical Felipe fashion, they were unselfishly huge and over time for at least 10 entire PHP extensions. Then on October 25, 2007 a CVS account was requested. Work continued as did dabbling with other parts of the project. For example, every so often several of us on IRC would write comments like “It’d be nice if we had a good docbook skeleton generator, maybe based on reflection” but it was only talk. Then one day Felipe wrote “Hello everyone, what do you guys think of this?” and there it was, a full blown reflection based docbook skeleton generator that takes an extension or class and spits out xml files for use in the manual. A true doer, he does, and did, and continues to do. Talk is cheap, patches are not, Felipe speaks with patches.

Felipe has since moved on to mostly work on PHP internals and continues his talk is cheap philosophy. Well, he of course talks but typically includes solid patches. And when other people talk he responds with patches or offers to create them. When people commit new PECL extensions he often looks at them and offers advice and patches. When something boring needs done he offers to do it. Everyone intimate with the PHP.net project absolutely loves Felipe. I remember at one point referring to him as Nuno #2 but now he’s Felipe #1 :)

So, kudos to Felipe Pena who was also the PHP Brazilian of the year.

Learning how to help people contribute to the PHP.net Project

While exploring ways to improve how the PHP project finds and teaches new contributors, I wondered how other projects do it so started the process of evaluating several. So far I’ve fallen in love with the Ubuntu approach because they offer a ton of information and promote it well. The PHP project does neither of these things… Fail!

Ubuntu evaluated

Unlike PHP.net, Ubuntu.com prominently displays “Get Involved” on their main site. This area clearly breaks up into different categories like Bugs, Brainstorming, Design (UI), Support, Localization, Testing, and the two I’ll focus on: Development and Documentation.

The Documentation section

  • Intro: Introduces what the documentation team is all about
  • Projects: The different forms of documentation
  • Style Guide: How the wording should be written. Third person? Is it then or than? That sort of thing
  • Meetings: Log of past discussions, and information about future ones
  • Contact: How to get in touch with documentation team
  • Sub-pages: Navigation to various other parts of the HOWTO

The page is clear, concise, and either directly explains a topic or links to it. A few minor concerns are:

  • Navigation: Are the Wiki links clear or is a more friendly TOC possible?
  • Getting the source: It was not friendly to a bazaar dummy like me but eventually I figured it out
  • Information overlap: Nothing major, but some pages contain the same info (something easy to do with Wikis)

The Development section

This area feels a bit more cluttered but all of the information we could possibly want is available, and eventually you’ll even stumble upon a chart explaining common routes people take as they become contributing developers, MOTU members, and eventually core developers. Not to say they are stepping stones to one ultimate goal (core developer), but they can be.

Some concerns:

  • Difficult to navigate: A lot of information scattered about
  • Scattered linking: Links refer to different parts (domains) of the site, so it’s easy to get lost
  • Information overload (is that bad?)

General notes

Although the main “Get Involved” page doesn’t link to it, there is a detailed area titled ContributeToUbuntu that lists about every possible method a person could take to help the Ubuntu project. This includes marketing, donations, handing out CD’s to friends… everything. I like this section.

The Ubuntu Brainstorm area is also worth checking out and I’m curious what sort of ideas and brainstorms the PHP community would come up with and vote for. Some good [and bad] ones no doubt.

Conclusion

Still more evaluating and idea gathering from other projects to do but it’s clear we over at PHP.net have a long ways to go. Basically, we suck at marketing and follow the chaotic old boys club mantra of throwing people directly into the fire and we even force them to light their own match. But, at least we do allow any and all humans to join this club.

So although it’s beautiful how something like PHP can result out of pure randomness and chaos, and although it’s possible this approach has benefits like forcing people to communicate heavily with current members, the drawbacks likely outweigh any potential benefits.

How I’ll help change the situation and beyond

While doing this I also decided to make it my life mission, or at least one of them, to help create a resource generic enough to help all Open Source projects create useful guides for getting involved. Eventually each component will be broken down and offered for common use (and open editing) and available for anyone interested. For example, if your project uses CVS then this guide will offer a blurp of text that explains how to get started using it for a specific project. Project X takes it, modifies, and we’re all happy and contributing. More on that later but creating this specifically for the PHP project is the initial and primary goal today.

If you know of a project that handles this topic well then please write about it here or privately via the contact form.

April 2 update: Stumbled upon this today, it holds a lot of promise: http://teachingopensource.org/