scholarly journals Ten simple rules on writing clean and reliable open-source scientific software

2021 ◽  
Vol 17 (11) ◽  
pp. e1009481
Author(s):  
Haley Hunter-Zinck ◽  
Alexandre Fioravante de Siqueira ◽  
Váleri N. Vásquez ◽  
Richard Barnes ◽  
Ciera C. Martinez

Functional, usable, and maintainable open-source software is increasingly essential to scientific research, but there is a large variation in formal training for software development and maintainability. Here, we propose 10 “rules” centered on 2 best practice components: clean code and testing. These 2 areas are relatively straightforward and provide substantial utility relative to the learning investment. Adopting clean code practices helps to standardize and organize software code in order to enhance readability and reduce cognitive load for both the initial developer and subsequent contributors; this allows developers to concentrate on core functionality and reduce errors. Clean coding styles make software code more amenable to testing, including unit tests that work best with modular and consistent software code. Unit tests interrogate specific and isolated coding behavior to reduce coding errors and ensure intended functionality, especially as code increases in complexity; unit tests also implicitly provide example usages of code. Other forms of testing are geared to discover erroneous behavior arising from unexpected inputs or emerging from the interaction of complex codebases. Although conforming to coding styles and designing tests can add time to the software development project in the short term, these foundational tools can help to improve the correctness, quality, usability, and maintainability of open-source scientific software code. They also advance the principal point of scientific research: producing accurate results in a reproducible way. In addition to suggesting several tips for getting started with clean code and testing practices, we recommend numerous tools for the popular open-source scientific software languages Python, R, and Julia.

Author(s):  
David Sloan ◽  
Catriona Macaulay ◽  
Paula Forbes ◽  
Scott Loynton ◽  
Peter Gregor

2015 ◽  
Vol 6 (1) ◽  
pp. 31-48
Author(s):  
Aminat Abiola Showole

Open Source developers play fundamental determinant role in the life of any open source project. This paper investigates developer motivation in contributing tirelessly to an open source project. Open source Onions were investigated and the developer layer modeled and validated based on ten case studies from SourceForge. Validation was based on Delphi's four rounds of successive stages. Results show that 62% of the developers around an open source development project community are skilled programmers, and that Open source developers are largely motivated by web based development platforms with universal programming language such as Java and that Developers are mostly attracted to the GPL licensed software development project with high project publicity as could be tracked from the hit rate on the project website. Finally, the few Core developers (Project Administrators) of about 19% actually controls and oversees the affairs carried out by about 81% of many developers showing the prominence of Pareto80/20 Principle in Open Source Project development.


Author(s):  
Manuel J. Blanco ◽  
Juana M. Amieva ◽  
Azael Mancillas

The Tonatiuh project is underway at the University of Texas at Brownsville under the DOE-NREL Minority University Research Associate (MURA) Program Subcontract. It intends to improve the cost-effectiveness of solar energy technologies by advancing the state-of-the-art of the simulation tools available for the design and analysis of solar concentrating systems. The project includes the design, development, implementation, verification and validation of Tonatiuh: an open-source advanced object-oriented program, that using distributed computing, Monte-Carlo Ray tracing, and the best 3-D user interface technologies available today, will provide a sophisticated and efficient software environment for the design and analysis of solar concentrating systems. This paper presents an overview of the Tonatiuh Software Development Project, emphasizing the software design aspects of the project, and the scientific relevance of the program.


2017 ◽  
Vol 10 (4) ◽  
pp. 880-896
Author(s):  
Helena Merikoski ◽  
Paula Savolainen ◽  
Jarmo J. Ahonen

Purpose The purpose of this paper is to present a life cycle phase of a software development project which is substantial for the success of the project. This paper visualizes the project start-up phase from suppliers’ perspective. Design/methodology/approach The method is a theory building from case studies. The data were collected from three software supplier firms by conducting process modeling separately in each firm. Findings The study resulted in a model of a supplier’s software project start-up which includes start-up practices and involved roles. The results indicate that project start-up is an integral and structured phase of project life cycle, which influences the execution of a software development project, especially from the supplier’s perspective in the project business context. Research limitations/implications The study focuses on the start-up phase of software development projects delivered to external customers. Therefore, developed project start-up model is applicable as such in software supplier firms. Practical implications The project start-up model presented in this paper indicates that project start-up is a complex and multi-dimensional activity in a supplier firm. This study suggests that if the project start-up phase is clearly defined, planned and followed in a supplier firm, it reduces confusion and miscommunication among the people involved in the project and helps to achieve the business goals of a project. Originality/value This study emphasizes that it is necessary to make a distinction between the perspectives of the customer and the supplier when studying projects in the project business context. The findings contribute the new knowledge for managing outsourced software development projects.


2017 ◽  
Vol 13 (4) ◽  
pp. 31-55 ◽  
Author(s):  
Rajorshi Sen Gupta

This article describes how entrepreneurs face critical risks in terms of quality control and knowledge management while outsourcing software development to independent service providers. First, it is recommended that lump-sum payment contracts should be avoided since software development project involves uncertainty. Instead, a variable payment contingent on observed quality can induce the service provider to exert optimal effort on the project. Second, entrepreneurs must not overlook the importance of providing economic incentives. They can protect their intellectual property by withholding critical knowledge and paying information rents in terms of higher than market wages to the service providers. Third, a startling result is that a low wage nation is not necessarily the optimal location to outsource software development projects. Thus, high wage-strong IPR nations might be chosen instead of low wage-weak IPR nations. Finally, the article explains the apparent paradox that software projects are often outsourced to locations that are characterized by weak intellectual property rights regime and high propensity of imitation.


Sign in / Sign up

Export Citation Format

Share Document