Feedback management problems → now you can vote → now you have up to 100 votes

I reflected on Votes in our community and changed my mind. @B_Sp and other community members’ enormous contribution is helping us to shape Fibery (thank you for that! :heart:), but not everyone is ready to write something just to support the idea. While I still think that Votes are less useful than comments, they are still useful and we will take them into consideration for our decision-making process.

Also I gave serious thoughts to our feedback management process, and the end-game for us is to use Fibery as a Feedback Portal as well. It is a long-term goal, but there is a permanent gap between community feedback and our real product model/plans/priorities. There should be a single space where community members can see the whole picture and help us shape Fibery.

It’s hard to do with any external software and Discourse is not an exception. Here are some problems that should be addressed to have a good solution:

  • We have a product model as a hierarchy of Product Areas, Ideas, Features, Stories and Bugs. It’s very hard to map this model to Discourse. We might map all Product Areas as categories, but it will complicate feedback submission.
  • We prioritize Features/Stories/Bugs, but this is not visible here and there is no clear way to do it.
  • We want to collaborate from a single space, while here we can only sync data into Fibery, but again it is not visible for the community.

So far we’ll try to squeeze value from Discourse, but in the meantime we are thinking how to replace it with Fibery.

5 Likes

@mdubakov you never cease to impress me with your thoughtful commitment to both Fibery and its community 🤼
…and your patience!
:pray::sparkling_heart:

2 Likes

This is exciting to see Michael, and I echo Matt’s appreciation of your commitment, consideration, and patience. Software development and community management are both imperfect, messy things, and when you smash them together (as is necessary in a software tool community :grinning_face_with_smiling_eyes:), it can get even more so.

I think for now you need to keep them separate and use Fibery relations internally to associate public feature requests with internal features, product areas, etc. And I’m thinking about it and not actually sure how it could be otherwise.

Let’s say you have a perfect Fibery 2.0+ in the future that has the ideal permission model to show your “roadmap” to the public and let people add requests and vote on everything. Do you think most users are going to make appropriate decisions about how/where to put their feature request in your internal organization of everything? For example I would be willing to bet nobody would have ever put anything into “Fear management”, because what the heck is that? We in the forums know what it is because you’ve explained it many times here, but the average person wanting to make a feature request never would. I would bet there are plenty of other potential examples.

Of course you could just have all Feature Requests go into a single “uncategorized” type of place and then Fibery team manually moves it where they think it goes, that could work. It is not much different (in my view) from connecting Discourse topics with internal Fibery tracking, although it is a bit more complicated, less integrated, and not bi-directional as you say. But it seems that manual work is necessary to manage it in either case.

So some improvement could be made, but my point basically is that the issues you outline of Product Area, Idea, etc. complexity are not unique to Discourse and I’m not sure you’d want to map that model to Discourse nor fully expose it directly through Fibery even if you could.

This to me is super exciting because I honestly have not seen a really great product in this space! Productboard is surprisingly bad, in my view (no conversation, no participation between users, just isolated feature requests and a form of voting). Canny is the best one I’ve seen so far, at least for the front-end/user experience, but it too has some issues, and more importantly it lacks in integrations with most actual product and dev management tools except through e.g. Integromat. And if it’s all implemented right, i.e. in a flexible model as Fibery has been so far, then it should be useful for lots of other things I would think. Public form view and submission, and some way to handle “public” (non-user) interactions for voting and comments, ways to create public-“sanitized” or appropriately limited views for e.g. public roadmap without exposing all internal discussion and details, etc.

1 Like

Your feedback is insightful as always :slight_smile:

No, I don’t think so. I still think that it is good to separate requests from our real features/ideas/stories, since people don’t want to think hard about our product structure and we should not put this burden to users. However, some part of the model can be exposed, for example, high-grained product areas like Integrations, Automations, Search, etc. It’s relatively easy for a user to add requests into Product Areas and then we’ll link them to features/…

Then our team links feedback as usual, and the good thing for us here is that we still can show a total number of votes from all sources for the request (we can get it from Feature/Idea/etc as a lookup field).

When we’ll have blocks, it will be also possible to include blocks from other source into request, thus providing a more complete view and spark better discussions.

Here is the rough idea.

Note how you can react on every use case (block) and have thread discussion about every use case. It will help us to define what use cases are more important and prioritize our MVP accordingly. Now we mainly have to guess, since requests are often too broad. For example, take this request

It has at least 5+ use cases. Diff, revert, named versions, etc. What is more important? We can guess, but sometimes guesses are not so good.

And roadmap report can be quite easy to show, since we can add Start/End date and Status for Request as lookups and just create a Timeline that will show all requests. Everything will be in sync and there will be 0 manual effort to keep feedback and plans consistent.

I agree about Canny, most likey it is the best at this moment. They get many things right. But if we replace Discourse with Canny, we’ll get almost zero benefits.

3 Likes

Oh yes, that looks very promising indeed!

Oh yes, I agree. I just brought it up as an example of how that product/service space is not that well served yet (from what I’ve seen). Your mockup above looks quite promising vs. the existing options, especially given how it then integrates into the entire rest of the back-end dev/product management power and flexibility of Fibery. Can’t wait to have this available and be able to recommend it to other teams I work with!

So now that you use the Vote plugin, does Fibery import the vote count with the Discourse integration? I don’t have a plugin-enabled instance of Discourse to test this with at present, so I thought I’d ask. If not, it seems important to add!

Moving this reply to a more relevant thread as it’s mostly about feature voting. Sorry for the long response, but hopefully this illuminates some things, and does not itself require a mile-long response from you. :grinning_face_with_smiling_eyes:

That’s OK, I moved my vote too :wink: It’s interesting to see how I have felt the desire to shift them around depending on various factors over time. For example, for me it is not just about what I need most right now, but also what I think is most likely to get done “anyway” vs. something that may “need more support”, as well as relatedly whether something has “enough” support without me, and I can thus use my votes for “underdog” things perhaps. :smiley:

The number of votes is actually intentionally limited in the way the plugin was developed. It allows the forum admin to set a specific number of votes for each “trust level” (a Discourse concept explained in more detail here). I would say the defaults of the plugin are rather low, but the idea is arguably sound, which is that more long-time members of the community, who are thus more “invested”, get more ability to influence things with their votes. The reason for vote limits at all is it should better represent the real value of things to people since they can’t just go upvote everything that they care even a little about. It’s not perfect, but it’s a simple and reasonably effective approach, at least in theory.

But one problem with this - which is not Fibery’s fault, but a limitation of the “vote” plugin for Discourse - is that the votes count for both feature requests and bugs (well, I should say, they count for any category that voting is enabled on). I have recently advocated for allowing per-category vote limits, which I think would be very helpful and sensible (particularly in the distinction between bugs and features), but so far there is no real traction on that. If Fibery was interested in contributing a little money to the problem, I imagine I could get some “matching” funds. Say $100-200 or something. I’m not sure if that’d be enough to fund development, but it’s worth mentioning.

Anyway, as I said the number of votes depends on your Trust Level. Somehow you are a “Member” here, which in the plugin’s default config gets 6 votes (you can see your votes here: Profile - B_Sp - Fibery Community), while I am “Regular” (as in a “forum regular” I think), which gets 10. Given your activity here I have no idea why I’d be a more “trusted” member than you, and keep in mind this is generally an automated, system-driven trust level “promotion”. So somehow I did something that the system considers valuable that you did not. I would certainly advocate for a manual promotion for you to “Regular” at the least (Trust Level 3, i.e. “TL3”), if not “Leader” (TL4).

So for @mdubakov and team, two suggestions, and a request for consideration:

So the way I see this is that each feedback channel has to be treated differently because the rules, limits, and general interaction paradigms are different. This would be true even if “voting” were not an option. For example let’s say you get 10 requests from a single person in Intercom for a feature that is important to them. You will very likely not get someone in the forum posting 10 times about a feature, because it’s public and considered bad etiquette (not to mention mods generally clean up/merge such things). And with votes or “hearts”, one can only express importance a single time. So how to gauge importance of a feature for each person? Systems like ProductBoard make this explicit such that each user can indicate “nice to have”, “important”, or “critical”: New Features - Amazing Marvin | Product Roadmap

Something similar has been suggested for the Discourse Vote plugin, like “Supervotes” (e.g. being able to use multiple votes on a single feature), but it has so far not been well supported, much less implemented.

In any case the point is that the Fibery team needs to have some system for deriving feedback volume and importance, and thus a feedback “weight”, from different sources, in different ways. Discourse makes this easy, to some degree, with the Vote plugin. But it doesn’t exist in a vacuum and so must be harmonized in some way with other feedback sources. For Intercom I imagine it’s harder, but my understanding is that Fibery team gets a lot more volume of feedback through Intercom, so it’s a bit challenging as we don’t see any of that, and unsurprisingly the resulting weights/scores don’t necessarily make sense to us.

And of course these things may need to be adjusted over time. You pick one set of ratios and calculations and see if they work and make sense in practice. If not, you have to adjust. There needs to be room for iteration and change. But unless that is made public knowledge, an apparent shift in priority over time can seem arbitrary. A “little bit” of transparency can be arguably more dangerous than total transparency as it tends to invite questions that would be self-evident with total openness. But total transparency is hard too.

Hopefully you can get more votes whether or not you get bumped up a Trust Level. I think everyone at TL2 should have more. I also think some explanation of how they are calculating weight of Intercom feedback vs. forum feedback would be nice to have. That said, my ultimate hope is to see Fibery (the tool) have a way to expose feature priority information publicly, and for the Fibery team itself to use this to keep us all more in the loop.

In the end the data (feedback volume, weight, etc.) is also only one factor in the decision making process, of course. Michael and his colleagues have written extensively and insightfully on the many factors that must be balanced. I imagine you’ve read these, but I’ll post them for the benefit of other possible readers.

2 Likes

Thanks for the time and effort into a nice detailed post @Oshyan
I actually have similar logic for when I’m voting (underdog support etc.) but I guess I should think about how meaningful it is for me to cast votes now I’m ‘on the inside’!

I’ll leave it to Michael to decide if the vote limits should be adjusted, but he won’t get to it before September (he’s offline til then)

FYI, the criteria for each of the trust levels is defined here:

It doesn’t seem like it’s possible to manually promote individual users to TL3 :-/ and I think it’s currently only Fibery staff at TL4

2 Likes

It is possible, but it’s a little unintuitive. :grinning_face_with_smiling_eyes: If you have Admin access, you can go to /admin/users/list/active (or just click Admin from the hamburger menu and select the Users tab) and then click on their name and scroll down and you should see a dropdown menu where you can change trust level.

Thanks, found it.
Enjoy the extra votes @B_Sp

2 Likes

I’d like to suggest that the Voting plugin be removed for the Bugs category. I don’t think anyone wants to spend their votes there, and it makes less sense to have such a restricted vote quantity applying to bugs rather than features. If you could allocate points separately for the two categories, that might be a good approach, and I’ve requested/advocated for that on Discourse Meta before, but so far no traction. So in the meantime I think it might be better to just not have voting there (you’d still have Likes, which might function as a more useful proxy).

2 Likes

Guys @Oshyan as well. I have been too busy to carry on my previous level of activity in here, but I do appreciate the acknowledgments of my activity in here, just passed 2 yrs and my team is a big user of Fibery right now and we haven’t wavered for a long time. However, the tool still has big limitations and without going into a lot of detail, I remain eager to get some movement on feature build in a lot of areas that are not being addressed right now as far as I can tell. I still feel limited by the 10 votes I have, and I continue to disagree with the way this system is set up. Canny is showing up all over the place now, and I can’t believe that all the start-up founders that have opted to use it, and thus are OK with unlimited votes, with the occasional comment by one of those voters, think that limiting votes helps you better understand users and build product. I definitely would not limit this way on my own product for what it’s worth.

I did today for the first time in a few months check in on the most popular requests, including a few I am really hoping for that continue to have one vote - my own. And the big one of Polymorphic Relations that has stalled for months at 9 votes. I can’t imagine if this stuff was on ClickUp’s board, or for that matter Wrike, which uses Zendesk and has a rule that a feature must have 80 votes to get moved into a category, or Hive, which is outwardly declaring that the whole product’s future will be dictated by Canny votes, it would sit with basically no movement in public votes for months.

So I urge you guys to continue to work on your approach here. I appreciate you have opened up to voting, but a few months into this, I don’t really see where there is anything tangible around how this system delivers any value to the users of this forum (many of whom are Fibery power users and subscribers).

Thanks!

1 Like

@mdubakov, this is long overdue but I have been meaning for months to respond to this post and express thanks for the acknowledgment of the time I have put in the last two years - lately not nearly as much as in prior periods - trying to in good faith contribute to the community, provide content for other users to respond to, and to enhance your efforts to build Fibery. It is not all positive feedback but I’ve understood that you guys want everything, not just sugar-coated comments!

I am glad you have adopted votes, but I just posted some concerns I have watching how this has evolved the last few months. I continue to hope you will allow for more widespread voting, or some way that would allow requests in here to “pick up steam” naturally. I think it would be useful to both you guys as builders of the product, and to the users of the forum, who could on their own observe what’s gaining ground with users, and what isn’t, among requests on the forum. I submit as an example the fact that right now you have most requests with 4 or fewer votes. I don’t think that empirically you can confidently get a good sense of the value of these requests to users with so few votes cast.

I hope you will look at your voting system as an MVP of sorts, and consider improvements as it exists and you can gather information on how it’s working. I can only guess if your intention was to have so many requests with so few votes. But from my point of view, I feel like this systems isn’t providing much help to users above and beyond the old “heart” system - where at least you had no limits, and it was easy for a user to see how popular a request was, even without knowing where you guys were tracking that request internally.

Thanks for listening!

1 Like

I’ve increased limits to 100 in top community tier. I don’t see value in restricting votes to be honest, so this was just a base settings that I did not change initially :slight_smile:

2 Likes

For what it’s worth this is a default limitation that the plugin authors (the Discourse team itself) put in place. As I described more briefly above, the reasoning behind it is the belief that if you give people unlimited (or very high limit) votes, they will upvote features more indiscriminately, or at the very least you don’t get clear signal as to how important something is, how much each voter supports and values each given feature request. The idea with limiting votes, then, is that people can only vote on what they really care about. You get less overall “signal”, but the signals are low noise.

It is a highly opinionated way of looking at user feedback and prioritization that, if it works well, only does so in a situation in which there are a lot of people to give feedback and vote on things. Otherwise you have too little signal from constraining the votes, and the low noise basically results in a relative lack of real info. The Fibery community is still small enough that vote constraints just result in relatively little differentiation between highest and lowest-voted items. If you only have ~20 people who are generally active in the forum (voting area), then the maximum score you could have for any feature is only 20.

I am also not saying that I personally agree with an approach which limits votes. I get the reasoning behind it, but it seems like it’s based on speculation or assumption as much as evidence. I don’t recall seeing any studies or anything cited as demonstrating that this is how voting in this model works. It seemed to be more based on instinct and experience, which is not valueless, but can be easily corrupted by individual bias, etc.

If Hive is actually doing that, it is a dramatic exception to most software dev roadmaps and implementation plans I’ve seen. 100% user-driven development is an option, but seems to have some serious challenges. So it’s a bold promise, let’s see if they can uphold it. But I firmly believe you’re wrong about highly voted things getting the attention they should therefore deserve on other tools. ClickUp is one example I have some experience with, and one look at even their current Canny will show you that your assumption is simply not true. Their front page has some examples that are 1-1.5 years old, still not implemented. But if you look at top unimplemented requests it gets much worse:

https://clickup.canny.io/feature-requests/p/subfolders This one is from 2019, fully 2 years ago, 3.7k votes (!), a very simple and obvious request for Subfolders. Still not implemented.

https://clickup.canny.io/feature-requests/p/undo-actions-at-any-time-with-ctrl-z Apparently Ctrl-Z also does not work to undo things after the “toast” notification is gone? Also 3.7k votes, not yet marked fixed. Requested June of 2018, I mean… wow.

Different statuses for tasks and subtasks | Feature Requests | ClickUp Different statuses for tasks and subtasks, requested March 2018, 1.9k votes, still not done.

Set Vacation Days/Leave | Feature Requests | ClickUp Vacation dates, January 2019, 2.2k votes, not implemented.

Even bug reports fall victim to this: Auto-Refresh (Views/Task updates/etc do not appear until page refresh) | Bugs | ClickUp June of 2018, 770 votes.

(btw, ironically the ClickUp Canny board was super unresponsive and timed out multiple times while I was briefly researching this :joy:)

There are many, many other such long requested, highly support things that are not yet implemented/fixed. And ClickUp is a company with hundreds of millions in funding (including a massive Series C raise just recently), and apparently they have over 600 employees. So… if they still have features sitting for over a year (sometimes 2+!) with super high user interest and haven’t implemented… maybe it’s a bit more understandable that the Fibery team of ~25 or so isn’t getting to everything, especially those more complex features like (it seems) Polymorphic. :man_shrugging:

This actually connects with a thought I’ve had around using the Voting plugin (here in Discourse forums) and the “Like”/heart function, together to try to have a sort of two-tiered system to get more clear signal out of the voting action. I mentioned above there is this idea that limiting votes might make each vote more “meaningful”, but disallows people to express lesser levels of support, and basically limits expression pretty severely. So what if you had a limited number of “Votes” but an unlimited number of “Hearts” (like we did before)? Let’s say a “vote” counts for 3x or 5x the value of a “heart” (this could easily be reflected in Fibery team’s setup of its Discourse integration). So you can vote up as many topics as you like with 1x votes, but you can provide extra signal amplitude - so to speak - for the relatively fewer features that really are more important to you by using a limited number of Votes.

Building this kind of “supervote” into the Voting plugin itself was actually discussed on the Discourse forum “Meta” board, but was decided against, at least for now. I think they felt it would be too complicated and not every Voting plugin user would want it. However I think using both Votes and Hearts together basically gets you a simple version of that, and I’ve been wanting to try it in practice myself… Maybe it’s something @mdubakov can consider, or at least comment on if he sees any issues with the concept. Here’s how you can do it:

And if heart vs. vote seems confusing, you could also change the heart icon to something else:

Glad to hear this! However it’s a bit sad that, despite lots of discussion prior to now of the problems with this limit, as well as the drawbacks of having Bugs also be part of Votes (and thus counting against our limits), it took until recently for the Bugs category to be removed from voting, and until now for the limit to be increased. I’m glad it happened, but not sure why it took so long if it wasn’t something you actually intended for. :confused:

1 Like