Endbenutzersoftwareentwicklung in Open Source-Projekten

Unter Endbenutzersoftwareentwicklung verstehen wir im Rahmen dieser Studienarbeit alle Erzeugnisse von Anwendern der Software, welche wiederrum von anderen Benutzern zur Verwendung der Software genutzt werden können.

Beispiele für Endbenutzererzeugnisse umfassen somit Dokumentation, Vorlagen (Templates), Makros, Konfigurationseinstellungen und -skripte, Änderungen des Aussehens des Programms (Skins, Iconsets,...), Tutorials, Howtos. Auch Quellcode selbst kann Endbenutzersoftwareentwicklung sein, aber üblicherweise sollte man nicht davon ausgehen, dass Endbenutzer über mehr als eingeschränkte Programmierkenntnisse verfügen.

Ziel dieser Studienarbeit ist es nun, eine Prozessverbesserung im Umgang mit den Erzeugnissen der Endbenutzersoftwareentwicklung in einem Projekt einzusetzen. Hierzu gibt es zwei Vorschläge:

  1. Die Erstellung von Vorlagen für die Verwendung in Programmen (also z.B. Open Office Impress Vorlagen) soll durch die Bereitstellung einer katalogartigen Sammlung vereinfacht werden.
  2. Das Erstellen von Benutzerdokumentation soll durch ein Wiki verbesser werden.

Eine dieser beiden Prozessverbesserungen soll an einem Projekt eingesetzt werden, bei dem die Hoffnung besteht, dass sich Endbenutzer für die Verwendung dieser Prozesse finden lassen.

Definitionen

Die folgenden Definitionen dienen als Grundlage für die Bearbeitung des Themas. Da dieses im Allgemeinen ein sehr weites Feld ist, wird nicht der Anspruch auf Vollständigkeit erhoben. Sie dienen lediglich als Rahmen für die Forschungsaktivitäten.

Endbenutzer
Der Endbenutzer ist die Zielperson für die eine Software entwickelt wird, nämlich typischerweise um ihn bei seiner Arbeit (allg.: Bedürfniserfüllung) zu unterstützen. Normalerweise besitzt die Person geringe Kenntnisse über das System / die Software. Diese Bezeichnung „Endbenutzer“ ist oft auch als Abgrenzung zu anderen Personengruppen (Programmierer, Supporter, Installateure, usw.) die an der Software beteiligt sind, zu verstehen.

Endbenutzerprogrammierung
Der Endbenutzer einer Software beteiligt sich an der Softwareentwicklung durch das Schreiben einer Menge von Instruktionen (Code) oder das Tätigen von Benutzereingaben die in Instruktionen umgesetzt werden. Diese werden von einer Maschine interpretiert, was sich dann in einem bestimmten (gewünschten) Verhalten der Software äußert.

Endbenutzerentwicklung
Endbenutzerentwicklung zielt ebenso wie Endbenutzerprogrammierung darauf ab (das Verhalten von) Software als Endbenutzer seinen Anforderungen und Wünschen anzupassen. Es ist aber nicht nur das „Erstellen von Instruktionen“, sondern beinhaltet außerdem das Schaffen von Design Artefakten (z.B. das Zusammenstellung von Komponenten).

Das Modell

Ziel dieser Studienarbeit ist es ein Abhängigkeitsmodell zwischen Opensource-Software und Endbenutzerentwicklung aufzustellen, welches dann mit Hilfe empirischer Untersuchungen untersucht werden soll. Um bedeutsame Zusammenhänge aus diesem Modell zu überprüfen, sollen ein paar Thesen aufgestellt werden, an denen dann konkret das Modell überprüft wird.

Thesen

1. HowTos und ähnliche “nichterklärenden Hilfen” (Forenbeiträge), helfen nicht beim Bewältigen der Lernhürde, denn sie tragen nicht zum Lernen / Verständnis bei, sondern sind gefährlich da sie den Endbenutzer nicht vorhandenes Können suggestieren.

2. Die große UserCommunity ist der entscheidende Faktor für die Motivation des Endbenutzers.

3. Die große UserCommunity trägt mehr zur Motivation des Endbenutzers als zur Verringerung der Lernhürde bei.

4. Die oftmals schlechte Dokumentation kommt oft einer unüberwindlichen Lernhürde gleich.

5. Der modulare Aufbau der Software, bedingt durch die verteilte Entwicklung ist ein Vorteil beim Schaffen veränderbarer Architekturen.

6. Bei OSS ist die Lernhürde zu hoch, wenn sie darin besteht die Programmiersprache und Systemarchitektur zu erlernen.

7. Besteht die Lernhürde im Erlernen einer komplexen und mächtigen Programmiersprache, wird diese von den wenigsten erklommen, statt dessen bildet sich eher ein “Zusammenschustern”, als ein Entwickeln heraus.

8. Dokumentation darf nicht durch “Community-Aktivität” verwechselt oder ersetzt werden, selbst Wikis sind diesbezüglich kritisch zu sehen.

9. OSS überwindet die Unausgeglichenheit (zugunsten der Mächtigkeit) von Mächtigkeit / Benutzerfreundlichkeit durch das herabsetzen der Lernhürde.

10. Die fehlende geordnete Managementstruktur in OSS wirkt sich positiv auf die Motivation des EUDs, kann aber die Lernhürde heraufsetzen.

11. Das breite Rollensystem von Entwicklern in OSS und die Vielzahl derer, erleichtert es OSS die Rolle des EUD zu integrieren.

Diese Thesen sind erstmal nur vorübergehende Vorschläge.

Kontakt

Diese Studienarbeit wurde 2007 Christopher Oezbek vorgeschlagen und würde von ihm und Lutz Prechelt betreut. Sie ist derzeit als eine Art Karteileiche zu betrachten, kann bei Interesse aber evtl. reaktiviert werden.

Kommentare