Scientist developers typically spend 30% or more of their time to develop software. However, almost all of them are self-taught. Therefore they lack manifestation of many basic software development practices such as using version control and issue trackers, writing maintainable code, and task automation. This paper describes a set of practices that have proven effective in many research setting and are easy to adopt. The authors recommend these practices based on their own experience in building scientific software, reports from many others groups, and software development in general.
Software faults in the scientific context are more rigorousas scientific software is used in the mission-critical situation, decision making, and computation of evidence for research publications. Even, it caused scientists to retract publications due to errors in scientific software. So, proper testing is very essential in scientific software. Kanewala et al. presents specific challenges, potential solutions, and unsolved problems faced while testing scientific software.
Nowadays, the use of the software is spreading widely in every aspect of scientific research. Different software applications are used to gather, manage, process, synthesise, analyse, or present enormous quantities of data. But it needs a very large, long-lived, and complex effort to develop associated software. However, several researchers found that there is a gap between software engineering and scientific programming. This gap can be a serious risk in producing reliable and trustworthy scientific results. Regarding this, Storer et al. reviews the literature that addresses the gap to explore the best combination of software engineering and scientific research practice need to accommodate the use of software in science.