Once in a while, I see people complaining about the quality of the classes in the PHP classes site.
Usually those complaints are from site newcomers. Complaints often appear in Twitter. It seems people seem more willing to criticize in Twitter probably because it is a fast way to vent their frustrations.
Anyway, I do not mind criticism. Actually I think criticism is useful because it provides an opportunity to learn about either undetected limitations or wrong perceptions about certain aspects that are not well understood.
In either case, criticism may be useful to call for some action that either fixes the problems or clarifies the misunderstood aspects. So in the end improvements may happen.
In this case, the generalized perception that the classes distributed in the site lack of quality is just a misunderstanding. Of course there are classes that have better quality than others. So, if there are users that think that in general the classes in the site lack of quality, something needs to be done to point them to the classes that have greater quality.
Why Low Quality Classes are not Censored?
The PHP Classes site is democratic. This means that everybody has a chance to expose their work, even if it may be considered of lower quality.
This is an important aspect because developers often need feedback to improve the quality of their work, especially when they are in the beginning of their careers. If developers do not have a space to expose their work, it will be hard for them to get any feedback and improve upon it.
Another aspect is that quality is subjective. What may be a class of good quality for an user, it may not be for another user. Different people may have different quality evaluation criteria. It would be unfair to censor a group of classes for eventual lack of quality using just a single set of quality evaluation parameters.
Therefore, the site does not censor any classes for an eventual lack of quality. It is better to let everybody have equal chance to publish their work and let the whole public be the judge. That is what is meant when I said this site is democratic.
The Class Submission Approval Process
All classes go through moderation process before they are approved. Sometimes it takes many days to approve them. However, the approval process does not take in account any sort of quality criteria.
It just takes some time to approve classes because it is necessary to publish each package presenting a clear and objective description of what the class does. Despite the authors submit descriptions for their classes, in most of the cases their descriptions are not clear enough.
So it is necessary to take some time to evaluate the class code and elaborate a good description from scratch. If you have submitted a class and it was not yet published, please be patient while your turn does not come.
User Ratings Score and Rankings
Since the site does not censor low quality classes, the alternative to minimize the chances that newcomer users have the perception that the quality of all classes is not good, is to give more evidence to classes of greater quality.
Actually the site already does that. The site takes user ratings and computes a score that takes in account the utility, consistency, examples, documentation, unit tests and tutorials or videos. The site also builds a ranking of classes based on the user ratings score.
These user ratings scores and the rankings are displayed in the classes' pages as well in other listings. There is also a top user rated packages ranking to show the classes and the authors that got better ratings.
The Relation Between Quality and Innovation
It seems that displaying the user ratings may not be enough to make it more evident which are the better rated packages. Maybe an issue with the way that information is presented. Improvement suggestions on this matter are welcome, of course.
Another way of trying to improve this perception problem is to link it to other factors that often may hint about the quality of a class. As a matter of fact, I think there is one factor that is often linked with quality, despite it may not necessarily imply that you only find classes of good quality this way.
The PHP Classes site organizes every month since 2004 a sort of contest that awards the authors that submit innovative packages. That is the PHP Programming Innovation Award.
Despite not every nominated package is necessarily of great quality, it often is the case. Therefore, it may be useful to make it more evident which are the classes of greater quality by denoting them in everywhere they are listed.
Highlighting Innovative Classes and Authors
So far the nominee and winner classes of the Innovation Award were only denoted in their own pages and in the award winners page. This is certainly not enough because many innovative classes are listed in many other types of pages.
So from now on, one of the new places where innovative classes are denoted is the page that lists all author classes. The listings of classes by category also denote the innovative classes.
Additionally, authors that were nominated at least once for the Innovation Award will be denoted with the award logo and the number of nominations, as well the number of times he won the award if that is the case.
Furthermore, the number of author nominations and victories will be denoted in the pages that list the top downloaded class authors, either overall, as well by country.
There are a few more places where nominated classes will be denoted in the future given the time to implement the necessary changes. One of such types of places is the pages that list classes by keyword.
Another place is the search results pages. The internal search engine needs to be replaced by a more efficient solution. This will take some time to implement, so it will not happen now, but when it happens, the class result pages will also denote the innovative classes.
Delays in the Approval of eventually Innovative Classes
Talking about innovative classes, if you already have submitted a class, you may have noticed that the site gives you an estimate of the time it will probably take to approve your class. If the estimated time passed and your class was not yet approved, do not worry, that may be a good sign. Let me explain.
If there is a problem with your class submission, usually you are contacted very early after submission. If you were not contacted, it is possible that the approval of your class is being stalled on purpose.
What happens is that sometimes there are too many classes that may qualify to be nominated to the innovation award. If there is a higher concentration of nominees, there is a smaller chance for the nominees to get a good position, and so to get a good prize.
Therefore there may be a delay to approve some of the eventual innovative classes until the next month. Keep in mind that a great approval delay does not necessarily mean the class will be considered innovative, despite there is a great chance for that to be the case.
Now that the site is providing greater exposure to innovative classes, hopefully that will improve the chances of you getting more feedback and recognition if you submit more innovative classes, not to mention the valuable prizes that you may get from the Innovation Award sponsors every month.
If you were reluctant to submit your most innovative classes to the site, I hope this encourages you to do so now. It is very easy to participate in the Innovation Award. Just submit a package that does something really innovative, at least in comparison to any other class submitted in the site.
If you have an idea to develop an innovative class but you are not sure if it will be considered innovative, feel free to contact the site and ask for an opinion.
Other than that, this is yet another initiative launched this year, which was specifically meant to improve contributing authors visibility and compensation for submitting their packages to the PHPClasses site.
There are more upcoming initiatives along these lines to be launched soon. One of them is the ability to import large packages from version control repositories that use Git.
If you would like to comment on these initiatives or would like to make other improvement suggestions, please post a comment to this article here.