Designing Software for Collaboration In computational science, collaboration in different scientific communities often takes different forms—examining the results of data generation or acquisition, combining dispa- rate pieces of software in a computational pipeline, and even enhancing …