A significant difference between traditional software and scientific software is that the latter emphasizes the creation of scientific knowledge, and in a number of development efforts important software features end up sidelined. This paper examines software engineering practices that have been used by developers of scientific software, and analyzes the effectiveness of such practices as reported in the literature. The paper provides a compilation of 66 studies related to scientific software development & engineering, which were obtained through a search in five major databases. These studies contain 33 different claims about 12 software engineering practices, divided in development workflow and infrastructure. For the purposes of the paper, a claim is “any argument made about the value of a software engineering practice, whether or not there is any evidence given to support the argument.”, although the paper’s authors are attentive to claims supported by empirical evidence. Of all claims, the most prominent are related to limitations of testing practices, and the need for version control for research groups with plural developers. The studies suggest that scientific software developers have greatly embraced, perhaps unconsciously, software engineering development practices. They also suggest that many opportunities exist for software engineers to provide better infrastructure support, and to tailor existing practices to better assist developers of scientific software.