Authors:
(1) Oscar Pedreira, Universidade da Coruna, Centro de Investigacion CITIC, Laboratorio de Bases de Datos, Facultade de Informatica;
(2) Felix García, Universidad de Castilla-La Mancha, Grupo Alarcos, Escuela Superior de Informatica, Paseo de la Universidad;
(3) Mario Piattini, Universidad de Castilla-La Mancha, Grupo Alarcos, Escuela Superior de Informatica, Paseo de la Universidad;
(4) Alejandro Cortinas, Universidade da Coruna, Centro de Investigacion CITIC, Laboratorio de Bases de Datos, Facultade de Informatica;
(5) Ana Cerdeira-Pena, Universidade da Coruna, Centro de Investigacion CITIC, Laboratorio de Bases de Datos, Facultade de Informatica.
3 A Software Architecture for the Gamification of SE Environments and 3.1 Software architecture
4 Gamification Engine for SE Environments
4.1 System architecture and design
4.4 Support of game mechanics and elements and 4.5 Player’s site
5.3 Subjects and analysis units and 5.4 Field procedure and data collection
5.6 Analysis of results from the case study
5.7 Validity threats and limitations of the case study
Conclusion and Future Work, Acknowledgment, and References
The field of gamification is a vast research area. One of the most significant lines of research in gamification has been the evidence about its usefulness, which was initially evaluated by Hamari et al.[9] by means of a literature review. This study concluded that “gamification does work, but some caveats exist”, as most papers report positive results from gamification (with some empirical evidence), but some underlying confounding factors were also present. Gamification in web applications was analyzed in the literature review of Xu[10]. This concluded that gamification was based on superficial game mechanics(point, level, leaderboard, and badges) and that more advanced aspects should be considered, such as social interaction and mobility, by supporting the ubiquitousness of mobile devices, as well as analytics, which must be enhanced.
Much research work has considered the application of gamification in SE, the goal being to improve product quality and project results by increasing people’s motivation and engagement[8]. Many software process areas have been considered in previous research work.
For example, Ref. [11] presented a systematic mapping on gamification applied to requirements engineering, where they identified research studies on applying gamification to elicitation, negotiation, and prioritization of software requirements. In Ref. [12], Fernandes et al. proposed a gamified tool, iThink, for requirements management. Reference [13] presented a systematic literature review on the gamification applied to software project management processes. One of their conclusions is that most research works on this topic applied a basic point system reward system, mainly in areas related to integration, resources, and scoping. A good number of gamified tools exist for gamified software project management, such as RedCritter (http://www.redcritter.com), Jira Hero (Atlassian, https://marketplace.atlassian.com/plugins/ com.madgnome.jira.plugins.jirachievements), or Scrum Knowsy (http://www.scrumknowsy.com/), all of these with the underlying idea of rewarding users as the project progresses. Several projects, such as Master Branch (https://masterbranch.com/) and CoderWall (https://coderwall.com/), also considered software development in some way, although they are not for a particular software development organization, but rather for communities of developers. Testing has also been considered with proposals, such as HALO[14, 15]. Reference [16] published a systematic mapping on gamification applied to software testing, concluding “the increasing interest for gamification has the potential to lead to positive outcomes”. Reference [17] proposed a game called “Code Defenders”, where some developers play the role of attackers and introduce errors in the system under testing, while other developers play the role of defenders and have to write test cases that detect those mutant versions of the system. Reference [18] presented an approach for applying gamification to software process improvement, with a focus on small and medium development companies. Reference [19] studied how gamification rules, such as establishing a time limit for development tasks and developers’ personal preferences, can affect coding results, such as the working time. Reference [20] proposed a framework for the gamification of enterprise software systems, that is, instead of focusing on the engineering processes that create the product, they focus on the gamifying the system to improve aspects such as user training, acceptance, and usage. Reference [21] addressed an important aspect of gamification, the trade-off between gamification and the participants’ privacy.
A more general systematic mapping on gamification in software engineering[8], covering all works addressing the application of gamification to software engineering in any of its areas, found that the adoption of gamification in SE is going more slowly than in other domains, such as marketing, education, health, or banking. This systematic mapping identified two main gaps in the research on gamification in software engineering. One of them is that there is an evident lack of methodological support for the application of gamification elements in software engineering organizations, an issue which was addressed in our previous work[8]. Another important problem in the adoption of gamification in software engineering organizations is the lack of generic architectures and tools for this purpose. Most previous research on gamification in SE has worked with no software support at all, or with custom-developed gamified tools. We believe that this is a very significant impediment. The adoption of software development environments and tools in a real SE company is no small undertaking, and it is by no means cheap. It is not very probable that one of those tools would be changed for another one just because the latter is gamified, since it is highly unlikely that the new tool would provide the same functionality level and set of features as one of the existing, widely-used tools.
The software architecture for gamification proposed in this paper aims to overcome the second set of weaknesses identified in the systematic mapping, by supporting the gamification of an existing SE environment, without replacing any of its current work tools, and centralizing all the gamification logic and additional functionalities, which are described in the next section.
This paper is available on arxiv under CC BY 4.0 DEED license.