Allgemein

Ein Überblick über die BEO-Software und aktuelle Baustellen

2013 haben wir auf dem Bundesparteitag in Neumarkt die Einführung des Basisentscheids (BEO) beschlossen. Später wurden in einigen Ländern die Regelungen zum Basisentscheid übernommen bzw. in sehr ähnlicher Form beschlossen. Leider haben wir bis heute noch kein vollständiges, einsatzfähiges Software-System, um diesen Beschluss umzusetzen. Natürlich ist in der Zeit seit 2013 trotz einiger Rückschläge und längerer Pausen Einiges passiert. Teile der BEO-Software werden schon von der Piratenpartei Schweiz eingesetzt und die vollständige Umsetzung der Urabstimmung mit Hilfe der BEO-Software, die bei den Schweizer Piraten als „Televotia“ bekannt ist, könnte noch im 1. Halbjahr 2018 gelingen. Dieser Artikel soll euch den Aufbau der BEO-Software zeigen, wie sie von der PG Basisentscheid vorgeschlagen und in Teilen selbst entwickelt wird. Dabei geht es um die grundsätzlichen Funktionen der einzelnen Bausteine, deren Zusammenspiel, einige technische Details und aktuell zu erledigende Aufgaben. Wenn ihr mithelfen wollt, könnt ihr euch gerne an den Vorstand wenden.

In einem weiteren Artikel werden wir euch einen möglichst konkreten „Fahrplan“ für die Einführung des Basisentscheids auf Bundesebene vorstellen, der mehr auf organisatorische Aspekte eingehen wird. 

Wir suchen weiterhin nach Kandidaten für den Posten der BEO-Verantwortlichen. Mehr dazu findet ihr hier

Konzept

Seit 2013 arbeitet die PG Basisentscheid an der Umsetzung des BEO. In der ersten Zeit stand die Weiterentwicklung der Entscheidsordnung im Vordergrund. Parallel dazu wurde das grundsätzliche Konzept des BEO-Softwaresystems diskutiert und erarbeitet. Natürlich war klar, dass nur quelloffene freie Software in Frage kommt, die möglichst auf bewährte und verbreitete Technik setzt. Das System soll möglichst einfach an unterschiedliche Anforderungen angepasst werden können, da sich Satzungsregelungen in den einzelnen Gliederungen unterscheiden können. Auch andere Organisationen und Piratenparteien in anderen Ländern sollen im Idealfall das System verwenden und ggf. an ihre Bedürfnisse anpassen können. Das System soll mit mehreren Gliederungsebenen umgehen können, so dass eine zentrale Instanz für die gesamte Partei ausreicht und Untergliederungen keine eigenen IT-Systeme für den Basisentscheid betreiben müssen.

Um den Entwicklungsaufwand möglichst klein zu halten, soll schon bestehende Software mitgenutzt bzw. für den BEO angepasst werden. Zur Diskussion im Vorfeld der Abstimmungen wurde schon früh Discourse favorisiert, welches sich in der Zwischenzeit gut entwickelt hat. Für die Pro-/Contra-Diskussion von Anträgen war Wikiarguments bzw. eine Weiterentwicklung davon vorgesehen. Ein passendes Abstimmungstool und der ID-Server, der zentrale Funktionen bereitstellt, mussten mit einem Fokus auf Datensparsamkeit und Sicherheit neu entwickelt werden.

ID-Server

Der ID-Server stellt zentrale Funktionen für das BEO-Gesamtsystem bereit. Er stellt die Schnittstelle zur Mitgliederdatenbank dar und bekommt von dieser regelmäßig Änderungen der relevanten Mitgliederdaten, wie zum Beispiel der Stimmberechtigung und der Gliederungszugehörigkeit mitgeteilt. Für Benutzer ist vor allem wichtig, dass der ID-Server eine zentrale Anmeldung für alle BEO-Teilsysteme ermöglicht. So reicht ein Account (Benutzername und Passwort) für alle Systeme aus. Auf dem ID-Server können Mitglieder ihr Profil anpassen und das Passwort ändern. Der ID-Server ist eine komplette Eigeneinwicklung der PG Basisentscheid, setzt aber möglichst auf bestehende Technik wie das Webframework Django, gnupg und OAuth2. Meldet euch bei der PG Basisentscheid, wenn ihr mehr wissen oder am besten sogar bei der Entwicklung helfen wollt! Die PG ist auch gerne bei der Anbindung weiterer Software an den ID-Server behilflich (zum Beispiel LimeSurvey?).

Fakten

  • Status: im Einsatz für Televotia Piratenpartei Schweiz; aktive Weiterentwicklung
  • entwickelt von: PG Basisentscheid
  • Technik: Python, Django, pyjade, OAuth2, gnupg, REST
  • im Einsatz unter: https://id.piratenpartei.ch
  • Code: https://github.com/edemocracy/ekklesia
  • aktuell zu tun:
    • Dokumentation
    • Sicherheitsüberprüfung
    • zusätzliche Funktionen

Discourse

Discourse ist eine moderne Software für Online-Diskussionen, die Funktionen „klassischer“ Webforen sowie Mailinglisten bietet. Discourse bietet eine brauchbare Unterstützung von Mobilgeräten und kann auch per Mail genutzt werden. Das Projekt betreibt eine sehr aktive Weiterentwicklung der Software mit ca. halbjährlichen Versionen, die den Funktionsumfang, die Sicherheit und die Benutzerfreundlichkeit laufend verbessern. Zur Integration von Discourse in der BEO-System hat die PG Basisentscheid ein Plugin für Discourse geschrieben, welches die Anmeldung über den ID-Server bereitstellt und Profilinformationen vom ID-Server an Discourse weiterleitet. Es ermöglicht Mitgliedern, Beiträge direkt aus Discourse heraus als Antrag zum BEO einzureichen. Außerdem fügt das Plugin Benutzer in eine „Piratengruppe“ ein, die zum Beispiel dafür genutzt werden kann, Teilnehmer auf freiwilliger Basis im Discourse als Piraten „auszuweisen“. So können Parteimitglieder von Gästen unterschieden werden.

Discourse kann vielseitig für alle Arten von Diskussionen eingesetzt werden. So soll es zur Vorbereitung von Bundesparteitagen, zur Diskussion der aktuellen Frage (Frage der Woche) und für allgemeine politische Themen verwendet werden. Einige Landesverbände setzen Discourse schon ein, beispielsweise Bayern, Schleswig-Holstein und Berlin. Außerdem wird es von der Piratenpartei Schweiz als allgemeines Diskussiontool und für die Urabstimmung „Televotia“ genutzt.

Im Rahmen des BEO soll Discourse vor allem zur Entwicklung von Antragsideen und Anträgen dienen. Daneben können alle Dinge rund um den BEO oder auch Abstimmungsergebnisse diskutiert werden.

Fakten

Portal

Das Portal stellt Funktionen rund um das Thema Anträge bereit. So können von Mitgliedern Anträge eingereicht 1, unterstützt 2 und Pro-/Contra-Argumente gesammelt werden. Im „Hintergrund“ stellt das Portal Funktionen für die Antragskommission bzw. für die BEO-Verantwortlichen bereit. Die BEO-Verantwortlichen bereiten im Portal Abstimmungen vor und legen deren Ablauf fest. Mitglieder können die Abstimmungsperioden und relevante Termine auf allen beteiligten Gliederungsebenen einsehen. Nach Ende der Abstimmung werden die Ergebnisse im Portal ausgewertet, präsentiert, archiviert und zur automatisierten Weiterverarbeitung über eine HTTP-API angeboten. Das Portal basierte ursprünglich auf Wikiarguments, wird aber gerade durch eine „saubere“ Neuentwicklung in der Programmiersprache Python ersetzt. Die Entwicklung ist gerade in vollem Gange, aber es fehlen noch wichtige Teile des Systems. Das Portal ist aktuell lauffähig mit einem mit Wikiarguments vergleichbaren Funktionsumfang. Weitere Entwickler sind gerne gesehen 😉

Fakten

  • Status: aktive Entwicklung; integriert in BEO-System
  • Technik: Python, Javascript, pyjade, Elm (geplant), Morepath, REST
  • Code: https://github.com/dpausp/ekklesia-portal
  • aktuell zu tun:
    • Erstellung, Planung von Abstimmungen, Übermittlung an das Abstimmungssystem
    • Funktionen zur Antragsverwaltung (Arbeitswerkzeug für Antragskommission bzw. BEO-Verantwortliche)

Abstimmung

Die Abstimmungssoftware selbst soll aus Sicherheitsgründen möglichst wenige Funktionen bereitstellen und möglichst einfach sein. Sie soll sich ausschließlich um die Anzeige der Fragen / Anträge und die Entgegennahme der Stimmen kümmern. Die Vorbereitung der Abstimmung und die Darstellung der Ergebnisse werden vom Portal übernommen, die Kommunikation mit der Mitgliederdatenbank und die Authentifizierung der (stimmberechtigten und verifizierten) Benutzer vom ID-Server.

Diese Komponente des System ist aktuell die größte „Baustelle“. Es gibt 3 Softwärelösungen, die aus unterschiedlichen Gründen im aktuellen Zustand nicht direkt für den BEO einsetzbar sind. Hier ist noch nicht klar, wie weiter vorgegangen werden soll.

VVVote ist aktuell die am weitesten entwickelte Lösung. Es in PHP geschrieben, funktionsfähig, getestet und angebunden an das BEO-System, passt aber aktuell nicht zu den Satzungsregelungen. VVVote implementiert eine anonyme Abstimmung, die Satzung sieht eine pseudonyme Abstimmung vor. Hier sind 2 Varianten denkbar: entweder wird die pseudonyme Abstimmung in VVVote nachgerüstet oder die Satzung wird entsprechend auf dem nächsten BPT angepasst. Für die Änderung auf dem BPT gibt es natürlich keine Erfolgsgarantie. Bei dieser Frage würde uns sehr eure Meinung interessieren.

„BEOVote“ ist eine unvollständige, aber zur Satzung passende Umsetzung der Abstimmungssoftware, die in Java geschrieben ist. Aktuell gibt es aber niemanden, der sie weiterentwickelt. Der Code ist aktuell nicht frei verfügbar.

Da der Funktionsumfang recht überschaubar ist, ist auch eine einfache Neuentwicklung durchaus sinnvoll. Die PG Basisentscheid wird sich aufgrund der knappen personellen Ressourcen aber erst damit beschäftigen können, wenn ID-Server und Portal ausreichend weit entwickelt sind. Hilfe ist hier gerne gesehen!

Votezilla ist eine in PHP geschriebene Lösung, die neben der pseudonymen Abstimmung auch viele weitere Funktionen integriert, die im BEO-System schon von ID-Server oder Portal übernommen werden. Die Implementierung passt wohl zur Satzung, ist aber nicht in das BEO-System integriert. Weiterentwicklung findet aktuell keine statt. Die PG Basisentscheid hat sich mit dem System bisher nicht im Detail beschäftigt. Eventuell könnte der Abstimmungsteil aus der Software herausgenommen und mit dem BEO-System integriert werden. Freiwillige vor! 😉

Fakten

VVVote (anonyme Abstimmung):

  • Status: funktionsfähig
  • Technik: Javascript, HTML, PHP
  • entwickelt von: erst eigenständige Entwicklung durch @Dr_Bob100, später Integration mit PG Basisentscheid
  • Code und weitere Infos: https://github.com/vvvote/vvvote
  • aktuell zu tun (für einen möglichen BEO-Einsatz):
    • pseudonyme Abstimmung ergänzen oder Satzung anpassen

BEOVote (pseudonyme Abstimmung):

  • Status: teilweise implementiert; integriert in BEO-System; letzte Änderungen am Code liegen schon länger zurück
  • Technik: Java, HTML
  • entwickelt von: PG Basisentscheid
  • aktuell zu tun (für einen möglichen BEO-Einsatz):
    • allgemeine Weiterentwicklung

Votezilla (pseudonyme Abstimmung):

  • Status: funktionsfähig; aktuell keine Entwicklungsaktivität; Integration in BEO-System fehlt
  • Technik: PHP, HTML
  • entwickelt von: früher durch einen ehemaligen Mitarbeiter der PG Basisentscheid, spätere Weiterentwicklung durch Piratenfraktion NRW
  • aktuell zu tun (für einen möglichen BEO-Einsatz)
    • Abstimmungscode in separates Programm auslagern und Integration in BEO-System ergänzen

  1. bevorzugt wird aber der Weg der Einreichung über Discourse nach einer vorangegangenen Diskussion 

  2. zur Zulassung zur Abstimmung muss ein bestimmtes Quorum an Unterstützern erreicht werden