Finanziell geförderte Inkscape-Entwicklung

1. Beschaffung von Finanzmitteln

Jeder kann eine offizielle Spendenkampagne für die Inkscape-Entwicklung ins Leben rufen, sofern er sich an dem unten beschriebenen Modell orientiert. Wir überlassen die Strukturierung und Durchführung Eurer Spendenaktion Eurer Fantasie und stellen Euch eine Liste vordefinierter Entwicklungsziele zur Verfügung, aus der Ihr wählen könnt, solange einige Erfordernisse eingehalten werden.

Die Person, die eine Spendenaktion organisiert und leitet, nennen wir "Fundraising Coordinator" (Spendenkampagnen-Koordinator). Es kann mehrere Koordinatoren geben, wenn es mehrere Spendenaktionen gibt, jedoch nur einen Koordinator pro Spendenaktion. Dieser hat drei Pflichten:

  1. Leiten der Spendenaktion
  2. Eingenommene Gelder den Projekten zuordnen
  3. (Optional) Bei der Abnahme abgeschlossener Projekte mitwirken

Die erste der drei Pflichten kann der Fundraising Coordinator nach eigenem Ermessen gestalten.

Die zweite Verpflichtung sollte klar sein. Wenn die Spendenaktion abgeschlossen ist, müssen alle Gelder einem oder mehreren Projekten der offiziellen Aufgabenliste zugeordnet werden. Es wird nicht garantiert, dass die betreffenden Aufgaben angegangen werden, wenn kein ausreichendes Interesse der Entwickler besteht, jedoch können zukünftige Spendenaktionen den mit der Aufgabe verbundenen Betrag weiter erhöhen, um Interesse zu wecken.

Wir nehmen an, dass einige Kampagnen auf ganz bestimmte Projekte abzielen wollen und dies auch im Voraus ankündigen möchten, um die Spendenbereitschaft zu erhöhen. Das könnt Ihr so machen, aber denkt dabei daran, dass sich Aufgaben verändern können (oder vielleicht sogar fertiggestellt werden), während die Spendenaktion gerade läuft. Anstelle also ganz bestimmte Aufgaben zu nennen, ist es vielleicht besser, die Art der Aufgaben, die mit dieser Kampagne gefördert werden sollen, zu beschreiben und die abschließende(n) Entscheidung(en) zu treffen, wenn die Kampagne abgeschlossen ist.

Für laufende Spendenaktionen kann der verantwortliche Koordinator die beabsichtigte Verteilung der Gelder allgemein formulieren (z.B. "gleichmäßig auf die vier am Ende der Kampagne ältesten Aufgaben auf der Liste verteilen", oder "10% an jede der zehn Aufgaben mit der höchsten Spendensumme aus vergangenen Kampagnen", oder auch "gleichmäßig auf alle Dokumentations-Aufgaben verteilen, die bei Beginn der Spendenaktion registriert sind". Der Koordinator bleibt während und nach der Spendenaktion für alle Verwaltungsaufgaben verantwortlich. Wenn er aus irgendeinem Grund zurücktreten muss, kann er einen Ersatz benennen, der die verbleibenen Pflichten übernehmen wird. Wenn er einfach verschwindet, ohne einen Ersatz zu benennen, oder wenn es irgendwelche anderen Unregelmäßigkeiten oder Probleme gibt, sollte dieses vor den Inkscape-Vorstand gebracht werden, um eine Lösung zu finden.

Die dritte Verpflichtung - die Abnahme der fertiggestellten Aufgabe - wird weiter unten genauer beschrieben. Der Koordinator *darf* dies nicht tun, wenn er persönlich den größten Teil der Spenden beigetragen hat, da wir dann mit den Regelungen der Steuerbehörde (IRS) in Konflikt kämen.

2. Neue Aufgaben vorschlagen

Wir führen eine Liste mit vorgeschlagenen (nicht geförderten) Projekten. Es können alle möglichen Arten von Aufgaben vorgeschlagen werden, einschließlich Entwicklung neuer Funktionen, Fehlersichtung, Dokumentation, Verwaltung usw., aber der Vorschlag muss eine ausführliche Beschreibung (>100 Wörter) der zu erledigenden Arbeit enthalten. Jeder darf diese Aufgaben als normale (ungeförderte) Entwicklungsaufgaben, Google Summer of Code-Projekt usw. übernehmen. (Dies ist so geregelt, damit vorgeschlagene Aufgaben, die Spaß machen oder leicht zu erledigen sind, von Freiwilligen erledigt werden, und damit das Geld sich auf die schwierigeren, unbeliebten Aufgaben konzentriert und um Missbrauch zu erschweren.)

Sobald eine vorgeschlagene Aufgabe ein bestimmtes Alter erreicht hat, darf sie gefördert werden. Diese Projekte nennen wir "Jobs", wenn sie die folgenden Bedingungen erfüllen:

  1. Es steht seit >= 6 Monaten auf der Liste der vorgeschlagenen Aufgaben
  2. Das Entwicklungsziel wurde genau definiert
  3. Kriterien für die Annahme wurden festgelegt (siehe Anhang)
  4. Es wurde eine Obergrenze für die Zeit, die die Erledigung des Jobs dauern darf, abgeschätzt
  5. Es wurde von einem anderen Entwickler, als dem, der ihn eingereicht hat, bestätigt, dass die Veränderung, die sich hierdurch ergibt, es wert ist, in die Codebasis von Inkscape aufgenommen zu werden

Sobald ein Vorschlag diese fünf Bedingungen erfüllt, wird er als "Approved Job" (Akzeptierter Job) betrachtet.

3. Liste mit förderbaren Jobs

Das Geld dieser Spendenkampagnen geht an das Konto der Inkscape-Stiftung, das von der Software Freedom Conservancy verwaltet wird, die einen kleinen Prozentsatz von jeder Spende erhält. Die Conservancy ist in den USA als gemeinnützing anerkannt (US 501(c)(3)) und alle Spenden sind in den USA von der Steuer absetzbar.

Wir führen eine Liste, auf der die Gelder den Jobs zugeordnet sind, so dass wir einen Überblick behalten, welches Geld zu welchem Job gehört und die richtige Summe bezahlt wird, wenn der Job erledigt wurde. Diese Liste wird im Internet für Entwickler zugänglich gemacht, damit sie sie auf der Suche nach einem Job durchforsten können.

Nur Personen, die in der AUTHORS-Datei von Inkscape aufgeführt werden, dürfen sich um einen Job bewerben. Der Bewerber muss eine Bewerbung für den Job einreichen, in der seine Qualifikationen für diese Aufgabe aufgeführt werden und in der auch beschrieben wird, wie der Bewerber die Aufgabe umsetzen möchte.

Der Inkscape-Vorstand wird eines seiner Mitglieder zur Durchsicht und Prüfung der Bewerbungen abstellen, um sicherzustellen, dass für jeden Job der geeignetste Kanditat ausgewählt wird. Für größere, längere oder kompliziertere Jobs kann die Prüfung einige Zeit dauern, aber für normalgroße Jobs beabsichtigen wir, innerhalb weniger Tage die Entscheidung zu fällen. Der Inkscape-Vorstand kann einige Jobs (z.B. kleinere) als "pre-approved" (im Voraus bestätigt) kennzeichnen. Sobald ein Bewerber eine Bewerbung einreicht, kann er sofort und ohne vorherige Überprüfung mit dem Job beginnen. Vorstandsmitglieder sind aufgrund von Interessenskonflikten von dieser Regelung ausgenommen. Sie dürfen sich natürlich für Jobs bewerben, müssen aber immer überprüft werden. Niemand darf mehr als einen der als "pre-approved" gekennzeichneten Jobs gleichzeitig annehmen, und der Vorstand behält sich das Recht vor, eine Bewerbung zu prüfen und abzulehnen, wenn es Probleme gibt.

Wenn ein Bewerber einen Job bekommt, fängt die Zeit an zu laufen. Der Bewerber muss mindestens einen Fortschrittsbericht pro Monat veröffentlichen (z.B. in einem Blog oder auch im Inkscape-Wiki). Solange die Zeitobergrenze noch nicht erreicht ist und die monatlichen Berichte veröffentlicht werden, kann sich niemand anderes auf diesen Job bewerben. Wenn zwei Monate ohne Bericht vergehen oder wenn 6 Monate abgelaufen sind, und der Job nicht abgeschlossen ist, bekommt der Bewerber kein Geld und darf denselben Job in den folgenden 6 Monaten nicht nochmals annehmen. Der Job wird als abgeschlossen betrachtet, wenn die Entwicklungsziele nach den beschriebenen Kriterien erreicht worden sind.

4. Abschlusskriterien

Der "Reviewer" (Prüfer) trifft die Entscheidung, ob der Job angemessen fertiggestellt worden ist, indem er die ursprünglich festgelegten Kriterien prüft.

Üblicherweise ist der Koordinator der Spendenaktion auch der Prüfer; wenn die Aufgabe aus mehreren Quellen finanziert worden ist, ist es derjenige, der den größten Geldbetrag beigetragen hat (oder dessen ausgewählter Vertreter). Diese Person muss die Rolle des Prüfers innerhalb einer Woche per Email ausdrücklich annehmen.  Sie darf sich auch dazu entscheiden, die Rolle des Prüfers abzulehnen. Wenn sie nicht antwortet oder die Rolle ablehnt, so geht diese auf den nächsten Koordinator über. Wenn niemand von den Koordinatoren die Rolle annimmt oder auf jemanden überträgt, wird der Inkscape-Vorstand einen Prüfer bestimmen.

Unabhängig davon, auf welche Art der Prüfer bestimmt wurde, so muss es sich dabei auf jeden Fall um eine andere Person als denjenigen handeln, der ursprünglich die Aufgabe vorgeschlagen hat und weder der Prüfer, noch der Arbeitgeber des Prüfers, dürfen mehr als 50% der Gesamtsumme für die Aufgabe beigesteuert haben. Wir möchten vermeiden, dass es zu der Situation kommt, dass eine Person oder ihr Arbeitgeber ein wirtschaftliches Interesse daran zeigt, dass ein Job abgeschlossen wird und sich zu sehr in die Erledigung der Arbeit einmischt.

5. Beendigung und Veränderung

Derjenige, der ursprünglich die Aufgabe bzw. den Job vorgeschlagen hat, kann diese(n) jederzeit zurückziehen oder abändern, solange noch niemand begonnen hat, daran zu arbeiten. Wenn die Aufgabe zurückgezogen wird, so gehen alle zugeordneten Gelder in den allgemeinen Inkscape-Etat über.

Nicht vergebene Jobs laufen 24 Monate, nachdem sie erstmalig vorgeschlagen worden sind, ab. Dieses Vorgehen soll dafür sorgen, dass sich keine toten Aufgaben ansammeln und dass Entwickler dazu ermuntert werden, Aufgaben mit zugeordneten Mitteln anzunehmen, bevor sie verfallen. Außerdem soll es davon abhalten, Aufgaben vorzuschlagen, die wahrscheinlich innerhalb von 24 Monaten keine Aufmerksamkeit erhalten. Alle Mittel, die nicht angenommenen Jobs zugeordnet sind, werden in den allgemeinen Inkscape-Etat überführt.

Der Vorstand kann nach eigenem Ermessen durch Mehrheitsbeschluss das Ablaufdatum von Jobs, die demnächst ablaufen und denen Gelder zugeordnet worden sind, um 12 Monate hinausschieben.

6. Ausnahmen von diesem Vorgehen

In der Vergangenheit erforderte jegliche Entwicklungsarbeit, die vom Inkscape-Projekt finanziell gefördert wurde, die Billigung durch den Inkscape-Vorstand. Dieses neue Förderungsmodell soll eine Struktur für die finanzielle Förderung von Entwicklungstätigkeiten zur Verfügung stellen, die kein Eingreifen des Vorstandes erfordert. Dennoch behält sich der Vorstand vor, Ausnahmen für alles außerhalb dieses Modells machen zu können, dieses wird dann von Fall zu Fall per Mehrheitsbeschluss entschieden.

Insbesondere kann der Vorstand durch Wahl bestimmte Aufgaben als sofort förderungswürdig einstufen, ohne dass die übliche 6-Monats-Frist abgewartet werden muss. Er kann nach Mehrheitsbeschluss auch jederzeit jede Aufgabe und jeden Job zurückziehen, selbst vergebene, bereits angefangene Jobs (dieses allerdings nur in extremen Ausnahmefällen).

Der Vorstand kann dieses Modell auch durch einen normalen Mehrheitsbeschluss verändern.

7. Konfliktlösung

Wenn Probleme oder Unstimmigkeiten auftreten, nachdem eine Aufgabe einem Entwickler übertragen worden ist, so kann von jedem Beteiligten (dem, der die Aufgabe vorgeschlagen hat, dem Entwickler, der Spendenkampagne, dem Prüfer oder einem Mitglied des Inkscape-Vorstandes) ein Treffen einberufen werden. Damit der Ausschuss beschlussfähig ist, müssen mindestens der Entwickler, entweder der, der das Projekt vorgeschlagen hat oder der Prüfer, mindestens ein Spendenaktions-Koordinator, der an der Beschaffung der Mittel für das Projekt beteiligt gewesen ist,  ein Vorstandsmitglied und ein weiterer Entwickler (dies kann jeder aus der Inkscape-AUTHORS-Datei sein, der vom Entwickler ausgewählt wurde) anwesend sein. Jede einstimmig getroffene Entscheidung, die bei diesem Treffen gefällt wird, ist bindend für alle Parteien.

Jeder Konflikt, der in einem Treffen nicht gelöst werden kann, kann danach vor den Inkscape-Vorstand gebracht werden, der einen endgültigen Schiedsspruch abgeben wird.

Interessenskonflikte, einschließlich Konflikte mit dem Vorstand, werden von der Interessenskonflikt-Regelung der Software Freedom Conservancy geregelt.

Anhang A: Beispielkriterien für die Abgabe und Annahme

# Dies ist eine beispielhafte Zusammenstellung von Abgabe- und Annahmekriterien;
# jede Aufgabe kann diese Kriterien verwenden, verändern oder ersetzen, 
# wie es angemessen erscheint.
  1. Es werden Tests für alle neu hinzugefügten Funktionen zur Verfügung gestellt.
  2. Es werden Patches für die Dokumentation hinzugefügt, die alle neu hinzugefügten Funktionen beschreiben.
  3. Es sind Updates für die Veröffentlichungshinweise, Neuigkeiten, Fehlerberichte, usw. enthalten.
  4. Alle diese Patches sind im offiziellen upstream-Repositorium aufgenommen worden, entweder im Hauptzweig oder in einem offiziell dafür gedachten Zweig, je nach upstream-Regeln.
  5. Der neue Code lässt sich auf allen großen Betriebssystemen, die von Inkscape unterstützt werden, kompilieren und funktioniert dort auch.
  6. Der Code besteht die automatischen Style-/Lint-Prüfungen des Projektes.
  7. Alle Strings, die ein Nutzer zu sehen bekommt, sind übersetzbar nach den Regeln des Projektes.
  8. Unit- und Regressions-Test-Suiten zeigen keine neuen Fehler.
  9. Wenn das Projekt abgeschlossen ist und alle oben genannten Kriterien erfüllt werden, werden 70% der Fördersumme ausgezahlt. 30% werden zurückgehalten, damit möglicherweise erst später in Erscheinung tretende Fehler behoben werden: Einen Monat nach Fertigstellung kann der Prüfer eine Liste der gefundenen Fehler zwecks Behebung zusammenstellung. Wenn alle innerhalb eines Monats behoben wurden, werden die verbleibenden 30% an den Entwickler ausgezahlt. Wenn es keine Fehler gibt oder keine bis 6 Wochen nach der Fertigstellung genannt werden, wird dem Entwickler der Rest direkt ausgezahlt.