First off, I want to say that I think the premise behind this idea is great.
Letting the customers/clients/consumers/stakeholders have a stronger input on the order of the work and setting the priorities is a key aspect to any successful project. That being said, however, in almost all cases there needs to be one main person who manages the project that serves as the funnel for both sides of the development coin (developers and stakeholders).
It is one of the main responsibilities of the project manager (PM) to set the priorities for the development team. To do this, they take all of the input from the stakeholders regarding what they feel is the most important, as well as the same input from the developers (in addition to other information like how long something will take for cost reasons).
The problem that I believe this question is trying to find an answer to is how to get the stakeholder input efficiently and fairly and in such a way that it can be closely tied to the actual work as recorded in FogBugz. From there, this information will be used to set the work order of cases in FogBugz. Lastly, it would be better if FogBugz itself can help out with this solution so that additional systems don't have to be put in place.
With this as our starting point, I can see a number of FogBugz capabilities that are likely to help out a great deal in achieving our goal:
- FogBugz allows a case to be marked as a duplicate of another. Using this, you could have your stakeholders email in their requests or votes, or have your PM enter cases for their votes, and then resolve those as duplicates of your work case. The number of duplicates on a case is then an indication of how many stakeholders have "voted" for that particular item. Unfortunately, this can't (currently) be displayed as a built-in parameter of the system, a plugin to do it should be fairly straight forward to put together.
- The Project Backlog plugin allows you to set the ordering of the cases in a project. Using this, a PM can set the ordering of top-level cases so that the dev team knows the order in which they should work on items. Any of your developers can order their case list by Project and then by Backlog and see, for each project they have cases in, the order that they should work through them. While this aspect doesn't help with the stakeholder feedback aspect of the problem (that still lies with the PM), it does give a very clear, discrete way for the ordering to be set on the work in a project. The PM can use this to account for, for example, the CEO of your main customer wanting feature X really badly. Feature X can get moved up the backlog order to accomadate this request, even though no one else really cares, so that you can keep your main customer happy.
- FogBugz lets you easily move cases to/from milestones for a project and set deadlines for milestones. By putting the cases into milestones (and they can be small, tight milestones that are 1 or 2 weeks long, you are also setting an order for when things need to be done, and then when the next group of things need to be done. Or, to put it more simply, your dev team should work on the things in the current milestone (ie. the one due next). This can also get coupled with the Backlog plugin so that your team knows, even within a milestone, what things to work on first. Again, this puts the pressure on the PM to set the ordering of things by organizing them into milestones, but that is that person's job.
I am sure there are more things I am forgetting about, but those seem to be the main that come to my mind when I look at the problem. For me, the key would be leveraging the Duplicate Case idea as a way to indicate level of interest. Otherwise, writing a plugin to allow exactly that sort of thing would be fairly straight-forward, and may even be best suited for a small FogBugz XML API-based APP and a small FogBugz plugin to give you a field for recording votes.