Scientific software development as a social process
Marian Petre (The Open University, Milton Keynes)
Software development is often understood as an engineering process. However, the factors that affect the success of a software development project are often human and social. The social context of software design and development is important: it provides social reinforcement for good practice. Study of high-performing software development teams makes it clear that the interplay between designers plays a crucial part both in nurturing creativity and innovation, and in embedding systematic practice and rigor. This talk will present key observations from empirical studies of expert software development that can be applied usefully to scientific software development. It will discuss why matching development practices to the context and purpose of scientific software can improve both software and scientific outcomes. It will draw on research in order to discuss how communication and collaboration can be fostered, and to identify what works (and what doesn't work) in building collaboration in software development teams, whether co-located or distributed.