Implementing Microservices through Microtasks

03/05/2019
by   Emad Aghayi, et al.
0

Microtask programming is a form of crowdsourcing for programming in which implementation work is decomposed into short, self-contained microtasks. Each microtask offers a specific goal (e.g., write a unit test) as well as all of the required context and environment support necessary to accomplish this goal. Key to microtasking is the choice of workflow, which delineates the microtasks developers may complete and how contributions from each are aggregated to generate the final software product. Existing approaches either rely on a single developer to manually generate all microtasks, limiting their potential scalability, or impose coordination requirements which limit their effectiveness. Inspired by behavior-driven development, we describe a novel workflow for decomposing programming into microtasks in which each microtask involves identifying, testing, implementing, and debugging an individual behavior within a single function. We apply this approach to the implementation of microservices, demonstrating the first approach for implementing a microservice through microtasks. To evaluate our approach, we conducted a user study in which a small crowd worked to implement a simple microservice and test suite. We found that the crowd was able to use a behavior-driven microtask workflow to successfully complete 350 microtasks and implement 13 functions, quickly onboard and submit their first microtask in less than 24 minutes, contribute new behaviors in less than 5 minutes, and together implement a functioning microservice with only four defects. We discuss these findings and their implications for incorporating microtask work into open source projects.

READ FULL TEXT

page 2

page 3

research
05/28/2020

Large-Scale Microtask Programming

To make microtask programming more efficient and reduce the potential fo...
research
09/11/2020

Can Microtask Programming Work in Industry?

A critical issue in software development projects in IT service companie...
research
05/25/2017

Data-Driven Program Completion

We introduce program splicing, a programming methodology that aims to au...
research
09/15/2023

Speeding up charge exchange recombination spectroscopy analysis in support of NERSC/DIII-D realtime workflow

We report optimization work made in support of the development of a real...
research
09/17/2018

Crowd-Assisted Polyp Annotation of Virtual Colonoscopy Videos

Virtual colonoscopy (VC) allows a radiologist to navigate through a 3D c...
research
02/07/2019

Complete Test Suites for Input/Output Systems

Model based testing is a well-established approach to verify I/O labeled...
research
06/05/2020

Applied Awareness: Test-Driven GUI Development using Computer Vision and Cryptography

Graphical user interface testing is significantly challenging, and autom...

Please sign up or login with your details

Forgot password? Click here to reset