Article Information
Corresponding Author: Muhammad Zahid Tunio* (Zahid.tunio@bupt.edu.cn)
Muhammad Zahid Tunio*, School of Software Engineering, Beijing University of Posts and Telecommunication, Beijing, China, Zahid.tunio@bupt.edu.cn
Haiyong Luo**, Institute of Computer Technology, Chines Academy of Science, Beijing; and Beijing Key Laboratory of Mobile Computing and PervasiveDevices, Beijing, China, wangc@bupt.edu.cn,shaowenhua
Cong Wang*, School of Software Engineering, Beijing University of Posts and Telecommunication, Beijing, China, zfsse@bupt.edu.cn,shaowenhua
Fang Zhao*, School of Software Engineering, Beijing University of Posts and Telecommunication, Beijing, China, yhluo@ict.ac.cn
Abdul Rehman Gilal***, Dept. of Computer Science, Sukkur IBA University, Sukkur, Pakistan, a-rehman@iba-suk.edu.pk
Wenhua Shao*, School of Software Engineering, Beijing University of Posts and Telecommunication, Beijing, China,
Received: September 19 2017
Revision received: December 18 2017
Accepted: February 8 2018
Published (Print): June 30 2018
Published (Electronic): June 30 2018
1. Introduction
Crowdsourcing has become an important factor for the quick development having the advantage of a short schedule due to the parallel and micro-tasking. It also offers low cost based on the knowledge of the crowd or “wisdom of the crowd”. Crowdsource software development (CSD) is taken from the concept of crowdsourcing. It, usually, uses an open call online format to catch a large number of CSD workers to participate in different types of software project tasks; for instance, component development, designing, architecture, testing and debugging. Moreover, there are three types of models used in crowdsourcing software development: peer production, competition, and micro-tasking [1]. Many platforms are available to implement these models in different aspects of peer production open source projects like Linux, Apache, Firefox are used. Topcoder, Get a coder, Zhubajie, Utest, Guru, Freelance, Elance and Amazon Mechanical Tuck are few examples of competition and micro-tasking models, respectively.
CSD uses an open call format. This process involves three kinds of roles: requester (for the one the project is undertaken), platform (the service provider), and crowd-source developer (the person for coding and testing). However, this type of call format enables a large number of task accessibility and self-selection. On the platform, a number of developers can register and choose a task from available set. Once after the submission of the task from developers, the platform personnel has to evaluate the submission to decide on the best solution, from developers, to pay the rewards. Mao et al. [2,3] state that selection of a task from the extensive large set of tasks is a very hectic work for the developer. Besides, it is also a tiring and a time-consuming job for the platform to evaluate thousands of submitted tasks from developers. In the same view, Chilton et al. [4] and Aldhahri et al. [5] also mentioned that matching of their proper task to improper crowdsourcing software developer may not only decrease the quality of the software deliverables, but it causes overburden on both platform and developers. They further mentioned that most workers view a minimum amount of recent tasks which are posted on the crowdsourcing platform because the task is posted in hundreds. By considering the low level of skills and expertise level of the crowdsource software developers, unrealistic matching of CSD worker and the task may affect the software quality. LaToza and Van der Hoek [6] mentioned in his research that matching of workers with their expertise and knowledge and how we can benefit from the CSD worker is an issue. Geiger and Schader [7] described that by matching with extrinsic and intrinsic choice of the CSD worker, it is a fundamental self-identification principle for individual contributors to select those tasks which are the best match with their personal preferences. They further illustrated that for the CSD worker, it is a very important factor to comply with the choice and individuals’ capabilities with the respective task requirements. Dang et al. [8] depicted that, for one task, there is a large number of CSD workers for participation and submission. Therefore, selection of a final submission is a hectic job for them. They further stated that every CSD worker is not qualified enough to give the best solution because of different hardware and software skills. In addition, CSD may have malicious workers in crowdsourcing platform for submitting tasks [9,10]. Therefore, nowadays finding a quality worker is a challenging task for the CSD model [11]. Machado et al. [12] stated that CSD model is very complex as it deals with technological, economic as well as personal issues. Therefore, it is very important to select appropriate worker among the large set of CSD workers. They further discussed that to assign a right task to the right CSD worker at a right time is indispensable and challenging for the crowdsourcing platform for their success. Moreover, Fu et al. [13] also stated that the selection of suitable CSD workers is extremely tiring and time-consuming job for the platform. An appropriate CSD task-worker will be beneficial for the platform to participate but also to perform the task with the best interest and better quality.
According to Tomayko and Hazzan [14], the key complexities pertinent to the development of software are concerned with human aspects from their social and cognitive point of view. Thus, human aspects should be overemphasized to cope up with the challenges while developing projects under the umbrella of software engineering. Though both technological and managerial aspects also have prime importance to bring success for software development projects, yet these two aspects can be more effective and conducive if combined together with human aspects. The combination of all three aspects can resolve challenges related to software development.
The aim of this study is to present a conceptual framework for task assignment model for future research on the basis of personality types. This will give a right path for CSD workers to find suitable tasks and also a platform to assign the task directly to the CSD workers which match with the personality and tasks. Since, personality is an internal force which carves the behavior of developers. Therefore, personality behavior can lead the model for suggesting or shortlisting the task set for developers. Therefore, this model can create a path to bring suitable developing personnel. It can also help the platform to select from limited tasks to evaluate. Based on the authors’ knowledge, there is not a single research study available which has merged personality types with crowdsourcing software development.
2. Related Work
Mao et al. [2] employed the content-based technique to recommend developers for CSD tasks. This approach learns from historical task registration and winner records automatically that match tasks and developers. Snow et al. [15] proposed bias correction in crowd data in the form of modeling. They used a gold standard data set to estimate the CSD workers’ model accuracy. However, this method is used in micro-tasking. Ambati et al. [16] used an implicit modeling based on skills and interest of CSD workers to recommend the classification based task. Yuen et al. [17] proposed an approach based on task matching to motivate CSD workers to perform task continually and in long run. This approach has focused on the recommendation of the tasks matching best with the workers. From this approach, we got inspired and motivated, therefore, will provide a new approach to the task matching problem for the best possible solution based on personality types that will be a novel approach. Sheng et al. [18] stated that, for a task matching, labeling is used as a technique but it also evident certain limitations. Liu et al. [19], Whitehill et al. [20], and Raykar et al. [21] used EM algorithm and Answer matrix to calculate the accuracy and mapping the quality of the CSD worker. Determination of single labeling is focused on these studies [22-25]. According to the author in the paper [13], by ignoring the task requirements and the relationship between CSD workers’ skills these approaches may get undesired results. Therefore, a new approach is needed to relate the soft skills with the hard skills of the CSD workers.
In order to avoid the risks of giving the task to the improper personality types of CSD, Capretz and Ahmed [26] have proposed a suitable model. According to this model, they suggested that tasks assigned to developers must be based on their suitable personality types. For instance, the personality of a programmer should be Introvert (I), the personality of system analyst should be Extrovert (E) the tester has a sensing (S) and Thinking (T) personality. The software designer should be with intuitive (N) and think (T) personality. However, due to its non-empirical nature of the model, the effectiveness of this model is difficult to test. Hence, in CSD, we aim to propose an approach for assigning the task to the developers: testers, debugger, and coders according to their personality types. Because the personality types of the developer are one of the important human aspects to ensure quality for software tasks. It has also been confirmed that a technical sound individual cannot perform satisfactorily unless he/she is assigned development tasks based on their personality types. This raises new challenges for crowdsourcing tasks and it requires an in-depth understanding of matching of workers and their characteristics related to their work [27]. An individual performance in software development has corelation and has direct interaction with the personality of CSD workers [28]. Capretz et al. [29] mentioned that assigning the task to the specific personality in software development is best suited for their traits to increase the successful outcome of the tasks.
Hence to integrate the CSD with the developer’s personality and their interrelationship is required. This area of research is yet to be discovered and needs more work to be done.
2.1 Current CSD Model
The current model of CSD is working on open call format. As shown in Fig. 1, initially the requester has requested to the platform for solving their problem, secondly the platform has sorted out problems and made in micro-tasking then the tasks are posted on the platform. Here the role of requester has been completed and platform role has to begin now the CSD developers have to be registered for themselves to participate in the various tasks. They are required to submit their solutions to the platform and the platform has to review the submission. After reviewing the submissions, platform decides that the submission was according to their criteria or not. Moreover, developers also have the right of appeal against the rejection of their submission. In the end, the reward is given to the winner of submission.
Crowdsourced software development process.
3. Proposed Model for CSD
The proposed approach will work the same as the open call format. But, the proposed task assignment CSD model includes the personality based categorization and selection of task (see Fig. 2). Once after the requester prepared a request for the task, the platform shortlists the posts of tasks for competition based on personality types. In this case, the registration of developer requires the personality measurement test to know the type of personality of developers. Meanwhile, this proposal also suggests that the task should also be included with a specific explanation which can be used to define the required traits of personality for the task. For example, the social networking based tasks may require a developer with the extrovert trait. Since the extrovert developer can understand and work on the task with interest as they involve themselves in social activities. Hence, the task will be directly available for the developers if the developers are already registered with the platform along with their personality types (Myer Briggs Type Indicator [MBTI]). The classification of individual personality types are classified on the MBTI test which follows with the combination of four-dimensional pairs, as shown in Table 1, and from that four combinations, there are 16 possible personality combinations which are shown in Table 2. To evaluate a personality of the CSD worker, this study, will use MBTI personality type as an instrument as this instrument is widely used in the research of software engineering [30-35].
Four dimensions of MBTI personality
MBTI 16 personality types with pair of 4 each
3.1 The Detailed Process of Proposed Model
(1) When requester plans to post a task, the categories of the task should be predefined on the CSD platform. When any task is submitted by a requester, the task will be placed in the set of categorized task (for example, developing, debugging, and testing). When the requester wants to publish the task on a CSD platform, the requester also has the description of tasks. For instance, the category of the task removes a bug from the code in Python is categorized as shown in Table 3.
Task categories and personality type
(2) The CSD platform has a database of a CSD worker who has already registered and participated. The CSD worker participation record has been kept in the database, based on choosing a preference and task submission along with personality types (Here we assume that the platform has already registered participants along with personality type). However, when platforms post tasks according to the categories of the tasks and a new CSD worker, wants to participate, they also have the option to choose the task according to their preferred personality types. If they are not registered before, they have the option to register themselves and submit the solutions. The task selection choice is calculated on basis of the information of the workers and the task which is selected previously. The information consists of the category of task, rewards and personality type.
(3) When logging on to the CSD platform, the list of tasks is available for the CSD worker that match best with his personality and task matching. From that list, a CSD worker will select his preferred task to work on. As we have discussed above that most of the workers only browsed the few tasks when searching tasks.
(4) The list of tasks available for the CSD worker on the platform will be of great importance to attract a large number of CSD workers to match their task with their preferred personality type and interesting category of tasks easily and quickly.
Mathematically we can define the proposed model as:
Let T = {t1, t2, …} is a set of tasks and W = {w1, w2, …} is a set of CSD workers, and P = {p1, p2, …} is a set of personality types. We can represent the personality type which is required for a task t by a node Personality(t) ∈ P, and the set of personalities of the CSD worker w by Personality(w) ∈ P. by assigning a set of tasks and CSD workers, a task assignment set U is a mapping from T to w which will mapped task t ∈ T to U(t) = w ∈ W. The best situation is to map a task with required personality P to a worker with his exact personality type.
Fig. 2 displays the proposed model based on personality.
Proposed model of crowdsourcing software development.
4. Contribution
The contribution of this study will be taken into account from many ways. Firstly, this study would benefit and suggest CSD platform to classify the tasks, for both platform and developers, on personality based types. Secondly, the results emanating from this study will not only help the CSD but it will also ensure the satisfaction of CSD workers for choosing the task according to their personality types. This plays a key role for workers in the selection of a suitable task and it has a correlation with the quality of the results. Thirdly, the results of this research will produce a Task Assignment Model (TAM) for CSD not only from CSD workers’ point of view but it will also provide an opportunity for the platform to assign or shortlist the tasks to CSD worker according to their personality types directly. This will be very helpful in saving the time spending on searching on the platform for their preferred task. Moreover, it will also give enormous relief to the platform to reduce their burden for analyzing the thousands of daily submissions by CSD workers.
5. Conclusions
The focus of this paper is to propose a model in the CSD domain for task assignment on the basis of developers’ personality. This model will help developers for finding suitable tasks and also the platform to assign the task directly to the CSD workers that match with the personality and task. This will help the developers to choose or register for those tasks that are suitable for them according to their personality type. It also facilitates the platform to assign a task to the suitable developer based on the developers’ personality type. This approach will provide a path to the quality development with less effort. In future, we want to design an algorithm based on this model and some experiments on platform data to validate our model for its functionality and generalization.
Acknowledgement
This work was supported in part by the National Key Research and Development Program (No. 2016-YFB-0502004), the National Natural science foundation of China (No. 61374214), and the Open Project of the Beijing Key Laboratory of Mobile Computing and Pervasive Devices.