Collegeville Workshop 2020

CW20 brings community members together to advance developer productivity for scientific software

This project is maintained by Collegeville

Background

What is developer productivity?

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.

Why we should focus on developer productivity

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.

Diverse scientific software communities and institutions

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.

Back to Main Page