Fraunhofer-Gesellschaft

Publica

Hier finden Sie wissenschaftliche Publikationen aus den Fraunhofer-Instituten.

Improving the internal quality of software through reputation based gamification

Verbesserung interner Softwarequalität durch reputationsbasierte Verspielichung
 
: Prause, C.R.

:
Volltext (PDF; )

Aachen, 2013, X, 256 S.
Aachen, TH, Diss., 2013
URN: urn:nbn:de:hbz:82-opus-45611
Englisch
Dissertation, Elektronische Publikation
Fraunhofer FIT ()

Abstract
Developers are notorious for their dislike of writing internal documentation. It has few value to them because its benefits are too far away in the future and distributed on the whole team, while the efforts of documenting are burdened on the individual himself. The resulting phenomena have names like free riding or tragedy of the commons. Software is an accumulation of encoded knowledge and a collecting pond for complexity. Its development is more akin to research and evolution than to an agreed path with an established goal. Multiple developers are engaged in an intricate joint endeavor, building on discovery, invention and decision making, flanked by several stakeholders. A developer must constantly learn and relearn the software to be able to adapt it to ever-changing requirements. Instead of being soft and easy to adapt, software is difficult to modify. If knowledge is not preserved in source code, wiki articles, and other documentation, then software development becomes costly even up to the point of a total economic loss. This research presents CollabReview, which addresses the developers' motivation to invest in internal quality without strict regulation. It re-balances intrapersonal cost-benefit considerations in favor of internal quality using gamification. Personal reputation scores for developers are calculated from ownership-based responsibility and quality ratings for collaboratively written software process artifacts. The scores are tied to social games and rewards to make scores worthwhile to achieve. The implemented prototype of the CollabReview concept mines responsibility information from revision histories, and combines it with manual and automated assessments of artifact quality. The CollabReview concept and prototype were evaluated in several studies including an analytical concept evaluation, technical validations and field experiments. The latter deployed the prototype in knowledge management, agile, open source or distributed consortium projects. It successfully amplified contributions to knowledge management wikis, and improved the readability of source code. The results show that CollabReview leads to better internal documentation and quality of the whole software. At the same time, it leaves developers their freedom to neglect quality when necessary, does not burden them with unnecessary additional efforts, and hence has particular value in self-organizing project environments where code ownership is weak.

 

Entwickler sind berüchtigt für ihre Abneigung gegen das Schreiben von Dokumentation. Der persönliche Nutzen hiervon liegt zu weit in der Zukunft und wird mit anderen geteilt, während der Schreibaufwand auf dem Einzelnen lastet. Das Ergebnis sind Phänomene wie Trittbrettfahren oder die Tragik der Allmende. Software ist eine Ansammlung kodierten Wissens und ein Auffangbecken für Komplexität. Ihr Entstehungsprozess gleicht eher Forschung und Evolution als einem festen Weg mit klarem Ziel. Die gemeinsame Arbeit mehrerer Entwickler wird von unterschiedlichsten Interessenten begleitet, und besteht aus Entdeckung, Erfindung und Entscheidung. Um die Software an sich laufend ändernde Anforderungen anpassen zu können, muss ein Entwickler ihr Inneres ständig (wieder) erlernen. Anstatt leicht anpassbar zu sein, ist Software schwer zu ändern; ihre Entwicklung ist daher teuer. Wird das Wissen nicht in Quellcode, Wiki-Artikeln oder anderer Dokumentation wohl bewahrt, droht ein wirtschaftlicher Totalschaden. Diese Arbeit präsentiert CollabReview, das anstatt strenge Regeln vorzugeben, die Motivation der Entwickler anspricht, in interne Qualität zu investieren. Es beeinflusst intrapersonelle Kosten-Nutzen-Überlegungen zu Gunsten interner Qualität mittels Spielelementen. Dazu werden persönliche Reputationspunkte für Entwickler aus Qualitäts- und Zuständigkeitsinformationen von gemeinschaftlich entwickelten Software-Artefakten berechnet. Um die Punkte erstrebenswert zu machen, sind sie an soziale Spiele und Belohnungen gekoppelt. Der CollabReview Prototyp gewinnt seine Informationen aus Entwicklungshistorien, und kombiniert sie mit manuell und automatisch erzeugten Qualitätsreviews. Das Konzept und der Prototyp von CollabReview wurden in Expertenanalysen, technischen Validierungen und Feldversuchen evaluiert. Letztere brachten den Prototyp in agilen, quelloffenen, verteilten Konsortial- und Wissensverwaltungsprojekten zum Einsatz. Die Beiträge zur Wissensverwaltung konnten so erfolgreich gesteigert und die Lesbarkeit von Quellcode verbessert werden. Die Ergebnisse zeigen, dass CollabReview zu besserer interner Dokumentation und Qualität der Software führt. Gleichzeitig lässt es Entwicklern die Freiheit, Qualität wenn nötig zu vernachlässigen, belastet sie nicht mit unnötigem Mehraufwand, und hat folglich besonderen Wert in selbst-organisierenden Projekten mit schwacher Quellcode-Eigentümerschaft.

: http://publica.fraunhofer.de/dokumente/N-289224.html