Bonjour à tous.

Je voudrais réagir aux différentes interventions de Vincent Becker qui me semble soulever des points importants. Je vous préviens, c'est long. Mais c'est parce que ça fait pas mal de temps que j'accumule des remarques et je n'ai jamais pris le temps de les formuler auparavant.


Tout d'abord, je voudrais moi aussi insister sur la séparation importante qu'il faut faire entre le logiciel demexp et le projet politique « Expérience démocratique ». Premièrement, il faut bien prendre conscience qu'un logiciel comme demexp peut avoir un très important rôle d'aide à la décision au sein de petites structures telles que des associations, des communes, des entreprises, la gestion de projets, etc. C'est ce que dit Vincent, mais je veux bien insister sur ce point. Cela signifie que le logiciel ne doit pas être développé dans l'objectif unique du projet « Expérience démocratique » mais bien avec le soucis de généralité qu'on peut attendre d'un tel logiciel. Il faut d'autant moins négliger cet aspect que l'«Éxpérience démocratique » est un projet de longue haleine, dont la réussite est hasardeuse. La réussite du projet est aussi sans doute soumise à la confiance que les gens pourront avoir en demexp, ce qui plaide pour l'introduction de demexp dans la prise de décision dans des structures de plus petite échelle et où l'enjeu est moins important que la gestion d'une nation. En outre, un tel déploiement peut servir de preuve de concept et permettre d'améliorer le logiciel.

J'insiste sur ce point parce qu'il m'a semblé que le développement initial du logiciel était trop préoccupé par l'idée du projet politique, au risque de faire des erreurs dans le choix de l'architecture du logiciel (cf. le débat qui agite la liste actuellement autour de la possibilité de supprimer une question). Il me semble que le tir a été corrigé et que le développement actuel du logiciel tient mieux compte des autres usages possibles. Raison de plus pour y réfléchir.

À ce propos, je voudrais introduire ici une comparaison entre demexp et wiki. Les divers logiciels wiki ont été écrits dans l'idée de développer wikipedia, mais pour autant, l'outil a été conçu pour être le plus souple possible de façon à ce qu'on puisse déployer des wikis dans d'autres contextes. La préoccupation n'était pas inutile : pour preuve les wikis qui fleurissent sur les sites de différents projets logiciels (demexp en premier lieu). Cette comparaison m'amène à une autre réflexion : la question des droits. Dans un soucis de démocratie la plus large possible, vous vous interdisez la création de droits particuliers pour certains utilisateurs. Comme le fait remarquer Vincent, ça bride l'usage du logiciel. J'ajouterai qu'introduire la notion de droits ne signifie pas qu'on est obligé de les utiliser de sorte qu'il vaut mieux avoir un logiciel qui permet de gérer de droits que non. Mais surtout, regardez les wikis : n'est-ce-pas là un logiciel qui a pour vocation la totale liberté d'édition par tous ? Pourtant le logiciel a été conçu pour permettre l'utilisation de droits, et l'usage qui en est fait (même s'il est le plus limité possible) permet une bonne régulation des contributions et facilite l'utilisation du logiciel. Je pense donc qu'il faudrait réfléchir sérieusement à cela pour introduire la fonctionnalité dans les futures versions.

J'ajouterais en vrac quelques demandes de fonctionnalités. Ce sont des idées en vrac ; souvent, il n'y a rien d'urgent, mais c'est pour les porter à votre connaissance de façon à ce que les futures évolutions en tiennent compte pour ne pas se boucher de possibilités.

- Une réponse systématique à toute question : « cette question est sans objet » (cf. le débat qui anime la liste en ce moment à propos de la suppression de question. Je n'ai pas d'idée vraiment idéale sur la façon de résoudre le problème. Ceci n'est qu'une piste).

- Possibilité de fermer le vote de certaines questions (ça a déjà été dit et ça me semble important ; d'abord, il y a des questions qui n'ont qu'une durée limitée dans le temps ; ensuite, la plupart des questions attendent une réponse qu'on considère comme définitive à un instant donné, de façon à prendre les mesures qui s'imposent pour l'application de la décision. Ça ne veut pas dire que la population ne pourra plus changer d'avis, mais cela assure une certaine stabilité des positions de la base. Si on veut reprendre le vote d'une question, on peut commencer par soumettre une question de la forme « Doit-on rouvrir au vote la question machin ? »). Lorsque le vote est fermé, les questions, leurs réponses et la position de la base à leur sujet doivent rester visibles, mais dans une autre rubrique du logiciel. Ainsi, on n'encombre pas la prise de décision sur les questions d'actualités par des vieilleries. Si on veut, ça revient à séparer les codes de lois existants (les vieilleries) des questions actuellement débattues à l'Assemblée (les questions actuelles de la base).

- Sur la navigation dans l'interface, il y a beaucoup de choses à dire, mais je pense que ça viendra dans (très) longtemps. Il faudra à terme pouvoir faire des liens hypertextes entre questions, associer à chaque question et à chaque réponse un lieu de débat (nous avions commencé à y réfléchir avec un copain. C'est assez délicat. À l'occasion je vous soumettrais nos idées là-dessus). Il faudrait qu'il y ait un classement des questions en différentes rubriques, à la base même de demexp de façon à différencier clairement des choses qui n'ont rien à voir. Par exemple, les questions classées, les questions urgentes, les questions de fond, les questions concernant l'application de décisions prises par la communauté, que sais-je... De manière générale, la catégorisation des questions est la plus grosse faille de la version actuelle de demexp d'après moi. Au fait, une question doit pouvoir être classée dans plusieurs catégories ou sous-catégorie. Il y a aussi les méta-questions : « doit-on considérer que la question machin n'a plus lieu d'être ? » par exemple. Il faut songer à mettre en place un nombre de voix exprimées minimal pour que la base prennent position. Bien sûr dans très long temps, il faudra inclure un moteur de recherche malin, un moyen d'avoir une vue globale de la base avec ses différentes rubriques. À terme, il faudrait qu'il y ait une rubrique : « questions sur lesquelles vous ne vous êtes pas encore exprimées », ou encore « questions datant de moins de tant de jours ».

- À propos de la délégation, au moment où elle sera mise en place, il faudra à ce qu'on puisse déléguer une question particulière ou bien tout une catégorie de questions. Il faut bien sûr pouvoir déléguer les réponses à différentes personnes suivant les questions : ce n'est pas parce que je suis d'accord avec Machin à propos de l'immigration que je suis d'accord avec lui concernant la politique économique. Il faudra pouvoir voir rapidement les questions qu'on a déléguées et quelles réponses y ont été faites. En particuliers, il faut une rubrique « changements de position prises par vos délégués depuis la dernière fois ». Cette dernière fonctionnalité est indispensable pour éviter les abus du genre : je délègue à Machin qui prend une position qui me plaît bien mais qui, dès que j'ai le dos tourné change d'avis sans me le dire. La délégation ne doit bien évidemment pas empêché que je donne ma propre opinion plutôt que celle de mon délégué si je ne suis pas d'accord avec lui ponctuellement. Cette dernière réflexion a de l'importance lorsqu'on décide de déléguer toute une catégorie de questions à quelqu'un : dans ce cas, je peut être en désaccord ponctuel avec mon délégué sur une question ; je dois alors pouvoir récupérer ma liberté d'expression sans pour autant supprimer la délégation pour les autres questions de la catégorie. Au fait, une réflexion qui m'est venue : la délégation n'est pas forcément quelque chose d'unilatéral. Lorsque je délègue mon vote à un ami qui a les même idées que moi, il pourrait vraisemblablement me déléguer lui aussi les mêmes questions. Dans ce cas, on est dans une situation où l'on décide à plusieurs de se répartir le travail : n'importe qui de Bidule ou de Machin a le droit de répondre à telles questions et lorsqu'il prend position, cela prend simultanément position pour Bidule et pour Machin. Ainsi, on peut se regrouper en courant de pensée et traiter à plusieurs toutes les réponses à une catégorie de questions où on sait qu'on est tous d'accord.

- De manière générale, tout ajout de question ou de réponse dans la base, ou toute modification de formulation doit être traité avec le plus grand soin : par exemple, lorsqu'on ajoute une réponse à une question, il est délicat de considérer que les votes précédents tiennent toujours car l'introduction d'une réponse nouvelle peut changer la donne. D'un autre côté, on ne peut pas remettre à zéro tous les votes à une question sous prétexte qu'une réponse à changer. À cela, je vois deux solutions, non mutuellement exclusives. La première est une information systématique et automatique des gens lorsqu'une question ou une réponse change dans la base (cf. idées développées plus haut). La deuxième est d'introduire une catégorie « Question en cours d'élaboration » qui permet de nettement séparer la phase de préparation des questions et de leur réponses et la phase de vote. Je penche très fort en faveur de la mise en place d'un tel système. Ainsi, on peut se préoccuper de poser des questions, puis de proposer divers réponses. Une fois que tout le monde est d'accord sur les différentes réponses qu'on doit proposé à une question donnée, et seulement à partir de ce moment-là, on soumet au vote, mais il n'est alors plus question de modifier la question ou la réponse. À ce propos, ça me permet de dire qu'il serait agréable de pouvoir modifier la formulation d'une question ou d'une réponse, de supprimer une question ou une réponse à tout moment. Pour éviter les abus, je milite pour l'introduction de droits (par exemple, seul un collège d'administrateurs a le droit de faire ce genre de modifications ; si on veut, on peut mettre en place des systèmes sophistiqués du genre : on soumet d'abord au vote une autorisation de modification. Évidemment, le risque est rapidement de tomber dans de la lourdeur administrative).

- À propos de sécurisation : ce n'est pas indispensable dans un premier temps, même si sur un projet politique à grande échelle, c'est indispensable. Mais dans le cadre de petites structures, généralement, on se fait confiance. Par conséquent, l'effort principal ne devrait pas être porté là-dessus d'après moi. D'autant qu'en concevant bien les interfaces de communications, ce ne sera rien que de rajouter une couche de SSL le temps venu. À ce propos, j'attire votre attention sur une faille possible de la méthode Condorcet en matière d'anonymat. Quelqu'un qui veut forcer le vote peut s'y prendre ainsi : on introduit une quinzaine de réponses pipeau. Puis, on le chef de la mafia va voir Bidule et lui dit : « les questions pipeau, tu les mets à la fin de ton vote, et dans l'ordre précis que voilà. En première position de ton vote, tu votes pour moi ». Comme il y a 15! possibilités, ça permet à la mafia de donner une signature unique à chacun. Si elle a accès au dépouillement du serveur, elle peut alors savoir qui a suivi ou n'a pas suivi la consigne de vote et aller flinguer qui de droit. La ruse est indépendante de la sécurisation des transactions. D'aucun diront, il suffit alors d'interdire à la mafia de voir le dépouillement. Mais alors on a un grave problème de publicité de la méthode : comment savoir si le serveur qui dépouille (qu'on n'a pas le droit de voir dépouiller) n'est pas un serveur trafiqué par la mafia qui élit toujours le chef de la mafia quoiqu'il arrive ? Bref, il y a là quelque chose d'assez délicat à propos duquel je n'ai pas trouvé de solution satisfaisante.

- Où en est l'interface Web ? Ça me semble une bonne chose de la mettre en place. Mais ce n'est pas forcément urgent.

- Je finirais par une remarque sur le vote Condorcet : il a trois défaut. Le premier est de demandé de classer des réponses plutôt que de juste donner une réponse. À la longue, ça peut être fastidieux. Néanmoins, si le logiciel est bien pensé et si le système de délégation fonctionne efficacement, je pense que le problème disparaît. Oublions donc ce point. Le deuxième défaut est qu'il oblige les gens à classer sur une même échelle des réponses qui leur conviennent et des réponses qui ne leur conviennent pas. Ainsi, aux présidentielles, je préfère Bidule à Machin, mais je les aime bien tous les deux, alors que je n'ai pas du tout Truc. Cependant, il faut préciser que Truc serait moins pire tout de même que Chose, qui vraiment n'est pas bien du tout. Ça demande beaucoup de pédagogie d'expliquer aux gens qu'il faut classer les gens qu'on aime bien et les gens qu'on aime pas sur une même échelle sans indiquer où commencent les gens dont on ne veut pas. Je pense que ça amène une certaine méfiance vis-à-vis du système de vote. Troisième défaut : que faire lorsqu'aucun candidat Condorcet ne se dégage et qu'on a un ensemble de Schwarz non trivial ? Là, il y a plusieurs variantes possibles et le choix de l'une d'elle est arbitraire.

Je propose donc deux choses : d'abord que le choix de la méthode de vote soit fait de façon bien modulaire dans le code de façon à ce que tout un chacun puisse avoir le loisir de changer la méthode lorsqu'il met en place un serveur demexp pour un besoin particulier. On pourrait alors proposer par défaut avec demexp plusieurs systèmes et l'administrateur de la base ferait son choix au moment du déploiement du logiciel. En outre n'importe qui pourrait facilement écrire son propre module sans avoir à lire tout le code de demexp. Ça nécessite de bien documenter le module « méthode de vote ».

Quant à moi, je me demande si on ne pourrait pas résoudre les deux derniers défauts soulevés de la manière suivante : les gens font deux listes : une liste de réponses auxquelles ils adhèrent et une liste de réponses auxquelles ils n'adhèrent pas. Les deux listes sont ordonnées. Pour choisir la réponse gagnante, on fait d'abord un vote Condorcet en concaténant les deux listes. Si un candidat Condorcet se dégage, c'est le vainqueur. Sinon, on choisit le vainqueur dans l'ensemble de Schwarz en faisant un vote par assentiment : pour chaque votant, on ne considère plus que la liste des gens auxquels il adhère et on les met ex-aequo. Celui de l'ensemble de Schwarz qui totalise le plus de voix gagne le vote. Il me semble qu'on bénéficie ainsi à la fois des avantages du vote Condorcet et du vote par assentiment. Mais je m'étonne de n'avoir jamais entendu parler d'un tel protocole. En tout cas je trouve que ça mériterait qu'on y réfléchisse parce que ça permet de régler les deux défauts principaux de la méthode Condorcet.

Voilà. Ce fut long, mais c'est le fruit d'un an de réflexions autour de demexp. J'espère que ce sera profitable. Au fait, il n'est pas exclu que je me mette à coder pour demexp un jour ou l'autre. C'est juste que pour l'instant, je n'ai pas tellement le temps.


Bon courage aux développeurs.

Cordialement,

Sylvain Chevillard


--
Liste de discussion demexp-fr.
Pour se désinscrire, cliquer sur le lien ci-après.
mailto:[EMAIL PROTECTED]

Répondre à