wiki:FeatureProposalGuideline

Feature proposal

We build LiquidFeedback to implement a democratic system in which every participant is treated equally. Tactical opportunities should be minimized. Therefore, any existent feature of LiquidFeedback is thoroughly designed and has its very own purpose in LiquidFeedback's concepts of proposition development and decision making. These concepts are described in the book The Principles of LiquidFeedback written by the inventors of LiquidFeedback. Ongoing theoretical work is (amongst other topics) published in The Liquid Democracy Journal.

To keep the high standard of scientifically justified process design, we require a feature proposal (see below) before the maintainers can decide about incorporating a new feature. If you are interested in contributing a feature to LiquidFeedback, we kindly request you to answer the following questions prior to making your contribution (or before you start implementing it). If you are not able to answer some of the questions, just leave them unanswered. But keep in mind that any information you provide may help developers and the maintainers to understand your feature request.

Please send your feature proposal to the maintainers by email to Maintainer email address or make it public by posting it to the main discussion list.

1. Feature summary

  • What does your feature do?

2. Benefits

  • Why should LiquidFeedback incorporate your feature?
  • Is there a benefit for the democratic processes in LiquidFeedback? If so, which benefits?
  • Is there a benefit for the users of LiquidFeedback? If so, which benefits?

3. Theoretical considerations

  • How does the feature fit into the current concept of LiquidFeedback?
  • Does your feature treat all participants equally?
  • Does your feature follow (or affect) the concept of proportional representation of minorities?

4. Scientific papers and algorithms

  • Do you have references to scientific papers or publications related to the proposed feature?
  • Does the feature incorporate previously published algorithms?
  • Did you create a new algorithm for this feature?

5. Change or break of current features

  • Is your feature a replacement for an existent feature of LiquidFeedback?
  • Does your feature interfere with or break any existent feature of LiquidFeedback?

6. Impact on the Core

  • Does your feature need new data structures?
  • Which new data tables are needed?
  • Which tables need additional data fields?
  • Which functions need to (or should be) implemented in the Core?
  • Which functions need to be changed?
  • Are background tasks needed, e.g. for complex calculations?

7. Impact on the Frontend

  • Which new information needs to be displayed to the user?
  • How shall the information be displayed (numbers, text, graphs, ...)?
  • Which new actions can be performed by a user?
  • Where should the additional features and actions be incorporated in the UI?
  • Are background tasks needed, e.g. for slow operations?

8. Software dependencies

  • Are external libraries suggested to implement your feature?

9. Implementation

  • Who is able and willing to implement your feature?
  • Will a Contributor License agreement be signed by any programmer or organisation involved with the implementation?
  • How much time does it take to implement the feature?
  • What assistance is needed by the maintainers of LiquidFeedback?
Last modified 2 months ago Last modified on Dec 20, 2016, 1:35:06 PM