PHP Classes

There Is a (PHP or JS) Class for That: Community based Best Package Recommendations

Recommend this page to a friend!
  Blog PHP Classes blog   RSS 1.0 feed RSS 2.0 feed   Blog There Is a (PHP or JS...   Post a comment Post a comment   See comments See comments (0)   Trackbacks (0)  

Author:

Viewers: 107

Last month viewers: 53

Categories: New site features, PHP Innovation Award

If you tried to find good packages for certain purposes but you ended up wasting a lot of time trying low quality packages, you will like that the PHP Classes and JS Classes site are launching a new solution for that problem.

It is a package recommendation system that lets you get advice from experts on the topics of the problems you need to solve.

Read this article and watch the demonstration video to learn how it works, so you can start getting good package advice or even give advice to other developers looking for packages about topics that you understand.




Loaded Article

Contents

The Problem of Having Many Classes to Choose From

The New Package Recommendation System

How does it work? A Demonstration Video

Get Recommendations from Topic Experts

Community based Advice to Get Multiple Opinions

Authors Can Promote their Own Packages

Advisor Reputation

Featured Requests and Innovative Award Package Suggestions

Preserving the Quality Discarding Inadequate Package Requests

Conclusions and Your Opinion

The Problem of Having Many Classes to Choose From

Repository sites like PHP Classes and JS Classes and others helped making very popular the practice of sharing programming components.

On one hand that is great because more people sharing their work can help many others to take less time and effort to develop their projects.

On the other hand, having repositories with many components for similar purposes raises another problem to those that are are looking for the components. Which components are the best for each purpose?

This is the problem that the new package recommendation system aims to solve.

The New Package Recommendation System

Early this year, I conducted a process that aimed to improve the user experience of the users coming to the main type of pages of the site, the package pages. I applied a process called Design Thinking to learn what are the main problems that the site is solving well, solving not so well, or not solving at all.

I interviewed several users to realize what I needed to do. A few months later I launched a totally new design for the package pages that greatly improved the user experience when accessing those pages, as it was the original intention.

As a side effect of this process, I also learned about things that the site needed but were totally missing. One of those things was a way to help users finding packages that are the best for their purposes.

I learned that some users were not happy because they needed to figure which package to choose from a set of packages for a similar purpose that they would find when using the site search system.

The problem is that they often need to spend too much time trying packages one by one until they find one that suitable for their needs. It would be better if there was a way to learn what would be the most recommended packages for what they want.

After brainstorming a bit about the problem I decided to revive an old plan to have a system on which users could get recommendations of good packages for what they need. This is precisely what is being launched now.

How does it work? A Demonstration Video

There is a link in the home page now that you can use to go directly to the main recommendation system page. But in reality most people do not want recommendations until they figure they need to make a decision to choose between a set of packages that they found for what they need.

So, the site search system was altered to prompt users that start wondering too much when they look at the search results. That is when a dialog window will appear recommending that they ask for advice in the package recommendation request page.

They need to enter some details about their request in a form. After the request form is submitted, they just wait for another user to provide them some advice. This video provides more details of how it works.

Get Recommendations from Topic Experts

Well, if you post a request for help and do not tell anybody, nobody will come to help you. Therefore the site tries to make that bridge between those asking for help and those that can help.

The first thing that the site does is to try to match authors that developed packages with the keywords that the users put in the recommendation request.

Each package in the site is associated to one or more keywords, therefore the site sends a notification to the authors that have packages tagged with the same keywords entered in the recommendation request.

Chances are that those authors know reasonably well the topics about the keywords associated with their packages. So it is very likely that those authors have packages to recommend for the purposes the users need.

Even if they do not have a package for that user purposes, maybe they can recommend one that is more appropriate, or even improve their own packages to make them more suitable for what the user wants.

Community based Advice to Get Multiple Opinions

Everybody can recommend packages. This is a very important detail because different people have different experience and perspectives about each problem. If you would just listen to one opinion, you may be missing a lot about perspectives of other people that also have knowledge about your problem.

So instead of one opinion, you may get several recommendations for the same problem. Then you can read the justification comments to decide which one matches better your needs. You can even interact, comment the recommendations you get, and get further clarification from the users that recommended packages for you.

If you like the recommendations you can and should vote up the recommendations you see. You can also vote on recommendations even if it was not you asking for advice. On the other hand, if you find a recommendation that is totally inadequate, you should vote it down.

Voting and commenting on recommendations will help other users that may come later looking for similar recommendations. Please do your part and repay by voting up or down according to your evaluation.

Authors Can Promote their Own Packages

As you may notice, this recommendation system is very similar to other question and answer sites that you may have seen. The main difference, is that instead of asking questions, you ask for package recommendations. So the responses can only be packages that already exist on the site and the user can try right away.

Another subtle difference is that authors of packages can and should recommend their own packages if those packages solve the user problem.

This is different from typical question and answer sites or forums that have vigilant moderators. Usually those moderators consider that promoting your own work is a bad thing and they often fight self-promotion.

This recommendation system is different because it was explicitly meant to connect package developers with package users. One author may promote his packages at will.

When an author recommends his own package, a label showing "package author" will appear next to the recommendation title. Then it will be up to the user to figure if the recommendation is biased or not.

Advisor Reputation

Every user that recommends packages may earn Advisor reputation points. This is a special type of reputation points given to users that help others giving advice.

They may earn reputation points by giving good recommendations, and even more if the user asking advice or others like the recommendations and vote them up.

The current reputation points earned by each user is displayed next to each of his recommendation. That will help users seeking advice get additional hints about the reputation of the recommendations they get.

In the future, reputed advisors will be able to benefit from additional privileges that are being planned now.

Featured Requests and Innovative Award Package Suggestions

This site has a lot of packages but does not have necessarily packages for all needs the users have. Therefore, requests without packages to recommend will become featured after a while. This means they are listed in the featured requests section.

Additionally the site will send a notification to authors that have an option set to receive featured request notifications. That will let those authors get ideas for potentially innovative packages.

This way featured requests also give suggestions to authors that want to participate in the Innovation Award but do not have any ideas.

Hopefully this will help users to get their special package wishes satisfied sooner, at the same time it will increase the chances of innovative authors to get more prizes and recognition for their innovative packages.

Preserving the Quality Discarding Inadequate Package Requests

Posting recommendation requests is not a process that is moderated a priori. This means that everybody can post recommendation requests.

But if a request is not very clear or it is abusive, it will be considered inadequate, and so will be removed after a while by a moderator. That is a necessary measure to keep the quality of the recommendation system.

Conclusions and Your Opinion

This is the initial release of the package recommendation system. A lot of thought was put into this system but there are a lot of other things planned to be implemented soon.

If you liked the idea or not, or if you have suggestions for improvements, please post a comment here so we can evolve the system as much as possible with your feedback.




You need to be a registered user or login to post a comment

1,611,062 PHP developers registered to the PHP Classes site.
Be One of Us!

Login Immediately with your account on:



Comments:

No comments were submitted yet.



  Blog PHP Classes blog   RSS 1.0 feed RSS 2.0 feed   Blog There Is a (PHP or JS...   Post a comment Post a comment   See comments See comments (0)   Trackbacks (0)