  Although freelancing work has grown substantially in recent years, in part
facilitated by a number of online labor marketplaces, (e.g., Guru, Freelancer,
Amazon Mechanical Turk), traditional forms of "in-sourcing" work continue being
the dominant form of employment. This means that, at least for the time being,
freelancing and salaried employment will continue to co-exist. In this paper,
we provide algorithms for outsourcing and hiring workers in a general setting,
where workers form a team and contribute different skills to perform a task. We
call this model team formation with outsourcing. In our model, tasks arrive in
an online fashion: neither the number nor the composition of the tasks is known
a-priori. At any point in time, there is a team of hired workers who receive a
fixed salary independently of the work they perform. This team is dynamic: new
members can be hired and existing members can be fired, at some cost.
Additionally, some parts of the arriving tasks can be outsourced and thus
completed by non-team members, at a premium. Our contribution is an efficient
online cost-minimizing algorithm for hiring and firing team members and
outsourcing tasks. We present theoretical bounds obtained using a primal-dual
scheme proving that our algorithms have a logarithmic competitive approximation
ratio. We complement these results with experiments using semi-synthetic
datasets based on actual task requirements and worker skills from three large
online labor marketplaces.
