PEP 8011 – Python Governance Model unter der Führung eines Trios von Pythonistas
- Autor:
- Mariatta <mariatta at python.org>, Barry Warsaw <barry at python.org>
- Status:
- Abgelehnt
- Typ:
- Informational
- Thema:
- Governance
- Erstellt:
- 24-Aug-2018
Inhaltsverzeichnis
- Zusammenfassung
- Ablehnung der PEP
- Offene Diskussionspunkte
- Rollen und Verantwortlichkeiten des Führungstrios
- Autorität des Trios
- Was NICHT zu den Aufgaben des Trios zählt
- Richtlinien für die Bildung des Trios
- Warum kein anderes Governance-Modell
- Warum nicht mehr als drei
- Rollen und Verantwortlichkeiten der Python Core Developers gegenüber dem Trio
- Amtszeitbegrenzung
- Nachfolgeplanung des Trios (offen zur Diskussion)
- Bildung von Arbeitsgruppen/Fachgebieten/Verantwortlichkeiten (früher BDFL-Delegierte)
- Bestätigung als Mitglied der PSF
- Begründung für die Wahl des Namens "Trio"
- Referenzen
- Urheberrecht
Zusammenfassung
Diese PEP schlägt ein Governance-Modell für die Core-Python-Entwicklungsgemeinschaft vor, das von einem Trio gleichberechtigter Anführer geleitet wird. Das Trio der Pythonistas (ToP, oder einfach Trio) ist für die endgültigen Entscheidungen für die Sprache zuständig. Es unterscheidet sich von PEP 8010 dadurch, dass es explizit keinen zentralen, einzelnen Führer vorschlägt, sondern stattdessen eine Gruppe von drei Personen als Führer.
Diese PEP schlägt auch die Bildung spezialisierter Arbeitsgruppen vor, um das Führungstrio bei Entscheidungen zu unterstützen.
Diese PEP nennt die Mitglieder des Trios *nicht*. Sollte dieses Modell übernommen werden, wird es in PEP 13 zusammen mit den Namen aller in dieser PEP beschriebenen Amtsträger kodifiziert.
Diese PEP beschreibt
- Die Rolle und Verantwortlichkeiten des Trios
- Richtlinien, wie Trio-Mitglieder gebildet werden sollten
- Begründung für die Dreiergruppe anstelle eines einzelnen Führers
- Rolle und Verantwortlichkeiten der Python Core Developers gegenüber dem Trio
- Nachhaltigkeitsaspekte
- Vielfalt und Inklusivitätsaspekte
Ablehnung der PEP
PEP 8011 wurde durch eine Abstimmung der Core Developer, die in PEP 8001 beschrieben ist, am Montag, dem 17. Dezember 2018, abgelehnt.
PEP 8016 und das von ihr beschriebene Governance-Modell wurden stattdessen gewählt.
Offene Diskussionspunkte
Verschiedene Anpassungen der Parameter dieser PEP sind während des Diskussionsprozesses zur Governance erlaubt, wie z. B. die genauen Verantwortlichkeiten des Trios, die Amtszeiten, Abstimmungsverfahren und die Auflösung des Trios. Diese werden bis zur Abstimmung über die PEP kodifiziert.
Es ist erlaubt und vielleicht sogar erwartet, dass diese Parameter im Laufe der Erfahrung mit diesem Modell angepasst werden, um einen reibungsloseren Governing-Prozess zu ermöglichen. Der Prozess zur Anpassung dieser Parameter wird im Allgemeinen derselbe Abstimmungsprozess sein wie in PEP 8001 beschrieben.
Rollen und Verantwortlichkeiten des Führungstrios
- Sei offen, rücksichtsvoll, respektvoll. Anders ausgedrückt, halte dich an den Verhaltenskodex der PSF.
- Gib ein Votum zu PEPs ab, entweder als Team oder einzeln, wenn die anderen Trio-Mitglieder zustimmen.
- Biete Vision und Führung für Python, die Programmiersprache und die Community.
- Verstehe deine eigenen Grenzen und suche bei Bedarf Rat.
- Biete Mentoring für die nächste Generation von Führungskräften.
- Sei ein Python Core Developer
- Sei ein stimmberechtigtes Mitglied der PSF (eines von Contributing / Manager / Fellow / Supporter). [2]
- Verstehe, dass Python nicht nur eine Sprache, sondern auch eine Community ist. Sie müssen sich der Probleme in Python bewusst sein, nicht nur der technischen Aspekte, sondern auch anderer Probleme in der Community.
- Erleichtere die Bildung spezialisierter Arbeitsgruppen innerhalb von Core Python. Siehe Abschnitt "Bildung spezialisierter Arbeitsgruppen" unten.
- Setze ein gutes Beispiel für Verhalten, Kultur und Tonfall für die Python-Community. So wie Python sich Inspiration bei anderen Communities holt und von ihnen lernt, werden andere Communities auf Python blicken und von uns lernen.
Was NICHT zu den Aufgaben des Trios zählt
Die folgenden Punkte werden nicht vom Trio erwartet, aber sie können diese tun, wenn sie möchten.
- Sie sind nicht immer diejenigen, die alle Ideen, Visionen, zu lösende Probleme und dergleichen hervorbringen. Das Trio wird offen für Vorschläge von Core Developern und der Community sein und diese annehmen.
- Tägliche Fehlerberichte erfordern kein Eingreifen des Trios. Jede/r Core Dev kann Entscheidungen treffen, wird sich aber an die entsprechenden fokussierten Arbeitsgruppen wenden und schließlich an das Trio, wenn es zu größeren Meinungsverschiedenheiten zwischen den Core Developern kommt.
- Leitet/entscheidet nicht über den Python Language Summit und dessen Logistik.
- Leitet/entscheidet nicht über Python Core Sprints und deren Logistik.
- Behandelt keine CoC-Fälle. Dies sind Aufgaben der PSF CoC-Arbeitsgruppe, aber sie werden sich äußern, wenn sie solche Fälle miterleben.
- Trifft keine Entscheidungen über andere Python-Implementierungen (Cython, IronPython usw.).
- Leitet/entscheidet nicht über Python-Konferenzen und deren Logistik.
- Kein Evangelist von Python. Es wird nicht erwartet, dass das Trio für Python predigt/wirbt. Sie können das tun, wenn sie wollen, aber es wird nicht erwartet.
- Kein Pädagoge für Python. Es wird nicht erwartet, dass das Trio Python unterrichtet/darüber schreibt. Sie können das tun, wenn sie wollen, aber es wird nicht erwartet.
- Es wird nicht erwartet, dass das Trio rund um die Uhr, 365 Tage im Jahr verfügbar ist. Sie können selbst entscheiden, wann sie für Python zur Verfügung stehen.
- Kein PEP-Redakteur.
Richtlinien für die Bildung des Trios
Der Erfolg dieses Governance-Modells hängt von den Mitgliedern des Trios und der Fähigkeit der Trio-Mitglieder ab, zusammenzuarbeiten und gut miteinander auszukommen.
Die drei Personen müssen eine ähnliche Vision für Python haben, und jede kann unterschiedliche Fähigkeiten haben, die sich gegenseitig ergänzen.
Mit einem solchen Team sollten Meinungsverschiedenheiten und Konflikte selten sein, können aber dennoch vorkommen. Wir müssen den von uns ausgewählten Personen vertrauen, dass sie in der Lage sind, diese untereinander zu lösen.
Wenn es um die Auswahl der Mitglieder des Trios geht, werden die Core Developer anstelle der Nominierung verschiedener Einzelpersonen und der Auswahl der Top Drei Trios nominieren und über Gruppen von Dreien abstimmen, von denen sie glauben, dass sie dieses geeinte Trio bilden können. Es gibt keine Beschränkung, dass eine Einzelperson nur in einer Liste nominiert werden kann.
Diese PEP wird niemanden in das Trio benennen oder nominieren.
Erst nach Annahme dieser PEP können aktive Core Developer (die wahlberechtigt sind) Nominierungen von Dreiergruppen einreichen.
Sobald diese PEP angenommen wurde und die Core Devs ihre Nominierungen eingereicht haben, kann die Abstimmung beginnen, und der in PEP 8001 beschriebene Abstimmungsmechanismus wird verwendet.
Gewünschte Qualitäten des Trios
- Sei ein Python Core Developer.
- Sei ein stimmberechtigtes PSF-Mitglied (eines von Contributing / Manager / Fellow / Supporter). [2]
- Sei ein angesehenes Mitglied der Community.
- Halte dich an den Verhaltenskodex der PSF (Sei offen, rücksichtsvoll und respektvoll). [1]
- Sei bereit, die genannten Rollen und Verantwortlichkeiten zu übernehmen.
- Fähig sein, seine Gedanken effektiv zu kommunizieren und zu artikulieren.
Die folgenden Punkte sind keine Anforderungen bei der Berücksichtigung von Personen für das Trio
- „Erfahrung als BDFL von etwas“ ist keine Voraussetzung.
- „Ein Genie sein“ ist keine Voraussetzung.
Vielfalt und Inklusivität
Das Core Python-Entwicklungsteam unterstützt uneingeschränkt die Diversitätserklärung der Python Software Foundation und begrüßt die Teilnahme und den Beitrag von Menschen aus verschiedenen Hintergründen. Bei der Nominierung von Personen für das Trio werden die Python Core Developer alle Anstrengungen unternehmen, um Mitglieder aus unterrepräsentierten Gruppen zu berücksichtigen.
Idealerweise sollten die Nominierungen die Vielfalt der Core Python-Beitragenden widerspiegeln und einschließen.
Nachhaltigkeit
Fehlende Unterstützung durch den Arbeitgeber oder fehlende Muße sollten keine Faktoren bei der Identifizierung von Personen für ein Trio sein. Wenn es Einzelpersonen gibt, die von den Core Devs als für die Mitgliedschaft im Trio geeignet erachtet werden, aber diese aufgrund von Zeitmangel, mangelnder finanzieller Unterstützung nicht ausüben können, dann sollten wir eine Diskussion mit der PSF oder anderen Parteien eröffnen, um die benötigte Unterstützung zu leisten.
Zusätzliche Richtlinien
Wenn Sie jemanden außer sich selbst nominieren, fragen Sie bitte zuerst privat, ob er/sie damit einverstanden ist, nominiert zu werden, und ob er/sie damit einverstanden ist, in dieser Gruppe von drei nominiert zu werden. So fühlen sich die Leute nicht gezwungen, eine Nominierung anzunehmen, nur weil sie öffentlich geschieht.
Warum kein anderes Governance-Modell
Die Core Python-Community ist seit über zwei Jahrzehnten mit dem einzelnen BDFL-Modell vertraut; es war ein Modell, das für Python „funktioniert“ hat. Ein plötzlicher Wechsel zu einem völlig anderen Modell könnte die Stabilität der Community stören. Die Community kann sich jedoch auch in Zukunft weiterentwickeln.
Wenn diese PEP gewählt wird, ist sie nicht als einziges Governance-Modell für Python in Zukunft gedacht.
Diese PEP schlug einen Übergang zu einer von einer Gruppe von Personen (wenn auch kleinen) geführten Community vor und führte gleichzeitig das Konzept zusätzlicher spezialisierter Arbeitsgruppen ein.
Warum nicht mehr als drei
Zu viele Köche verderben den Brei.
Das Ziel eines Führungsteams ist es, dass die Python Core Developer Konsens und Entscheidungen erzielen können. Je größer das Führungsteam ist, desto schwieriger wird es, Entscheidungen zu treffen.
Dies dient auch den Mitgliedern des Trios. Das Erlernen der Zusammenarbeit mit anderen Menschen in einem Team ist nichts, was organisch geschieht und viel Mühe erfordert. Es wird erwartet, dass die Mitglieder des Trios langfristig Teil des Teams sind. Sich mit zwei anderen Personen auseinandersetzen zu müssen, ist wahrscheinlich schon schwierig genug. Wir möchten, dass das Trio seine Aufgaben und Verantwortlichkeiten so effizient wie möglich erfüllen kann.
Je mehr Personen in der Gruppe, desto schwieriger ist es, Zeit für Treffen, Diskussionen und Entscheidungsfindung zu finden.
Rollen und Verantwortlichkeiten der Python Core Developers gegenüber dem Trio
- Sei offen, rücksichtsvoll und respektvoll. Mit anderen Worten, halte dich an den Verhaltenskodex der PSF
- Entscheidungen und Verlautbarungen einzelner Mitglieder des Trios sind als maßgeblich und vom Trio kommend zu betrachten.
- Sobald das Trio eine Entscheidung getroffen hat, werden die Core Devs sie unterstützen, auch wenn sie vorher (vor der Entscheidung des Trios) nicht unterstützt haben.
- Fortsetzung der täglichen Entscheidungsfindung im Bugtracker und ggf. Weiterleitung an das Trio bei größeren Meinungsverschiedenheiten
- Python Core Developers kümmern sich nicht um CoC-Fälle, das sind die Aufgaben der CoC-Arbeitsgruppe, aber sie werden sich äußern, wenn sie solche Fälle miterleben.
- Bewusstsein, Teil der größeren Python-Community zu sein, nicht nur des technischen Aspekts.
- Sei ein stimmberechtigtes PSF-Mitglied (eines von Contributing / Manager / Fellow / Supporter).
- Setze ein gutes Beispiel für Verhalten, Kultur und Tonfall für die Python-Community.
Amtszeitbegrenzung
Es wird nicht erwartet, dass das Trio auf Lebenszeit dient, aber eine längere Amtszeit wird gewünscht. Der Zweck einer längeren Dienstzeit ist es, unnötige Wechsel bei der „Wahl“ zu vermeiden und Stabilität und Konsistenz in der Sprache und der Community zu gewährleisten.
Derzeit halten sich die Python Release Manager für 5 Jahre (einen Release-Zyklus) in ihrer Position, und das scheint bisher zu funktionieren. Daher schlägt diese PEP vor, dass das Trio seine Position für 5 Jahre innehat.
Nachfolgeplanung des Trios (offen zur Diskussion)
Das Trio sollte die Core Devs mindestens ein Jahr im Voraus über seine Absicht informieren, sich zurückzuziehen/in Rente zu gehen/aus seinen Rollen auszuscheiden, um aktiv die nächste Generation von Nachfolgern zu betreuen und zu schulen und um ein Machtvakuum zu vermeiden.
Das Trio muss nicht unbedingt die nächsten Führer auswählen.
Diese PEP erzwingt nicht, dass für die nächste Generation dasselbe Governance-Modell gewählt wird. Python als Sprache und Community kann sich weiterentwickeln. Indem das Trio ein Jahr im Voraus seinen Rückzug ankündigt, gibt es der Core Python-Community die Möglichkeit, über den Erfolg/Misserfolg dieses Governance-Modells nachzudenken und bei Bedarf ein anderes Governance-Modell zu wählen.
Das nächste Governance-Modell und die nächsten Führer sollten jedoch innerhalb eines Jahres nach Ankündigung des Rückzugs durch das Trio gewählt werden.
Wenn beschlossen wird, dieses Governance-Modell fortzusetzen, wird die nächste Generation des Trios ähnlich wie das erste Trio nominiert und gewählt.
Das Trio sollte mindestens X Monate als Berater/Mentor für die nächste Generation der gewählten Führungskräfte fungieren.
Da zukünftige Trios aus Python Core Developern ausgewählt werden, ist es sinnvoll, dass zukünftige Python Core Developer einige, aber nicht unbedingt alle, Qualitäten des Trios aufweisen, wie in dieser PEP dargelegt.
Daher können die Richtlinien für die Auswahl von Trio-Mitgliedern auch als Richtlinien für die Identifizierung zukünftiger Python Core Developer verwendet werden.
Szenario, wenn ein Mitglied des Trios ausscheidet
Effektive Governance-Modelle bieten Ausstiegsoptionen oder temporäre Pausen für Führungskräfte, die sich zurückziehen oder ihre Führungsdienste unterbrechen müssen.
Was passiert, wenn ein Mitglied des gewählten Trios aus unvorhergesehenen Gründen ausscheiden muss?
Es gibt mehrere mögliche Optionen
- Das verbleibende Duo kann ein weiteres Mitglied auswählen, um die Rolle zu füllen
- Das Trio kann sich auflösen, Core Developer können andere Trios nominieren
- Core Developer können ein anderes Governance-Modell wählen
Da das Trio als Liste gewählt wurde, bricht der Verlust eines Mitglieds diese gewählte Einheit. Daher sollte eine Neuwahl stattfinden.
Bildung von Arbeitsgruppen/Fachgebieten/Verantwortlichkeiten (früher BDFL-Delegierte)
(Offen zur Diskussion).
Bestimmte Bereiche und Themen von Core Python und der Python-Community erfordern Führungskräfte mit spezifischen Fachkenntnissen. Es wird empfohlen, mehrere Arbeitsgruppen mit mehr Autorität in diesem spezifischen Bereich einzurichten, um das Trio bei Entscheidungen zu unterstützen.
Die Rolle dieser „spezialisierten Arbeitsgruppen/Räte“ ist es, endgültige Entscheidungen bei kontroversen Diskussionen in ihren jeweiligen Bereichen zu treffen.
Diese Arbeitsgruppen sollten klein sein (3-5 Personen), aus ähnlichen Gründen wie das Führungstrio eine kleine Gruppe ist.
Diese Arbeitsgruppen sollten sowohl Python Core Developer als auch externe Experten umfassen. Dies soll sicherstellen, dass Entscheidungen nicht nur Python Core Developer bevorzugen.
Python Core Developers werden Entscheidungen an diese Arbeitsgruppen in ihren jeweiligen Themen delegieren. Diese Gruppen werden jedoch dem Trio antworten/sich an das Trio wenden.
Diese Arbeitsgruppen können ausgewählt und ihre Mitglieder gewählt werden, nachdem diese PEP angenommen wurde.
Wenn diese PEP angenommen wird, können die Arbeitsgruppen innerhalb von ein bis zwei Jahren nach Annahme der PEP festgelegt werden.
Bei der Auswahl von Mitgliedern für diese Sonderarbeitsgruppen werden die Trio-Mitglieder alle Anstrengungen unternehmen, um Mitglieder aus unterrepräsentierten Gruppen zu berücksichtigen. Idealerweise sollten die Mitglieder der Arbeitsgruppe die Vielfalt der breiteren Python-Community widerspiegeln und einschließen.
Mitglieder dieser Arbeitsgruppe müssen keine Python Core Developer sein, aber sie müssen mindestens ein Basis-Mitglied der PSF sein [2].
Diese Arbeitsgruppen sind aktiv, solange das Trio aktiv ist.
Mehrere vorgeschlagene Arbeitsgruppen zum Start
- Dokumentation von CPython
- Sicherheit von CPython
- Leistung von CPython
Die Arbeitsgruppe kann als eine ähnliche Rolle wie die früher bekannte Rolle des „BDFL-Delegierten“ oder der PEP-Zaren angesehen werden. Der Unterschied besteht darin, dass anstelle der Ernennung einer einzelnen Person zum Entscheidungsträger ein kleines Team von Entscheidungsträgern vorhanden ist.
Ein weiterer Unterschied zur früheren Rolle des „BDFL-Delegierten“ ist, dass die Gruppe aktiv sein kann, solange das Trio aktiv ist, im Gegensatz zu nur dann, wenn es eine PEP gibt, die ihre Expertise erfordert.
Wenn sich das Trio auflöst, werden auch diese Arbeitsgruppen aufgelöst.
Warum diese Arbeitsgruppen notwendig sind
Dies ist ein Versuch, die „große Rolle“ des früheren Python BDFL zu „refaktorisieren“.
Bestätigung als Mitglied der PSF
Diese PEP schlägt vor, dass sich Core Developer und Trio-Mitglieder als Mitglied der PSF selbst zertifizieren.
Teil der PSF zu sein bedeutet, Teil der Python-Community zu sein und die Mission und Diversitätserklärung der PSF zu unterstützen.
Durch die Mitgliedschaft in der PSF erklären sich die Python Core Developer mit Python einverstanden und stimmen dem Community-Verhaltenskodex zu.
Weitere Details zur PSF-Mitgliedschaft finden Sie unter: PSF Membership FAQ [2].
Begründung für die Wahl des Namens "Trio"
Nicht zu verwechseln mit Python trio (einer asynchronen Bibliothek).
Das „Trio“ ist kurz und leicht auszusprechen, im Gegensatz zu anderen Wörtern, die lang sind und negative Assoziationen haben können, wie z. B. Triade, Trinität, Triumvirat, Dreiergespann usw.
Referenzen
Urheberrecht
Dieses Dokument wurde gemeinfrei erklärt.
Quelle: https://github.com/python/peps/blob/main/peps/pep-8011.rst
Zuletzt geändert: 2025-02-01 08:55:40 GMT