Die Community rund um das Programmieren von quelloffener Software hat meist ein Motivationsproblem, wenn es darum geht, andere verwendete Projekte mit eigenem Code zu unterstützen. Diese Diplomarbeit realisiert eine Vergütungsplattform, die Softwareentwickler über das Auszahlen einer Kryptowährung entlohnt, die aktiv bei einer Problemstellung mithelfen oder Code kontribuieren. Dabei wurde die Software als Web-Applikation realisiert, über die die Vergütungen gemanagt werden können.
Die Idee für die Arbeit ist aus Eigenmotivation entstanden, da ich oftmals in der Praxis mit dieser Problematik konfrontiert wurde. Die realisierte Applikation entstand nicht durch einen Kundenauftrag, sondern wurde ausserhalb meiner beruflichen Tätigkeit entwickelt.
Die Arbeit zählt zuerst die Ziele auf, die aus der Problemstellung abgeleitet werden. Danach folgt eine Analyse der Systemfunktionalitäten, indem die Funktionen bzw. Use Cases der Applikation definiert werden. Folglich wird auf makroebene beschrieben, aus was für Komponenten sich das Front- bzw. Backend der Applikation zusammensetzt und wie die systemexternen Services eingebunden werden. Später wird jede einzelne Applikations-Komponente genauer definiert, erklärt wie sie aufgebaut ist und welche Technologie weshalb für die Implementation verwendet wurde.
Die Diplomarbeit wurde mit dem Schwerpunkt auf die verwendete Kryptowährung geschrieben, da das Thema aktuell und gesellschaftlich von grossem Interesse ist.
Auf Plattformen wie GitHub ist es Softwareentwickler möglich, ihre Softwareprojekte mit der Open-Source Community zu teilen und Kollaborationen einzugehen, um zusammen Softwareprojekte zu entwickeln. Sogenannte Repositories bilden hierbei das Softwareprojekt auf der Website GitHub ab. GitHub stellt für solche Repositories Management Tools zur Verfügung, so zum Beispiel ein Ticket-System, sognannte Issues, die für Bug-Reporting, Planung, Feature Anfragen und andere Funktionalitäten verwendet werden. Plant ein Team für ein Softwareprojekt die nächsten zu programmierenden Features, werden diese meistens als Issues definiert, damit das gesamte Team einen Überblick erhält und zeitgleich auch eine Diskussionsplattform gebildet wird. Genauso werden auch Programmfehler (Bugs) von den Nutzern der Applikation in Issues rapportiert.
Leider ist es oftmals der Fall, dass bei quelloffenen Softwareprojekten ein einzelner Entwickler oder ein kleines Team eine Applikation programmiert, die von einer Vielzahl von Nutzern verwendet wird. Hierbei kann eine Situation entstehen, bei der die Nutzer sich anspruchsberechtigt fühlen, Bugs zu rapportieren oder Features anzufragen, die aus ihrer Sicht zeitnah gelöst oder implementiert werden müssen, obwohl die Applikation frei (gratis) in der Verwendung ist oder das Projektteam nur in ihrer Freizeit daran arbeitet. Ein Vorteil eines quelloffenes Softwareprojektes ist aber gerade, dass Nutzer bzw. andere Softwareentwickler in der Lage sind, dem Projekt direkt zu helfen, indem sie selbst Code beisteuern. Oftmals bleibt dies jedoch aus, da der Aufwand mit keiner Gratifikation verbunden ist.
Zusätzlich kann es bei solchen Softwareprojekten dazukommen, dass gewisse Bugs oder Features in das Backlog verschwinden und nie wieder aufgefasst werden. Dies passiert, da aus der Sicht des Projektteams der Aufwand zu gross ist oder von der Priorisierung her nicht relevant ist, obwohl möglicherweise eine Vielzahl von Nutzern gerne das Issue gelöst haben wollen.
Diese Diplomarbeit umfasst eine Applikation, die den Anreiz für das Lösen von Issues steigern soll, indem Issues mit Vergütungen bereichert werden. Der Anreiz soll für das eigentliche Projektteam sowie auch für externe Softwareentwickler entstehen, damit die Entwicklung und die Lösungsbereitschaft gesteigert wird und um mehr externe Softwareentwickler anzuziehen, die bereit wären, Code beizusteuern.
Da die Vergütung möglichst zensur- und gebührenfrei sein soll, wird diese über eine Kryptowährung abgewickelt. Die Kryptowährung IOTA erfüllt diese Kriterien und wurde deshalb für diese Diplomarbeit/Applikation als Vergütungsmittel ausgewählt.