1000/1000
Hot
Most Recent
This video is adapted from 10.3390/pr8101215
Freelancers the self-employed people who have a short term, task-based association with the employer and thus they are not a part of the company workforce (i.e., they are not the employees). Their association with the company is only until the allocated task is successfully completed and thus they do not have long term commitments (or working associations) with the company as expected from the full time employees. They have an obligation to complete the task with high quality standards within the agreed deadline, in exchange for the money (agreed price of the outsourced tasks). During the time the freelancer has been executing the outsourced task, they are free to undertake more freelancing tasks with different requesters (different companies), with different contractual conditions. In other words, the freelancers undertake multiple projects in parallel. Freelancers do not have strict and lengthy written employment contracts as exist in full time employment. The outsourcing of the tasks (also termed as projects) in the freelancing world (gig economy) works as follows:
The freelancers in the professional networks of the software company (or startups) are directly approached with the outsourcing request. This approach is usually undertaken if the deadline for execution of the project is too strict that prohibits the idea of outsourcing to the crowd. This approach does not require open call for participation of freelancers in undertaking outsourcing tasks and is thus non-crowdsourcing-based freelancing.
The company could also maintain their own panel of expert freelancers which could be approached in crowdsourcing or non-crowdsourced manner, which is termed as panel-based freelancing model in [1]. Authors in [1] have classification the freelancing association models into task-based, panel-based, or hybrid. Either of the models could be executed in crowdsourced or non-crowdsourced manner.
Screen the profiles of the interested freelancers by analyzing their reputation and their capability to produce high quality work. The ratings, previous reviews, sample of previously executed tasks etc. could be helpful. The freelancers could also be interviewed to make final decisions.
Evaluate freelancers based on the brief abstract solution provided by them, finally leading to their selection. The abstract solution is the partial solution about the task to be outsourced. To accomplish this, the company must request for abstract solutions at the time the request for the participation was registered on the platform.
Evaluate the solutions given by freelancers and select the best one for the reward. This requires the company to request for the complete solutions of the task at the time the request for the participation was registered on the platform. The best solutions are rewarded. This crowdsourcing takes the form of the competition, but it is usually undertaken for the tasks that are not computationally hard and effortful (for instance, logo designing). As the software engineering tasks are effortful, computational hard problems to solve and complex, a competition-based approach is likely to be less feasible here.
Thus, there are different ways of inviting interest, screening applicants, selecting and evaluating the work. However, the researchers categorize freelancing as either crowdsourced or non-crowdsourced. In the crowdsourced model, the company sends an open call to a crowd of freelancers. Freelancers could collaborate (usually never happens), take part in a competition, or undertake microtask independently. In the non-crowdsourced model, the company selects one freelancer to independently work on the problem (task) to generate a solution. Freelancing activity in software engineering is challenging, as the freelancer should have perfect skills and competencies to handle the technical task (skill match). It is very effortful to invite the interest of a freelancer, select a freelancer from the big pool (or select tasks from the big pool), negotiate the terms and conditions, communicate during the task execution, evaluate submitted work, and trust that payment will be made. The entire process is highly uncertain and risky. This is because the submission of the work and its quality is probabilistic.
Software companies need to continuously innovate their products (or services) to maintain competitive advantage in highly volatile markets i.e., by continuously providing more and more benefits to the software users. The companies also continuously try to do process innovation to improve the software development processes that lead to the benefits to the firms which could be passed on to the users. Thus, the process innovation could also help the company to improve their products and increase the value they provide to its markets. The growth of the companies in the markets helps them to enhance their resources but their organizational processes become more and structured. For instance, the big software company will have a very organized organizational structure with well-defined processes for everything. This limits the ability of the companies to innovate as the rigid structures will resist the changes required to innovate. Further, technologies and customer needs are changing so fast that the big companies may find it very costly (or even harder) to employ the software engineer with niche skills for undertaking the task in hand. These companies may also wish to employ the specialist for short term basis if the requirement for the specialization is for short term only. The startup phase of the companies is more challenging because of the need to continuously innovate because of resource limitations and an ever-changing environment [2]. However, this phase has very flexible organizational structure and processes which are most favorable for supporting the innovation activities. The outcome of the discussion is that the companies (starting from their startup phase) must continuously innovate by overcoming the restrictions imposed by resources and agility of the organizational processes and structures. Innovation not only require the gathering of the creative ideas but also their implementation and release in the markets to generate value to the customers. For instance, the company may have a brilliant idea about a new product feature, but they need to implement it by executing software engineering process which include generic activities like designing, coding, testing, and release. The resource limitations and flexibility issues with the organizational processes and structures will be effectively managed by outsourcing the innovative idea implementation tasks to the freelancers. Freelancers could also be meaningful sources for suggesting innovative ideas to the companies that could be implemented inhouse or outsourced to the freelancers [3].
Software development involves many effortful, complex, and hard activities like requirement engineering, designing solutions, coding solutions, testing solutions and release, which must be executed continuously (evolutionary software engineering). Each activity imposes different constraints like skills requirement, environment challenges, coordination issues, collaboration issues, need for documentation, etc. The software engineering task to be outsourced should be assigned to the freelancers with the necessary competencies required for the task to be successfully executed. The employing of freelancers is a good solution provided that the effort of managing freelancing is exceeded by the cost and time reductions it brings to the development.
The software companies expect from the research community the effective solutions that could help them to involve freelancers in suitable software development activity and empirical guidelines that could help them to take decisions in the directions. The support of empirical evidences will foster the decision making process of the company management about different aspects including (a) hiring the freelancer vs. undertaking the task in house; (b) identification of the software engineering activity that should be outsourced to freelancers; (c) establishing price estimated; (d) deciding the model for freelancer associations; (e) decision about the crowdsourcing platforms etc. The overall objective is to include freelancers in the software engineering activities to foster innovations in the company to remain competitive in the marketplace.
This entry aims to undertake a systematic mapping study to understand the trends in freelancer-supported software development by structuring this area around software development activity focused, challenges and issues reported, type of research undertaken by the researchers and the temporal trends (publication trends). The objective is to explore this area to maximum breadth, using an efficient mapping protocol to identify the research gaps or the areas that require urgent research focus. This needs the research to bifurcate the complex domain of freelancer supported software engineering into meaningful information to identify the state of art. This state of art will help to identify the research gaps that could motivate the researchers to bridge those gaps by providing empirical guidelines, tools, and techniques for fostering freelancer involvement in various software engineering activities. This will help the software companies (including the startups) to adopt the research solutions provided by the researchers as per the working context unique to their companies to improve software success rates and overcoming resource limitations.
Providing a holistic view of the research area justifies the execution of the research study as a systematic mapping study over a systematic literature review. This is because systematic mapping studies are well suited to provide classification and counting of the broad research areas rather providing empirical evidence-based on the synthesis of the literature [4]. The systematic mapping study conducted in this entry is based on the guidelines disseminated in [5].