bolker esa2014
DESCRIPTION
slides on "social aspects of software", ESA 2014TRANSCRIPT
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
Social aspects ofecological statistical software
Ben Bolker and Steve Walker, McMaster UniversityDepartments of Mathematics & Statistics and Biology
ESA
August 2014
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
Outline
1 Introduction
2 PackagesPackage scopePackage communities
3 The soft side of software development
4 Ethics and incentives
5 Conclusions
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
Acknowledgements
People Mollie Brooks, Mike McCoy, Toshinori Okuyama
Support NSERC Discovery grant
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
Outline
1 Introduction
2 PackagesPackage scopePackage communities
3 The soft side of software development
4 Ethics and incentives
5 Conclusions
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
Community science and community software
Science as a communityactivity
Software as a communityactivity
How to make it work betterfor individuals (you!)for the community
Mowgli and the bandar-log
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
R
freeas in beer (gratis)as in speech (libre)
package infrastructureeasy installationdependency/version managementdocumentation (help pages & vignettes)testing
drawbacks:language design wartsperformancecommunity problems(hostility, closed development)
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
R
freeas in beer (gratis)as in speech (libre)
package infrastructureeasy installationdependency/version managementdocumentation (help pages & vignettes)testing
drawbacks:language design wartsperformancecommunity problems(hostility, closed development)
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
R
freeas in beer (gratis)as in speech (libre)
package infrastructureeasy installationdependency/version managementdocumentation (help pages & vignettes)testing
drawbacks:language design wartsperformancecommunity problems(hostility, closed development)
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
Outline
1 Introduction
2 PackagesPackage scopePackage communities
3 The soft side of software development
4 Ethics and incentives
5 Conclusions
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
The world of R packages
●
●
●●●●●●
●
●
●
●
● ●
●●●●●
●
●●●●
●
●
●
●
●
●
●●
●
●
●
●●●●●●●
●
●●
●
●
●
●
●●●●●
●
●
●
●
●
●
●●●
●
●
●●●
●
●●●
●
●
●
●
●
●
●
●
●●
●
●●
●●
●●●
●●
●
●●
●●●
●●●
●
●
●●
●
●●●●●
●
●●
●
●●
●●●
●
●●
●●●
●
●
●●
●
●●
●
●
●●●
●
●
●
●●●
●
●
●●
●
●●
●●
●●●●
●
●
●●●●● ●●
●
●
●
●●
●●
●●●●
●
●
●
●
●
●
● ●●
●●
●
● ●
●
●● ●●●
●●
●
●●
●●●●
●
●
●●
●
● ●●●
●
●●
● ●●
●
●●
●
●●
●●●
●●
●
●
●
●
● ●●
●
●
●
● ●
●●
●
●
●
●●
●●
●
●●
●●●●●●●
●●●●
●
●
●
●
●
●
●●
● ●●●●
●●
● ●●●●
●●
●
●
●
●
●●
●
●
●●
●
●●●●
●●
●
●
●●
●
●●●
●
●●
●●
●
●
●
●●
●
●●
●
●●●●
●●●
●●●
●●●●●●● ●●
●
●
●
●
●
●
● ●
●●●
●
●
●●
●
●
●
●
●
●●
●
●●●
●
●●
●
●
●●
●
●
●
●
●
●
●●
●●
●●●●●
●●
●
●●●
●●
●●
●
●●
●●
●●
●
●●●●
●
●
●
●
●
●●●
●●●●
●
●
●
●
●●
● ●●
●
●●●●
●
●
●●
●●●●
●●
●
●
●
●
●
●●● ●
●
●
●
●●
●
●
●●●
●●
●●
●●
●
●
●
●●●
●●●●
●
●
●●●●●
●●●●●
●
●●●
●●●
●
●
●
●
●
●●●
●
●
●
●
●
●●
●●●●●
●
●●●●
●●
●●
●
●●
●
●
●
●●
●●●●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●● ●
●
●
●
●●
●●
●
●
●●
●
●●●●
●
●
●
●
●
●
●
●●●
●
●●
●
●●●
●
●
●
●●
●●
●●●
●● ●
●●●●●
●
●
●
●
●
●●
●●
●●
●
●
●●
●●
●
●
●
●
●
●●
●●●
●
●
● ●● ●
●
●
●
●
●●●●
●●
●●
●
●●
●
●●●●
●●
●
●
●
●
●●●
●
●●
●
●
●●
●
●
●●●
●
●
●
●
●
●
●●●
●
●
●
●●
●●
●
●
●●
●
●●
●
●●●
●●
●
●
●●
●
●●
●
●●●●
●● ●
●
●
●●
●●●●
●
●
●●
●
●●
●
●
●
●
●●●
●●●
●
●
●
●
●
●
●
●●●●
●●●
●
●
●
●
●
●
●●
●●●●●
●
●
●
●●
●●
●●
●●●
●●●
●●
●●
●
●●●● ●
●
●●●●
●●
●
●
●
●
●
●
●●●●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●
●
●●●
●
●
●
●●●●●
●● ●
●
●
●●●●
●●
●●●●
●
●
●●●●
●
●
●
●
●
●●●
●●
●● ●●
●
●●●● ●
●
●● ●
●
●
●●
●
●
●
●
●
●●●
●
●
●
●
●●
●●●
●
●●
●●●
●
●
●
●●●●●●
●●●●●
●●
●
●●●
●●●●●
●
●●
●
●●●
●
●● ●●
●
●●
●
● ●
●
●
●●
●
●●
●●
●
●
●●●●
●
●●
●
●
●●
●●
●●
●
●
●
● ●●●
●
●
●
●
●●
●●
●
●
●●
●
●
●●●
●
●
●●
●
●●
●
●●
● ●●●●
● ●
●
●
●●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●●
●● ●
●●
●
● ●●
● ●●
●
●
●●
●●
●●
●● ●●●
●
●
●●
●●●●●● ●
●
●
●
●●
●
●
●
●●
●●●
●●
●● ●
●
● ●●
●
●●
●
●●
●
● ●
●
●●
●
●●
●●● ●
●
●
●●●
●● ●●●
●●●●
●
●● ●●
●
●
●
●● ●
●
●●
●
●
●
●
●
●
●
●
●
●
●●
●
●
● ●●●
●●●
●
●
●
●
●
●
●
●
●
●●●●●●
●●
●
●
●●●●
●●●●●●
●●
●
●
●
● ●●●●
●●●
●
● ●●●
●●
●●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●
●
●●●●●
●
●
●
● ●
●●
●
●●
●
●
●●
●● ●●
●●
●
●
●●●
●
●●
●●● ●
●
●●●●●
●
●●
●
●
●
●
●●●●●
●
●
●
● ●●
●
●
●●
●●
●●●●
●●
●
●
●
●●
●●●
●
●
●
●
●
●
●●
●●
●
●
●●
● ●
●
●
●
●
●
●
●
●
●
●●
●
●
●
● ●
●●●●●● ●
●
●
●
●
●●●
●
●
●●
●
●●
●
●●
●
●●●
●● ●
●
●
●
●
●
●
●
●
●●●●
●
●
●●●
●●
●●
●
●●
●
●●●
●
●
●
●
●●●
●●●
●
●
●
● ●●●
●
●
●●●
●
●
●●
●●●
●
●●
●
●
●
●●●●●
●
●●●●●
●
●
●
●
●
●●●●
●●●
●●
●
●
●
●
●
●
●●
● ●●
●
●
●●
●●●●
●
●
●
●
●
●
●
●
●●●● ●●●
●
●
●●●●
●●
●
●●
●
●●
●
●●●
● ●●
●
●
●●
●
●
●
●●
●
●
●
●● ●
●
●●
●
●●●
●
●
●
●
●●
●●● ●●●
●
●
●
●●
●●●
●●●
●
●
●●
●●
●
●
●
●
● ●●
●
●●
●● ●
●
● ●●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●●
●
●
●
●
●
● ●
●
●
●
●●
●
●
●
●
●
●
●●
●●
●
●
●●●●
●
●
●
●●
●●
●
●
●●
●
●
●
● ●
●●●●
●
●
●●
●
●●●●
●●
●
●
●
●
●●
●●
●●
●●●●
●●●●●●●
● ●●
● ●●
●
●
●●●
●
●
●
●●
●
●● ●
●
●●
●
●
●
●
●● ●
●●
●● ●
●
●
●
●●
●●
●
●
●
●●
●
●●
●
●●
●
●
●
●
●●● ●
●
●
●
●
●
●●●
●
● ●●●●
●
●
●
●
●
●
●
●
●
●●
●
●●
●
●●●●
●●●
●
●
●
●
●
●
●● ●●●
●
●
●
●
●●
●
●●
●
●●
●●
●
●
●●●●
●
●
●●
●
●
●●
●
●
●●●
●
●
●
● ●●
●●●
●
●
●
●
●
●
●
●●●
●
●
● ●●
●●
●
●
●●●
●
●
●
●
●
●●
●●●
●●
●●●
●●
●
●●
●●●●●
●
● ●
● ●●
●
●●●
●
●
●●●●●
●
●●
●
●
●
●
● ●●
●
●●
●
●
●
●●● ●●
●
●
●
●●
●
●
●●●●●●● ●
●
●●●
●
●
●
●
●●
●
●
●
●
●
●●
●
●●
●●
●●●
●●
●
●●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●●●●●●●●
●●
●
●●
●
●
●●●
●
●●
●
●
●
●
●●
●
●●
●●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●●●●
●
●
●●
●●●
●●●●
●
●●●
●
●
●●●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●● ●●●●●
●●
●
●●●
●●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●
●●●●
●
●●●
●
● ●
●
●
●
● ●
●
●●●●●●
●
●
●
●●
●●
● ●●
●
●
●●●
●
●
●
● ●●●
●
●
●
●
●
●●
●●
●●●●
●●●
●●
● ●●●
●
●●●
●
●●●●
●●●
●
●●
●
●
●●
●
●●
●●
●
●●●
●
●
●●●●
●●
●
●
●●●
●●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●
●●●●●
●
● ●●
●
●●
●
●
●●●●
●●●●
●●●
●
●
●●●
●
●●●
●
●●
●●
●
●
●
●
●●●
●
●
●●●
●●●●●●
●
●
●
●
●●
● ●●●●
●
●
●●●
●
●●●●
●●
●
●
●●●
● ●
●
●
●●
●
●
●●
●
●
●
●●
●
●
●
●
●●●●
●●●●
●
●●
●
●
●
●
●●
●
●●
●●●
●
●●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●●●●●
● ●
●
●
●●
●
●
●
●
●●●●
●
●●
●
●
●●
●●● ●
●●
●
●
●
●
●
●●●
●●
●
● ●
●●
● ●●
●
●●●●
●
● ●●
●
●●
●
●
●
●●
●
●
●●●
●
● ●●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●
●●
●
●
●●
●
●●
●●
●
●●●
●
●●
●
● ●
●●●
●
●
●●●●●
●
●
●●●●
●●
●
●
●
●●●●
●●
●●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●
●●●
●
●
●●
●
●●
●
●●
●●
●●
●
●
●
●●
●●
●
●● ●
●
●
●●
●
●●●●
●●●
●
●
●●
●●●
●
●
●
●●
● ●●●●
●
●
●
●●●
●
●●● ●●
●
●
● ●●
● ●●●
●●●
●
●
●
●
●●●●●
●
●
●●
●●●
●
●
●
●
●
●●
●
●
●
●
●●●
●●
●
●
●
●
●
●●
●●
●●●●●●●●●
●
●
●
●
●
●
●
●
●
●
● ●●●
●●
●
●●
●
●●
●
●●●
●
●
●
●
●●
●●
●
●
●●●
●
●
●
●
●●
●
●●●
●
●
●●
●
●
●
●
●
●
●●
●
●
●●
●●●●
●
●●● ●●
●●
● ●
●
●
●
●●
●
●●
●
●
●
●
●●●●●●●●
●
●●●●
●●●
●
●
●●
●●●
●
●
●
●
●
●
●
●
●
●
●
●●
●●●●
●
●
●●
●
●●
●●
●●●
●●●●●
●●
●
●●●
●●
●●●
●●
● ●
●
●
●
●● ●
●
● ●
●●
●
●
●
●
●
●●●●
●●●
●●
●●● ●●
●●
●
●
●
●● ●●
●
●●
●●
●
●●●
●●
●●
●
●
●
●●
●
●
●●
●●●●●
●
●●
●●● ●●
●
●
●●
●
●●●●
●
●●
●
●
●
●●
●
●●
●
●●●
●● ●
●
●●●●
●
●
●●●
●
●
●●
●●●
●
●
●●●●
● ●●●●
●
●
●
●
●●●●
●
●●
●
●
●●
●
●
●
●●
●●●
●●
●●
●
●
●●●
●
●
●
●
●
●
● ●
●
●
●●
●●
●
●●
●●
●●●
●
●●●
●
●
●
●
●
●
●
● ●● ●●●
●●●
●
●
●
● ●
●
●
●●
●
●
●
●●●●
●●
●
●
●●●
●
●
●
●
● ●●
●
●●●
●●●● ●●
●
● ●
●●●
●● ●
●●●
●●●●●
●
●
●
●●●●
●●●●● ●●●
●
●●
●●
●
●●
●●
●●
●
●
●●●
● ●
●●
●
●●
●
●
●
●●
●
●●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●
●
●
●
● ●● ●
●
●
●●
●
●
●●
●
●●●●
●●
●●
●
●
●
●
●●
●
●
●
●●●●
●
●
●●
●
●● ●
●●
●
● ●
●
●
●
●● ●
●
●
● ●
●
●●●
●
●●
●
●●
●
●
●●
●
●
●
●
●
●
●●●●
●
●
●●
●●
●● ●●
●●●
●
●
●●●
●
●
●
●
●●
●
●
●●●●
●
●
●
●●
●
●●
●●
●
●
●
●●●
●
● ●● ●
●
●
●
●●●
●
●
●● ●●
●●
●●●●
●
●
●
●●
●
●●● ●●●
●●●●
●
●
●
●●●●●
●
●●●
●
●
●
●
●●
●
●●●●
●
●●
●
●●
●
●
●● ●●● ●●
●
●●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●●●
●●
●
●
●●
●●
●
●●
●
●●
●●
●●●● ●●● ●
●
●
●
●
●●●●
●
●
●
●
●
●
●
●
●●●
●
●●
●●●●●●
●● ●
●●●●●
●● ●●●●
●
●●●
●
●
●
●
●
●
●●●
●●
●
●
●●●
●
●
●
●●
●●●●●●
●
●●●●
●● ●
●●●
●● ●
●
●
●
●●
●●
●
●
●
●●
●
●●●
●
●●●●
●●
●●●
●●●
●●●●●●
●
●
●
●
●●●
●● ●
●●
●
●●●●●●
●
● ●
●●
●●
●
●●
●
● ●●●
●
●
●
●●
●●
●
●●●
●
●
●●
●
●
●●
●
●
●●
●
●
●
●●● ●
●●●●●●
●
●●●●
●●
●
●
●●● ●●●
●●
●
●
●
●●● ●●
●●
●
●●●
●●
●●●
●
● ●●
●
●
●
●●
●
●●
●
●
●
●●
●
●
●
●
● ●●
●
●●
●
●●
●
●
●
●● ●
●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●
●● ●●
●
●
● ●●●
●
●
●
●
●
●
●
●●
●
●●●●
●●
●●
● ●
●
●●●
●
●
●
● ●
●
●●
●
●
●●
●●●●
●●
●●
●●
●
●●
●
●
●●●
●
●●
●
●
●
● ●●
●●●
●
●●●
●●
●
● ●
●●● ●●●
●●
●
●
● ●●
●
●
●
●
●
● ●●●
●
●●
●●
●
●
●●
●●●
●●
●
●
●●
●●
●
●
●
●●
●
●
●
●
●
●
●
●●●
●
●●
●
●
●●
●
●
●●●●
●
●
●●
●●● ●
●●●●
●●●
●
●
●
●●
●
● ●● ●
●
●
●
●
●
●
●●
●●●
●
●
●
●
●●
●●●●
●
●
●
●●
●
●
●
●
●●●●●●
●●
●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●
●●
●
●●
●
●● ●●●●
●
●
●
●●
●
●
●
●
●
●
●
●●
●
●
●
●
●
●●
●
●
●●●
●●●●●
●
●●
●
●
●
●
●●
●
●
●●●
●
● ●●
●●●●
●
●
●●●
●
●●
●
●
●
●
●●
●
●
●
●●●●
●
●●
●
●●
●
●
●
●●
●
●●
●● ●
●
●●
●●
●●
●●
●●●
●● ●●
●
●
●●●●
●
●
●●●●
●
●
●
●
●●●●
●●●●●●
●●
●●
●
●●●●●●●
●●●
●●
●
●
●
●
●
●
●●
●●●●
●
● ●
●
●●●●●●
●
●●
●
●●
●●●
●
●
●
●
●●●●●
●●● ●
●
●●●
●●
●●●
●
●●
●●●●
●
●●
●
●
●●
●●
●
●
●●
●●●
●●●
●
●●
●
●
●
●
●
●●●● ●
●
●●
●
●
●
●●●
●
●●●
●
●
●
●●●
●
● ●
●
●●●
●
●●●
●
●
●
●●
●
●●●●●●●
●
●
●
●● ●●●●
●●●
●●●
●
●
●
●
●
●●
●●
●
●
●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●
●
●
●
●●
●
●
●
●
●●
●
●●●
●●●
●
●●
●
●
●●
●●
●
●●
●
●●
●
●
●●●
●
●
●
●
●
●●
●●●
●
●
●
●●
●●
●●
●●●
●
●●
● ●
●●●
●
●●
●●
●
●●●
●
●
●●●
●
●
●
●
●●
●
●
● ●
●
●
●
●
●
●
●
●
●
● ●●●●●
●●
●
●
●●
●●●●
●
●
●
●
●
● ●
●●●●
●
●
●
●
●
●●●●
●
●●●
●●
●
●
●
●
●
●
●
●
●
● ●
●●●
●
●●●
●●●
●
●
●●
●
●
●
●
●
●
●
●
●
●
●
●
●●●
●
●●● ●● ●
●
●
●
●
●
●
●
●
●●
●
●●
●
●
●
●
●
●
●
●
●●
●●
●●
●
● ●
●
●
●
●
●●
●
●
●●●
●●●
●
●●
●
●●
●●
●●●●
●●●●●●
●
●●●
●
●
●
●
●
●●
●●
●
●●
●
●
●
●●●
●●
●
●
●●
●●
●●●●
●
● ●
●
●●
●
●
●
●
●
●
●●●
● ●
●
●●●
●●●●●
●●
●
●
●●
●●
●
●●●●●
●●
●
●●
●
●
●●
●
●●
●●●●
●
●
●
●●
●●
●
●
●
● ●●
●●●
●
●
●
●
●
●
●
●
●●
●
●
●
●●
●
●● ●●
●
●●●
●
●
●
●
●●●●
●
●
●●
●
●
● ●
●
●
●●●●
●
●●● ●
●●
●● ●
●●
●
●●●
●●
●
●
●
●
●●
●●
●
●●
●●●●●●
●
●
●
●
●●
●
●● ●
●
●
●●●●●●
●
●
●●●●
● ●●●
●●
●●
●
●●
●
●
●●
●
●
●●
●●●
●
●
●
●
●
●●
●
●●
●
●●●
●●
●●
●
●●●
●
●
●●
●●●
●●
●
●
●● ●
●●
●
●●
●
●●●
●●
● ●●●●
●
●
●
●
●●
●●
●
●●●●●
●
●
●●
●
●
●●
●
●
●
●●●●●●●
●
●●
●
●●●●●
●
●●●●
●●
●
●
●
●●
●●●
●
●
●● ●
●
●
●●
●●
●
●
●
●
●
●●
● ●
●
●●● ●●
●●●●
●
●
●
●●●●
●●
● ●
●
●
●
●
●●
●●
●
●
●
●●
●
●
●●●●●
●
●●●●●●
●●
●
●●●
●●●
●
●
●
●
●
●
●
●
●
●●
●● ●●●●
●
●●●●
●
●●
●
●●
●
●●
●
●●
●
●
●●
●●
●●
●●●
● ●●●
●
●●●●●●
●
●
●●
●
●●
●
●●
●
●
● ●●
●
●●
●●
●
●
●
●
●
●
●
●●●
●
●●●
● ●●
●●●
●
●●
●●
●●●
●
●●
●●●
●
●
●
●
●
●●●●
●
●
●
●●
●
●
●
●
●●
●
●
●
●
●
●●
●
● ●●●
●
●●● ●
●●
●
●
●
●●
●● ●
● ●
●●
●
●●●●●
●●
●●
● ●●●
●●
●●
●
●
●
●
●
●●●●
●
●●●●
●●
●
●●
●
●
●
●
●●●
●●
●
●●
●
●
●
●
●
●●●●●
●
●
●
●
●
●
●●
● ●●
●
● ●●●
●●●
●●
●
●
●●
●
●
●
●
●●●●
●
● ●
●
●
●
●
●
●●●
●
●●●
●●
●
●
●●●
●●
●
●●●
●
●
●
●
●
●●
●
●●
●
●●
●●●
●
●
●
●● ●●●
●●
●●
●●
●
●
●
●●●
●●
●● ●
●
●●
●
●
●
●
●
●
●●
●
●
●
●●● ●●
●
●
●●
●
●
●
●
●●
●
●
●●●
●
●
●
●
●
●●
●●
●
●
●●
●●
●●
●●
●
●
●
●●●
●●●
● ●●
●●
●
●
●
●
●●●●
●
●●●●
●
●●●
●
●
●
●●
●
●●
●●●
●
●●
●
●●
●●
●●
●
●
●
●
●
●●●
●
●
●
●●
● ●●●●
●●
●●
●
●
●●
●●●
●●●
●●
●●
●
●●
●
●●
●●
●●●
●●
●
●●
●
●● ●
●●
●●
●
●
●
●●
●
●
●
●●
●●
●
●●
●
●●
●
●● ●●
●
●
●
●
●
●
●
●●
●●●
●●
●
●
●
●
●●●
●
●
● ●
●●●
●
●●
●
●
● ●●●
●●
●
●● ●●
●
●●
●
●
●
●●
●●●●●
●
●
●
●
●
●●●
●
●
●
●
●
●
●●●●●
●●
●
●●
● ●●●●
●
●●●
●●
● ●●
●
●
●
●
●
●
●
●
●
●●
●●
●●●
●
●●●
●
●
●●
●
●
●
●
●
●
●●
●●
●
●
●
●
●
●●
●●
●
●
●●
●
●●●●●
●●●
●
●●
●
●
●●
●●
●
●
●
●●●
●
●
● ●
●
●
●
●●
●
●●
●●●●
●
●●● ●
●
●
●
●
●
●
●
● ●
●●●●
●●
●
●
●
●
●
●
●
●●●●● ●
●
●
●
●●
●●●●
●
●●●●●●●
●
●
●
●
●●
●
●
●
●●
●
●
●
●
●
●●
●
●●●●
●●●●●●●●
●
●●●●●●
●
●
●
●
●
●
●●
●●
●
●●
1e+02
1e+03
1e+05
1 2 5 10 100 1000Total reverse dependencies (+1)
Tota
l dow
nloa
ds
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
Single-project
code for a single paper or project or course
verbal/mathematical description < pseudocode< code blobs < package < GUI
o�-CRAN: maybe R-forge/Github/custom repository
�community of one�
target audience: authors, reproducers
no (or few) citations, no reverse dependencies
unmarkedAutocorr (Brooks et al., 2013), bio3ss3
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
Special-purpose
probably on CRAN, maybe R-forge/Github
maybe Journal of Statistical Software
target audience: specialists
some citations, probably no reverse dependencies
cpcbp (McCoy et al., 2006), mixstock (Bolker et al., 2003,2007), emdbook (Bolker, 2008)
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
General
CRAN if possible
lme4, R2admb, glmmADMB, bbmle, coefplot2
target audience: generalists
many citations, lots of reverse dependencies
lme4 (Bates et al., 2014), glmmADMB (Skaug et al.,2014-05-23), bbmle (Bolker and Team), coefplot2 (Bolkerand Su, 2011)
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
Users
wide range of knowledge:from�I just want it to work�to�I just sent you a pullrequest on Github�
(wider than in other �elds?)
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
Contributors
●
●
●
●
●
●
●●
●●
●
●●●
●●
●
●
●
●●
●
●
●●● ●● ●●●1
10
1000
1 2 5 10 20 50# of authors
# of
pac
kage
s
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
Outline
1 Introduction
2 PackagesPackage scopePackage communities
3 The soft side of software development
4 Ethics and incentives
5 Conclusions
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
Development dilemmas
�eating your own dog food�vs.developer blindness
Google-beta syndrome:when should you release?(lme4 version 0.99999...;cpcbp package)
backward compatibilityde�ng an API andsticking to itsemantic versioning
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
Development dilemmas
�eating your own dog food�vs.developer blindness
Google-beta syndrome:when should you release?(lme4 version 0.99999...;cpcbp package)
backward compatibilityde�ng an API andsticking to itsemantic versioning
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
Development dilemmas
�eating your own dog food�vs.developer blindness
Google-beta syndrome:when should you release?(lme4 version 0.99999...;cpcbp package)
backward compatibilityde�ng an API andsticking to itsemantic versioning
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
User friendliness/interfaces
how hard should you try to make your methods usable?(Dynamic Ecology blog post)
interface design:Reaction~1+Days + (1+Days|Subject)
Reaction~1+Days, random=~us(1+Days):Subject
model Reaction = Days;
random Int Days / type=un sub=Subject;
warning messages:sensitivity/speci�city, creeping nannyism
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
User friendliness/interfaces
how hard should you try to make your methods usable?(Dynamic Ecology blog post)
interface design:Reaction~1+Days + (1+Days|Subject)
Reaction~1+Days, random=~us(1+Days):Subject
model Reaction = Days;
random Int Days / type=un sub=Subject;
warning messages:sensitivity/speci�city, creeping nannyism
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
User friendliness/interfaces
how hard should you try to make your methods usable?(Dynamic Ecology blog post)
interface design:Reaction~1+Days + (1+Days|Subject)
Reaction~1+Days, random=~us(1+Days):Subject
model Reaction = Days;
random Int Days / type=un sub=Subject;
warning messages:sensitivity/speci�city, creeping nannyism
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
Outline
1 Introduction
2 PackagesPackage scopePackage communities
3 The soft side of software development
4 Ethics and incentives
5 Conclusions
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
Responsibilities
Do you have a responsibility toFix bugs?Provide features?Give advice?
Does the �no liability� clause of free software licenses(e.g. GPL §16) absolve us of moral responsibility?
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
A cautionary example
Mismatch between simpleGibbs sampler withequivalent WinBUGSimplementation
Bug (??) in relativelywidely used software;haven't found time todiagnose/�x it!
Contribution
Den
sity
05
1015
0.0 0.2 0.4 0.6 0.8 1.0
NWFLNWFL
0.0
0.5
1.0
1.5
SOFLNWFL
02
46
810
NWFLSOFL
0.0 0.2 0.4 0.6 0.8 1.0
0.0
0.5
1.0
1.5
SOFLSOFL
tmcmcwbugswbugsLwbugsLL
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
What's in it for you?
$¿¿¥ (NOT)software as commodity
citations?of package?of J. Stat. Software paper?of associated ecology paper?
visibility/reputation
good karma
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
Outline
1 Introduction
2 PackagesPackage scopePackage communities
3 The soft side of software development
4 Ethics and incentives
5 Conclusions
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
Conclusions
soft/community aspects of statistical/ecological computationare important
openness is good, but hard
best practices arenot well articulated(e.g. Wilson et al. (2014), other items from the SoftwareCarpentry reading list)
Introduction Packages The soft side of software development Ethics and incentives Conclusions References
References
Bates, D., Maechler, M., et al., 2014. lme4:Linear mixed-e�ects models using Eigen andS4. ArXiv e-print; submitted to Journal ofStatistical Software.
Bolker, B. and Su, Y.S., 2011. coefplot2:Coe�cient plots. R package version 0.1.3.2.
Bolker, B. and Team, R.D.C. bbmle: Tools forgeneral maximum likelihood estimation. Rpackage version 1.0.17.
Bolker, B., Okuyama, T., et al., 2003. EcologicalApplications, 13(3):763�775.
�, 2007. Molecular Ecology, 16:685�695.doi:10.1111/j.1365-294X.2006.03161.x.
Bolker, B.M., 2008. Ecological Models and Datain R. Princeton University Press, Princeton,NJ.
Brooks, M.E., McCoy, M.W., and Bolker, B.M.,2013. PLoS ONE, 8(10):e76389.doi:10.1371/journal.pone.0076389.
McCoy, M.W., Bolker, B.M., et al., 2006.Oecologia, 148:547�554.doi:10.1007/s00442-006-0403-6.
Skaug, H., Fournier, D., et al., 2014-05-23.Generalized Linear Mixed Models using ADModel Builder. R package version 0.8.0.
Wilson, G., Aruliah, D.A., et al., 2014. PLoSBiology, 12(1):e1001745. ISSN 1545-7885.doi:10.1371/journal.pbio.1001745.