Crowdsourced Behavior-Driven Development: Implementing Microservices through Microtasks
Emad Aghayi,Thomas D. LaToza,Paurav Surendra,Seyedmeysam Abolghasemi
DOI: https://doi.org/10.48550/arXiv.1903.01977
2020-09-03
Abstract:Key to the effectiveness of crowdsourcing approaches for software engineering is workflow design, describing how complex work is organized into small, relatively independent microtasks. In this paper, we introduce a Behavior-Driven Development (BDD) workflow for accomplishing programming work through self-contained microtasks, implemented as a preconfigured environment called Crowd Microservices. In our approach, a client, acting on behalf of a software team, describes a microservice as a set of endpoints with paths, requests, and responses. A crowd then implements the endpoints, identifying individual endpoint behaviors which they test, implement, and debug, creating new functions and interacting with persistence APIs as needed. To evaluate our approach, we conducted a feasibility study in which a small crowd worked to implement a small ToDo microservice. The crowd created an implementation with only four defects, completing 350 microtasks and implementing 13 functions. We discuss the implications of these findings for incorporating crowdsourced programming contributions into traditional software projects.
Software Engineering,Human-Computer Interaction,Social and Information Networks