How do scientists develop and use scientific software?

New knowledge in science and engineering relies increasingly on results produced by scientific software. Therefore, knowing how scientists develop and use software in their research is critical to assessing the necessity for improving current development practices and to making decisions about the future allocation of resources. To that end, this paper presents the results of a survey conducted online in October-December 2008 which received almost 2000 responses. Our main conclusions are that (1) the knowledge required to develop and use scientific software is primarily acquired from peers and through self-study, rather than from formal education and training; (2) the number of scientists using supercomputers is small compared to the number using desktop or intermediate computers; (3) most scientists rely primarily on software with a large user base; (4) while many scientists believe that software testing is important, a smaller number believe they have sufficient understanding about testing concepts; and (5) that there is a tendency for scientists to rank standard software engineering concepts higher if they work in large software development projects and teams, but that there is no uniform trend of association between rank of importance of software engineering concepts and project/team size.

[1]  Judith Segal,et al.  When Software Engineers Met Research Scientists: A Case Study , 2005, Empirical Software Engineering.

[2]  W. Shadish,et al.  Experimental and Quasi-Experimental Designs for Generalized Causal Inference , 2001 .

[3]  Howard Margolis,et al.  Dealing with risk , 1996 .

[4]  Jeffrey C. Carver,et al.  Understanding the High-Performance-Computing Community: A Software Engineer's Perspective , 2008, IEEE Software.

[5]  Hakan Erdogmus,et al.  An empirical characterization of scientific software development projects according to the Boehm and Turner model: A progress report , 2009, 2009 ICSE Workshop on Software Engineering for Computational Science and Engineering.

[6]  Diane Kelly,et al.  Dealing with Risk in Scientific Software Development , 2008, IEEE Software.

[7]  Shirley Dex,et al.  JR 旅客販売総合システム(マルス)における運用及び管理について , 1991 .

[8]  Judith Segal,et al.  When software engineers met research scientists : a field study , 2003 .

[9]  Jin Tang Developing Scientific Computing Software: Current Processes and Future Directions , 2009 .

[10]  Jeffrey C. Carver,et al.  Software Development Environments for Scientific and Engineering Software: A Series of Case Studies , 2007, 29th International Conference on Software Engineering (ICSE'07).

[11]  Judith Segal,et al.  Developing Scientific Software , 2008, IEEE Software.

[12]  Ridha Khédri,et al.  Requirements Analysis for Engineering Computation: A Systematic Approach for Improving Reliability , 2007, Reliab. Comput..