I’ve spent a lot of recent weeks moaning about the FIG (again), and I feel that it’s only fair to all involved that I solidify my thoughts about exactly what I feel is wrong with the current direction, and what needs to be done to fix things.
Part One – Member Projects
Note: These are my opinions, sometimes I’m speaking from a position of ignorance. Forgive me. The FIG has done groundbreaking work that has helped me code better, use exterior packages, and ultimately made it easier for me to earn money, and for that, I thank them.
Note 2: The FIG started as an interoperability group, but it’s been internally acknowledged that they are now a standards body. If you disagree with this premise, please stop reading now or you will disagree with everything.
Note 3: I intended this to be one long post, but I wrote nearly 1000 words on just the membership, so I guess I’ll split this into 2-3 posts instead.
Take a look at the list of member projects, does anything strike you as odd? I find this member project list baffling for many reasons. The number one reason for me is that the most popular PHP project of all time; WordPress, is not on that list.
I’m speaking from a position of ignorance here, but I’d like to ask a question — Why are the WordPress developers so uninterested in being involved in the group? Anecdotally I’ve heard they have no interest in the PSRs, and they are put off by all the perceived drama. I, for one, would LOVE to hear the opinions from WordPress’s development team on proposed new standards. WordPress as a community is working hard to shake off their image of having bad code, and I’d very much like to see this huge, vibrant community represented in the FIG.
Also noticeable by their absence are the testing frameworks.
I’m unsure of any history between PHPUnit and the FIG, but quite simply it needs to be there. It’s the number one defacto testing framework for PHP, and all of the member projects SHOULD be using this software to test their own libraries and frameworks, yet it has no voice in the self-elected standards body of the community. This is just wrong.
I know that recently PhpSpec got proposed for membership, but it appeared that the voting members were just too busy to vote the project in. Out of 40 listed member projects, only 12 projects voted (all +1 for what it’s worth). I’m unsure if this is because the project is not wanted in the group but projects didn’t want to be seen to be voting -1, or if there was genuine apathy in this vote, but it’s a crazy state of affairs either way.
It seems to me that the process of being a voting member project in the FIG is too convoluted, and too much of “look at me I’m in the FIG!” for the current member projects to be taken as an accurate reflection of the developer community as a whole.
Aside from the notable omissions (I covered 3, but I could go on, recently departing, Doctrine, Laravel and Guzzle all NEED to be represented in a standards body), some projects just seem odd to be represented with a vote.
I need to be blunt and say I have no ill will towards the projects I’m going to name here, but I feel that discussion needs to be opened up around existing projects, and the only way to do that is to name the projects I feel should not be represented by a member vote.
Looking down the list, after the recent controversy, it’s obvious to most that PHPixie should not be a voting member of the FIG. I really don’t want to cover off what has been a pretty widely reported story, but suffice to say that even without the accusations of mailing list fraud, the fact is that their install numbers have been inflated mean it’s really not widely used enough to warrant a vote.
Along similar lines, I feel that PPI framework is just not a real enough project to be a voting member. Paul (the project’s maintainer) has long been a fantastic servant of the FIG (and the larger community), but I just feel that a hobby project that is not used much (if at all) on production websites should not be granted a vote. If I’m wrong here, and PPI is used in production in thousands of live sites, I owe Paul an apology.
EDIT: I owe Paul an apology, in his Tweet he explains the project is used in live sites, I’m not convinced that changes my opinion sadly.
I know there are historical reasons here, but much as Cal Evans recognised that his community vote which was granted early in the FIGs life was no longer required, it may be time to reevaluate all projects, particularly those who were voted in the earliest.
I’m sure there are more; there are names on the list I’ve never heard of, but it would be remiss of me to comment on anything that I have no idea about, so I’ll stick to commenting on things I know very little about ;).
It seems crazy to me that Flysystem, a package that has 7,370,380 installs at the time of writing gets it’s vote bundled into the League’s member vote (their choice I know), whereas Agavi with 4,519 installs has a full vote. The fact that Doctrine, Laravel, PHPUnit, Guzzle, PhpSpec, Faker, Mockery, Swiftmailer, etc., etc., etc. are unrepresented is frightening. Browse through the first 10 pages of Packigist’s most popular packages and look which are represented. See for yourself.
I understand that the existing members have spoken, that this list is self-selecting, and frankly that’s the problem here. Unless all the projects are as big as Cal Evans, and can admit that the group has outgrown their project, it’s unlikely that this list will ever be trimmed down to a group of projects that deserve to have a voice in the community. Without a defacto “leader” it’s going to be impossible for any person (or people) to ensure that the right people are approached about getting a voice.
I’m definitely not advocating starting again, but I’m not sure the FIG 3.0 which is currently in discussion is the right direction either. I’ve waffled on for over 1,000 words so I’m imagining that 92% of people have stopped reading by now, but I’ll cover some other problems (in my opinion) in further posts.