Your resource for web content, online publishing
and the distribution of digital products.
S M T W T F S
 
 
 
1
 
2
 
3
 
4
 
5
 
6
 
7
 
8
 
9
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
30
 
31
 
 

What Does a Gamification Engine Do for Software Development Teams?

DATE POSTED:January 26, 2025

:::info 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.

:::

Table of Links

Abstract and 1 Introduction

2 Related Work

3 A Software Architecture for the Gamification of SE Environments and 3.1 Software architecture

3.2 Gamification model

4 Gamification Engine for SE Environments

4.1 System architecture and design

4.2 Integration

4.3 Other functionalities

4.4 Support of game mechanics and elements and 4.5 Player’s site

4.6 Advanced functionalities

5 Case Study: Application of the Gamification Engine in a Real Company and 5.1 Description of the organization and its tool suite

5.2 Design

5.3 Subjects and analysis units and 5.4 Field procedure and data collection

5.5 Intervention

5.6 Analysis of results from the case study

5.7 Validity threats and limitations of the case study

Discussion

Conclusion and Future Work, Acknowledgment, and References

4 Gamification Engine for SE Environments

In addition to proposing the generic software architecture and gamification model presented in the previous section, we have also implemented a gamification engine based on them. This implementation has allowed us to carry out a case study on the gamification of the work environment of a real software organization using our proposal. In addition, we have incorporated to our gamification engine functionalities that can be of interest for a real organization, and that go beyond the gamification architecture and model we have presented. These functionalities include a social network for the players, messaging, system notifications, challenges between players, and a virtual assistant based on dialog generation technologies. It also contributes tools for the analysis of the activities carried out by the users; in particular, there is a tool for analyzing the interaction of players, and community detection based on the interactions of the users in the workplace, along with a sentiment analysis module. This module enables detection of positive and negative polarities in the texts introduced by the players.

\ Fig. 6 Rules of the gamified environment.

\ In this section we present the details of the implementation of the gamification engine, how it supports the software architecture and gamification model presented in the previous section, and the additional advanced functionalities we have added.

\

4.1 System architecture and design

The gamification engine has been designed following a three-layer architecture (see Fig. 7). The first layer is devoted to data persistence, and has been implemented as a relational database in PostgreSQL. The engine model contains the data access layer and the business logic we have described, comprising the management of users, behaviors, achievements, and gamification rules. A third layer provides two different interfaces.

\ ● The administrator of the gamified environment accesses the configuration of the engine though a web application that provides an interface from which the administrator can manage everything: users, tool credentials, behaviors, achievements, game rules, etc.

\ ● REST API provides a complete interface for all the tools of the gamified environment. This interface provides those tools with a large set of operations that allows them to access all the information in the gamified environment, and not just the communication of behaviors. For example, the player’s site does not have its own database, since it accesses all the information stored in the engine through the API.

\ The engine has been developed in the Java EE platform, using technologies such as Hibernate, Spring, Spring MVC, and AngularJS.

\ \ Fig. 7 Engine architecture and design.

\

4.2 Integration

The REST API provides an interface for the rest of the tools in the gamified environment. By implementing this interface as a REST web service, we ensure that the platform or technology will not be an impediment for integrating any tool into the engine. In addition, since many tools that could be integrated into the engine have been developed in Java, we have created a client library for the REST API; this simplifies its use.

\ The gamified tools cannot communicate freely with the engine. If a tool has to communicate behaviors, it must be registered in the engine with a tool ID and a password that will be used in every transaction.

\ So far, we have focused on the data sent by the working tools to the gamification engine for the purpose of registering the player’s actions and evaluating them according to the gamification rules. However, data flow in the opposite direction is also possible, since the REST API allows all gamified tools to access all the data related to players, their actions, rewards and, in general, all gamification information (even the rules of the game). In this way, the gamified tools could also show the results of the gamification live to the players. For example, a programmer could see the result of a just completed development task in the Integrated Development Environment (IDE) he/she is using.

4.3 Other functionalities

The engine completes the basic gamification model we have described with other functionalities present in classic games that are also used in gamified applications.

\ ● Social networks: Most collaborative games allow players to communicate with their friends, or to even have an explicit social network. The engine supports this concept by providing a social network among the players, who can explicitly create friendship relationships.

\ This allows us to, for example, show different rankings to the users, as rankings comparing their results with that of the rest of the players, or as a ranking comparing the results obtained by one user with those of their friends. Although the gamification engine currently provides its own social network, the data about the player’s relationships could be obtained from an external social network if the company is already using one.

\ ● Messaging: This is a feature present in most collaborative games, allowing the players to communicate with their peers instantly.

\ ● Profile information and rankings: One of the important game elements used in gamification is continuous feedback on the actions of a user; that is, the users can immediately see the results of their actions in the games. The engine covers this need in two ways. First, the achievements assigned to each received behavior are returned to the application that communicated the behavior, so they can be immediately shown to the user. Secondly, the engine provides all the tools with the whole set of information making up the user profile (personal data, level, and achievements obtained to date), also giving rankings that allow users to compare their performance in the gamified environment with the performance of the rest of the users (all users, or only their friends).

\ ● Quests: Quests allow users to challenge other users to achieve a certain goal in a given period. That goal can be expressed as a certain number of points or badges of a given type.

\

:::info This paper is available on arxiv under CC BY 4.0 DEED license.

:::

\