2

In the current design, the voting system allows users to CRUD votes. What concerns me now is the editing part.

Suppose a user created a new topic with 4 choices. All votes casted by different users are recorded in a database for statistics. Now, imagine at a certain moment, the statistics are as follows:

  • What should I eat for breakfast?

    1. Bread - 30%
    2. Oatmeal - 40%
    3. Apple - 5%
    4. Egg - 25%

Should the system allow:

  1. the title of the topic be changed? Let's say change it from "What should I eat for breakfast?" to "Which car should I purchase?"
  2. the creator to add, modify or delete the choices? For instance, can choice 1 be changed to "Noodles", or can choice 3 "Apple" be deleted?

If these actions are allowed, should the statistics be reset as the choices are modified?

2

Your two examples make it obvious that question editing should reset the results, but I can imagine less dramatic changes to a question where you not want to reset the results.

For example, if choice #2 had been misspelled as "Oatmael" in the original version of the voite and then corrected by an edit, the previously collected votes would not necessarily have to be deleted.

Since you describe this as a voting system, the behavior of resetting/discarding previous answers whenever a question is edited, can be used to skew the results. For example, if most of the conservatives in an area vote in the morning on their way to work, then editing the question at around 10am could sku the results to the liberal side.

But not resetting previous answers when a question is edited is just as damaging to the validity of the results. If the meaning of the available choices is amended or rearranged, votes collected prior to the change could have their intended meaning modified without the voter's consent.

From a UX point of view, the only appropriate design is to lock the question and choice list as soon as the first vote is cast. Allow editing of up to that moment to allow for spelling corrections and the reordering of choices. Then once the first vote is cast, out of respect for the sanctity of that vote, forbid all further editing.

From a System Design point of view, I can imagine a different option, but it would have to be handled by the database design. The system could allow editing to occur after voting has begun, but it would have to maintain a strict audit of such behavior with enough detail to analyze the entire process after voting is closed.

  1. Every edit of a question or its choice list must be treated as the creation of a new version.

  2. Every version must to be stored seperately, along with the votes which were collected for that version.

  3. Final reporting of results must include tallied results for each version of the question, followed by a tallying of the sum of all versions.

With that much information stored and reportable, and in the absence of summarizing reports which could be used to obscure the stored information, a voting system could exist which would allow for editing of the questions and their choice lists, without compromising the integrity of pre-change votes.

  • It is true that maintaining the validity of the results is the root cause for me to ask this question. As you said "Allow editing of up to that moment to allow for spelling corrections and the reordering of choices", how do we know if it is the case? – S.C. Jan 29 '15 at 5:00
  • Depending on the database behind your system, you can query the vote count for a given question on page load (or by ajax) and disable the edit button if the count comes back greater than zero. – Henry Taylor Jan 29 '15 at 5:36
  • Sorry, I did not express my thoughts clearly. I meant how to determine whether an edit is a "spelling correction" or not. – S.C. Jan 29 '15 at 7:10
  • 1
    I don't think that you can programmatically. Detecting the purpose of a change is beyond current computerized context analysis. Instead, I think you want to pursue a simpler metric as your editing on/off switch. Something that the computer can determine without heavy computations. Counting votes is my recommendation. Prior to the first vote, let the question be changed without restriction. Once a vote has been cast, forbid all changes. – Henry Taylor Jan 29 '15 at 7:33
2

When posing a question for a poll, the exact wording can have a significant impact on the choices that people make. So any change to a poll question, essentially invalidates the existing votes. E.g. "Do you enjoy eating chocolate?" vs. "Do you like chocolate?" while being essentially the same question will likely result in a different bias.

The same goes for the results. Let's say the initial poll was something like

Which would you prefer?

  1. A poke in the eye with a sharp stick
  2. Being tarred and feathered

And then after some voting, you added a third option of "Winning the lottery". Obviously the previous votes are invalid given a new third choice, which most of them would have likely made.

So, any change to a poll invalidates all previous results. So editing a poll should either not be allowed, or editing a poll should reset all statistics for that poll. Practically the partial poll that you would reset may have useful insights, so it can still be kept for analysis.


For a fun read on this, take a look at How to Lie with Statistics by Darrell Huff

  • Is there any standard on this issue among other voting apps published? – S.C. Jan 29 '15 at 7:18
  • @AldourCheng I'm not sure what other voting apps do. Some may violate this, but then they are giving their users false statistics. – JohnGB Jan 29 '15 at 7:21

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.