If you have ever released a plugin or theme for public use, it is very likely that you have received negative feedback from users. Regardless of how high quality your theme or plugin, there are always users that will dislike it for some reason or other, perhaps it’s because of a conflict with another plugin or theme, or they just plain didn’t like it. Not liking something is perfectly fine, and expressing you do not like it via a negative review is also fine, but the majority of time that a negative review is left, it’s done so very poorly. As someone that has seen their fair share of negative reviews, I’d like to talk a bit on how to leave a bad review.
Bad reviews are left for a variety of reasons, including bugs, conflicts, misunderstandings, negligence, ignorance, and many other reasons, but none of them really matter for this discussion. Ultimately a bad review is left for one reason: an unhappy user.
When you, as a developer or designer, receive a bad review, it hurts. Nothing feels good about someone telling you your work sucks, regardless of whether the review is justified or not. What hurts more than a bad review is a bad review that is rude, unfair, or from a user that has never given you a chance to help them.
Let me show you some examples of very poor bad reviews, all of which were 1-star reviews from various plugins, some mine and some not. By “poor” bad review I simply mean the way or reason the review was left. Remember, there is nothing wrong with a bad review that is justified.
このEasy Digital Downloads のプラグインは、プライス20,000.以上で
This review roughly translates into: “there is a bug with taxes”. This is a really poor bad review for several reasons:
- It doesn’t explain why this is justifiable for a bad review. Bugs themselves do not warrant bad reviews. If bugs are left unfixed for long periods of time, that warrants bad reviews. For this particular bug, it was fixed the same day the review was left and I had previously been working with the user to fix it for the week prior.
- It’s basing the entire review (and thus the quality of the entire plugin) on one single bug. Would you say that a movie is terrible because it has one bad scene?
- The user who left the bug had opened a support ticket a couple of days before and then got impatient after just two days and decided to rate the plugin one star, even though he had openly said he was very happy with it otherwise.
This next review is one of my favorite bad reviews I’ve gotten, in a sarcastic kind of way:
Your crappy plugin doesn’t work. Waste of a download..
Hmm.. I should buy pro!
A few reasons this one is terrible:
- It’s rude. Come on, you’re already telling someone their work sucks, at least be semi polite about it.
- It tells nothing about what the actual problem was. What exactly didn’t work with the plugin? Well, since he didn’t say, we have no idea. There could be a legitimate bug that was a show stopper for this user, but since he didn’t say, we will never know and thus cannot fix it for other users.
- It’s sarcastic.
- It implies a sense of entitlement. Apparently downloads are expensive and I just took away from his “download currency”.
Here’s another “great” one:
Does not accept the image when insert clicked.
This review is a little better than the previous one because at least it indicates what the problem was, but this review should have been posted as a support ticket. The user clearly noticed a bug but never asked for help, instead they left a bad review. From experience I know that this particular issue takes about 3 seconds to fix, and I would have been more than happy to explain to the user how to resolve it, but I was never given the chance.
This is now the third day we’ve tried to accommodate this plugin. The shopping cart doesn’t seem to work even on woothemes. Support is all but non-existent, but frustration is at an all-time high. I would recommend staying right away from this product unless you have more time and patience than you know what to do with.
The first thing that irritates me with this review is that the user clearly states it is only the third day they’ve been trying to use the plugin. I love rapid support with less than 12 hour response times as much as anyone else, but I also strongly appreciate the fact that it isn’t always possible, especially with free plugins.
Was a nice product until I see the Nickel and Dime you to Death for add ons.
Brands should be defalt in the software not a $25.00 add on for example.
This person is basing their entire review on the fact that one particular feature they wanted was a $25 extension. They even openly state that they liked the plugin before needing to purchase an extension. This particular review was left on WooCommerce. Just how many hours do you think go into developing a large ecommerce plugin? I’ll give you a hint, 10,000 is not an exaggeration. This person is unhappy because more than 10,000 hours of development have been given to them for free and then they’re asked to pay a measly $25 for additional features? Come on.
Warning: Cannot modify header information – headers already sent by (output started at /home/xxx/public_html/clients/xxxx/wp-content/plugins/wp-e-commerce/wpsc-includes/google-analytics.class.php:69) in https://s6899.pcdn.co/home/wstbd/public_html/clients/wassco/wp-includes/pluggable.php on line 876
will you please help me
Similar to one of the reviews noted above, this review is actually a support question, yet they chose to post it as a 1-star review. If you expect to get help, do not start by insulting the developers with an unjustified review before you even allow them to try and help you.
Not working, can’t access settings page. :/
Again, is this really all you’re going to say when giving the developer a one star review on their plugin? This should be posted as a support request so that the developer can have a chance to try and help you. Most problems are very simple to fix and are more often than not a simple mistake by the user or a simple conflict with another plugin.
A bad review should keep several things in mind:
- It should clearly explain what the issue encountered was. Simply stating that there is a bug tells the developer nothing.
- It should be polite. Remember, you’re telling someone that their work has a serious problem, so be nice. You may have a sense of anonymity on the internet but the developer will still be emotionally affected in exactly the same way as if you’d walked up to them on the street and said it to their face.
- It should never be posted until a reasonable attempt to get support for the problems has been made. Nothing is more frustrating to someone that actively supports their free products than having someone tell me a plugin doesn’t work without even being given the chance to help fix the issue.
Beyond the points made above about poor bad reviews, there is one thing that is almost always consistent across ALL bad reviews: the original poster never responds to comments left by the developer after the review is posted.
When someone leaves a bad review, the developer is almost always interested in helping the user take care of the issue. There is very little better than successfully turning a 1-star review into a 5-star review. As developers, we (usually) like to help people use our plugins. It feels good when users say “Thank you, works great!” and we like to see more of that, so when someone leaves a negative review, we (usually) try and help figure out what the problem was and how we can resolve it. This is extremely frustrating, however, when a user leaves a negative review and then never comes back to respond to the comments left by the developer.
If you are going to leave a bad review, you should feel obligated to respond when the developer tries to help you. The developer has taken the time to try and help fix things for an unhappy user (who are the most unenjoyable to deal with) so do them the favor of following up.
I’d like to show you an example of a quality bad review:
As a developer, I was a little bit surprised when digging into the internals of the plugin. It creates custom database tables for things like Pages, Categories and Ads. As such, naturally, it creates custom admin UI for all of these.
Best I can tell, there is no reason to do any of this – it makes for an incredibly janky admin UI, very unintuitive querying mechanisms, and surprises at every turn. Hoping that the developer of the plugin takes it in a forward facing direction, converting Ads to Custom Post Types, using a custom taxonomy for Ad Categories and stripping all the unnecessary admin UI code out in favor of core UI. It’s hard, but worthwhile.
There are several reasons this is a good bad review:
- It’s polite.
- It gives a clear indication of the user understanding exactly what the problems are and how to fix them.
- It acknowledges the problem might be difficult to fix.
The developer of the plugin then came back with this:
The plugin dates back to 2007, which if you recall, predates all of the concepts and APIs you reference above–WP 3.0 wasn’t available until mid-2010 and widely adopted in 2011 with sweeping API changes when it happened. Given that is the case, this was the only way to implement the plugin (the original author’s choice, not mine) until custom post types came along.
You’re evaluating the quality of the code not the functionality of the plugin, which isn’t very fair. Particularly since it’s hard to change a major code base with lots of customers very quickly without breaking a lot of things.
We are working on migrating things actively and have been since the release of 3.0 when I took it over, but we have to balance that with bug fixes, feature enhancements and support as well. It’s easy to point a finger at the code and say “Bad!” when you don’t have to live with the consequences of changing it. 🙂 As a Plugin author, I’m sure you can appreciate that. If you look at AWPCP 2.2 compared with 1.0.6 (when I took it over), I believe you’ll see a huge change.
I would hope you’d reconsider your review in light of these things.
A very fair and well put response from the developer. The user who left the review then (as he should have) followed up to further explain why he felt the review was justified:
Thanks for writing back, I appreciate it. Please know that none of this is personal – it’s about the code, not about the people writing it.
I very much understand the process you’re going through. I’m one of the lead developers of WP e-Commerce – have been since 2010. That plugin has been around since 2006 – so I know exactly the pain points you’re imagining, the pros and cons you’re balancing, the weight of a large project, etc. I get it. We have over 2.2 million downloads – I understand the weight of code + community 😉
Beyond that, I was the primary developer tasked with converting the admin area to utilizing custom post types for everything – we had custom tables for products, product categories, variations, etc. It’s all custom post types and taxonomies now. So rather that use the cop-out that “it’s not fair to evaluate the quality of the code” – let’s take some personal responsibility here, recognize that proper code is worth evaluating – and move forward. Saying that it’s hard to change a major code base with lots of customers – that’s true, but it’s just an excuse – not a valid reason for not doing it.
And I’m the last to point the finger and call something garbage without good reason. Have you seen some of the reviews against WPeC? I’ve been on the receiving end of that enough times to know better. That said, certainly you know as well as I do that it’s beyond silly that here we are, in 2013, and you have custom tables for categories, pages and ads. Right?
So, that all said – write your upgrade routines, move to custom post types and taxonomies, don’t break backwards compatibility – a tall order, but our history testifies to the feasibility – and I’ll happily change my rating. I should imagine you’d shave off thousands of lines of code, as we did – and have a much more performant and maintainable plugin.
Bad reviews once in a while are healthy; they help developers better understand pain points in their plugins. Poor bad reviews help no one whatsoever.
If you are going to take the time to leave a bad review, please take a few extra moments to make sure it is a good bar review.