Patching It Up, Pulling It Forward
Journal of Open Research Software
Sustainable software depends on communities of users and developers who are invested in the software's success  . These communities need rules that guide their interactions, that encourage participation, that guide discussions, and that lead to resolutions and decisions [2, 3, 4] ; we refer to these rules as a community's governance. Open governance [4, 5, 6, 7] provides well-defined mechanisms executed through open communications that allow individuals from diverse and even competing
... en competing organizations to interact in neutral forums in a collaborative manner that encourages growth and transforms passive users into active contributors and project members. For a general overview of open source software governance mechanisms, which may take different forms, see  . These principles are well-established in the general open source software ecosystem, but it is our experience that the adoption of a well-articulated governance model by scientific and cyberinfrastructure software efforts primarily funded by federal agencies is particularly inadequate; these projects compare unfavorably to a host of cyberinfrastructure-like software efforts such as Apache Hadoop, Apache Spark, and Apache Mesos that have open, Apache-style  governance. The growing distinction between being "open source" and being community managed via a governance model is summarized in  . Our hypothesis is that scientific and cyberinfrastructure software sustainability would benefit from using open governance methods, which would create more resilient developer communities. This position is supported by the statistical analysis of 352 open source projects as reported in : openly governed projects were significantly more efficient at what the authors call "enhancive maintenance" (adding new features, improving performance) but less efficient at corrective maintenance (bug fixes). We extrapolate that enhancive maintenance is vital to software's long term viability as it moves the software onto new platforms, increases its capabilities, and generally keeps the project moving forward. Similarly, Shah  found that openly governed open source software projects attracted more engaged contributors who worked for longer periods of time on the project voluntarily. Openly governed ISSUES IN RESEARCH SOFTWARE An important reason for making any software open source is to encourage code and other community contributions, resulting in more diverse developer communities coalescing around valuable software efforts. We believe the full picture of open developer communities is underappreciated by scientific and cyberinfrastructure open source software efforts. Free and open source licensing is popular in scientific and cyberinfrastructure software, and Web-based tools for source code management (such as GitHub and Bitbucket) are in common use, but community building efforts and associated governance models that foster these communities need improvement. We propose here a simple mechanism to address this problem: developers should be given incentives to submit patches and to make other measurable contributions to code bases that they use but are not otherwise connected to, and projects should be given incentives to accept these outside contributions. As an example implementation, we outline a contest system with small monetary rewards for individuals and recognition for both individuals and projects. The goal is to change the mindset of scientific and cyberinfrastructure developers, converting them from passive downstream users to active contributors. We hypothesize that this easily measurable concrete action will contribute to the sustainability of many projects and also create a more flexible scientific workforce. Building this effort on currently available, federally funded software will establish a foundation of public data that can be used to verify our hypothesis. More broadly, the effort will demonstrate the benefits for scientific and cyberinfrastructure projects that adopt workable governance models that are already well established in the broader open source software ecosystem.