CW20 brings community members together to advance developer productivity for scientific software
This project is maintained by Collegeville
A simple definition of developer productivity is anything that enables higher output vs input over an appropriate time span. Focusing on the ratio over time is important because efforts to increase productivity will typically require increased effort and time to produce a smaller set of features. We must take care that attempts to improve productivity take into account how much cost, scope and schedule impact can be absorbed by a development team or community.
Software is a large and growing element of scientific discovery and engineering design. Scientific software developers are highly skilled, requiring significant background in one or more scientific domains, in addition to software development skills. There are not enough people with these skills to satisfy the demand for their efforts. Focusing on improved developer productivity enhances the impact of this critical community.
One way to characterize the computational and data sciences communities is through their institutions. Three distinct categories of institutions that develop, use and support scientific software are corporations, research labs and universities. Each category tends to have a distinct business model and set of priorities. However, the broad scientific software ecosystem is inter-dependent and complementary, where products from one category are widely used in others. Even more interaction is possible if the scientific software community can come to understand commonalities and differences.