Closed oparoz closed 8 years ago
My approach to this issue is currently to only let people recommend apps (something like a like button) which leads to the following ratings:
This is the way we actually work. If you want to buy something and you don't know if its any good, you ask someone that you trust or take a look what most people recommend.
I think a star rating is a bad idea because of the following issues:
Why no dislike button? I think 0 stars or dislike buttons really hurt people because we take negative feedback much harder than positive (I think 1 negative rating equals 10 positives or something like that). Since people essentially work on these things in their free time and for free, I think this discourages people more than it helps. That's also a reason why I'd like to avoid stars.
As for the current users happy index: This should be done in the comments and not be included in the overall rating. The latest comments will give you an idea if people like it and you can also enhance comments with thumbs up like githubs issue system.
This is the way we actually work. If you want to buy something and you don't know if its any good, you ask someone that you trust or take a look what most people recommend.
Yes, except that the like button approach is not a replacement for that. People will still do that and get recommendations from forums, friends, social networks, etc. With a like count, you're stuck at a certain point in time. You wouldn't pick a 2014 printed magazine to get today's rating on anything.
So you're basically left with 1-3 stars which is roughly the same. I don't think a "meh its ok" rating helps
I do. 1 star, avoid, 3 stars, try alternative and come back if nothing better is found, 4 star install
It's averaged which leads to very unimportant apps being rated above apps used by hundreds
Which makes perfect sense if an app used to be popular, but is now something rotten which floats at the top
Both systems have a similar problem. As apps evolve, so should the rating. The advantage of using stars is that you have a bit more nuances. Making a review mandatory when adding a rating, gives more context to a specific rating. A like is too easy to get and nobody cares about removing it, unless they're really angry. Thumbs up/down on reviews would help select the best and worse ones to make the context even better.
Comment as they are currently used in the oC app store are useless. Everybody uses them as support requests. Now if you remove these, you're left with... reviews, which should be tied to a rating.
As discussed on IRC (for everyone else) the idea will be to ask users why they comment after hitting the comment link. We can basically ask them "did you encounter an issue/bug" and redirect them to the issue tracker :)
I do. 1 star, avoid, 3 stars, try alternative, 4 star install
So basically 1 and 3 stars are the same as 0 stars for you :)
Which makes perfect sense if an app used to be popular, but is now something rotten which floats at the top
yes, the issue is just that 3 five star ratings are averaged higher than 1000 4 and 5 star ratings
So basically 1 and 3 stars are the same as 0 stars for you :)
I didn't want to make it too long, but I've updated it now.
1 star, avoid, 3 stars, try alternative and come back if nothing better is found, 4 star install
It's not an exact science, but we always try to find the best tool for the job without having to do too much research
yes, the issue is just that 3 five star ratings are averaged higher than 1000 4 and 5 star ratings
Indeed, but people can see that the app is new, has few reviews and that they don't really describe the experience. We also don't expect dozens of Notes app, so I think it shouldn't be difficult to discover what you're looking for.
Also, as said on IRC, I think both "likes" and "stars" can co-exist. I would find it useful to see that some apps are recommended by people I trust.
Another thing that comes to my mind: usually when I'm looking for a library to use, I'm taking a look at the repository and check:
There are some tools and libs that do this which could also use (probably only on the website) for these kinds of things
Yeah, I do the same thing, but there are issues
When was the last commit
Transifex skews the result, but we can use the last time the app was uploaded to the store
How many bugs are registered in the bug tracker
That's a problem with trackers such as Github, unless you can filter by label and make it mandatory to have a "bug" label
You could also maybe retrieve the number of contributors. Not a perfect indicator, but as repos become popular, new devs try to participate.
Yep, it's also very hard to abuse this kind of rating :)
Or at least it would be absolutely obvious (think of 50 opened and closed issues in a day xD)
For me interesting metrics are:
I like the djangopackages metrics quite a lot.
Number of installations
That would be really good if we could get the number of installations per version, with the default being the latest.
But there is a problem with all these dev stats, it favours popular, older apps. A really good, niche app will not easily be discovered or featured.
@oparoz apart from that it can't be enforced since nextcloud downloads the app by itself (we only serve the download link) :)
Which is a bonus for me because you know, strange people might set up download scripts and basically DDoS the server xD
@BernhardPosselt, Well, the API knows exactly which download request is being made, so you could have stats there, no?
The API does not serve the archive, no. It serves the full repo as JSON including the download links
Ah, yes, and showing the link is not the same as downloading the app...
But there is a problem with all these dev stats, it favours popular, older apps. A really good, niche app will not easily be discovered or featured.
This could be smoothed out by displaying the average installations per month since the app is in the app store and also a trending indicator. i.e. number of installs is on the rise, or number of installs is falling.
We should also track uninstalls. since then the "Number of installations" would be a much more significant metric. The install is actually not the interesting part. If 100 people install it but then 90 deactivate it because they don't like then the "Number of installations" doesn't have much meaning.
Also I think we should talk about activation/deactivation instead of installation.
Some nice ideas here. Personally I don't see this as a must-have feature given the very low amount of apps available right now. It is easy to scroll through them, and there are hardly any alternatives to chose from. As soon as there are five calendar and seven mail apps, this would make sense.
@adsworth - I agree with what you're saying, but unfortunately we can't track activations.
@despens - I think it's useful as soon as there are 2, but overall I agree. No system is better than a bad one like in the ownCloud app store which sends the wrong message.
I also like the Arch User Repo popularity rating:
Popularity is calculated as the sum of all votes with each vote being weighted with a factor of 0.98 per day since its creation.
And I second @BernhardPosselt comment about likes. I would also go for a simpler metric. Combined with the above mentioned popularity it would make easy and doesn't favor the old apps anymore.
Agreeing with Morris. With regards to star ratings, I have to share this here...
I do agree that this is something we can work out later as, for now, it isn't that there are 10000 apps.
Steam has a good model.
Oh very good point. I love Steam's rating system especially now that they included the recent and overall rating and also giving a comment a rating makes a lot of sense.
So basically in addition to the current rating data model we need to record the time when it was rated and also add a boolean flag for likes/dislikes, e.g.
class Rating(Model):
user = ForeignKey(User)
app = ForeignKey(App)
positive = BooleanField()
rated_at = DateTimeField(auto_now=True)
You can then basically do something like youtubes progressbar (red and green). Limit the likes and dislikes to 3 months and you'll get a recent score. You can also way in the comment ratings, however that would be an advanced topic. I like the idea.
Two qestions are popping up in my head however:
PS: we should also cache the rating on the app model itself since its probably very time consuming to calculate it.
Moving this to 0.1.0
If we decide to use a different rating system than simply likes we should get rid of the API recommendations field so we don't break the API later on.
Implementation can follow later however.
Closed in favor of #212 , #211 , #210 , #209
Companies behind large app store have taken a lot of care to improve their rating system in order to make it easier for users to find the best apps and have per version rating since everybody knows a lot can happen over time. It would be great if Nextcloud could follow their foot steps.
Benefit / value
Caveats