Moonlighting Scrum: An Agile Method for Distributed Teams with Part-Time Developers Working during Non-Overlapping Hours Philipp Diebold, Constanza Lampasona Fraunhofer Institute for Experimental Software Engineering Kaiserslautern, Germany {philipp.diebold,constanza.lampasona}@iese.fraunhofer.de Davide Taibi Software Engineering Research Group University of Kaiserslautern Kaiserslautern, Germany taibi@cs.uni-kl.de Abstract—Scrum and several agile development processes are becoming increasingly popular since they offer the ability to manage volatile requirements. This applies to many types of projects and teams. In case of development teams with moonlight developers working for at most ten non-overlapping hours per week, not all Scrum practices can be applied. In this paper, we introduce Moonlighting Scrum, an adaptation of Scrum aimed at optimizing effectiveness and efficiency by minimizing the amount of communication to the least necessary and maximizing the time invested in development. Our aim is to accomplish this by modifying Scrum practices to achieve a trade-off between development and communication effort to produce the best final results, given the available resources and time. An application of Moonlighting Scrum took place in a real cooperative project and provided interesting results. Keywords-agile software development; Scrum; distributed development I. INTRODUCTION The adoption of agile software development processes has increased over the years. Agile methodologies are known for being lightweight, which implies moving from heavyweight processes to methods allowing shorter development cycles and more intensive customer involvement. For this reason, many companies have been moving from plan-based development to agile development. As mentioned by Boehm and Turner [3], these two approaches to software development are considered as opponents. Software development teams often need to stick to one specific process with a defined name and tailor it to their own needs [3]. We believe that the choice of a specific process should be based on tailoring the most advantageous practices from agile and plan-based approaches that best fit the respective team’s and project’s needs. To answer the issue with which we are confronted, we need such tailoring and a combination of approaches. We encountered this issue during a software development project we are currently involved in and where requirements evolve over time, which suggested that we use an agile approach. Moreover, our developers are mainly students or researchers doing development in addition to their main activities (study or research), with part-time contracts for at most eleven hours per week without time constraints. Because they are developers in their second job, we call them moonlighters. In addition to the short time they have available to invest in the project, there is the problem that they are working during different time slots, which makes daily meetings very difficult and pair programming impossible. This suggested the use of a less agile process. Nonetheless, and although they work part-time, there is still the need for coordinating their work and monitoring project progress. All these variables in the context of our development projects led us to research the following questions: RQ1: How much communication is needed to achieve a project’s goals? (Effectiveness) RQ2: How much communication is needed before communication overhead becomes too large? (Efficiency) Our goal is to find an adequate balance or combination of plan-based and agile approaches which best fits the context of our development projects: distributed moonlighters working during non-overlapping times. The proposed development approach is an adaptation of Scrum, which integrates existing development methods into an agile environment. It addresses a process “to produce best end results, given the current resources and time available” [9, pg. 25]. The approach should be helpful for teams in a similar context because such a constellation is very common in software development, e.g., for open source project or at German universities. In Section II, we discuss different methodological approaches to software development and their advantages and disadvantages for our development context. In Section III, we introduce an adaptation of a distributed Scrum method that fits our needs, called Moonlighting Scrum. In Section IV, we show how we applied the process in a real project and the measurement plan we applied. Finally, in Section V, conclusions and future work are presented. II. RELATED WORK Today’s software development processes range from heavy weight plan-based development, such as the waterfall model [15], to incremental and lightweight agile methodologies, such as Extreme Programming [1]. The spiral model combines some aspects of the waterfall model and introduces risk management as a regular step during the process. Unlike the waterfall model, the spiral model iterates through several steps during the entire product development. On the opposite side, agile methodologies