Introduction

This handbook describes best practices and guidelines for project management, organization, modeling and programming we aim for at EHA.

This is a living document. To make changes, just click the edit button () at the top of the page. It will take you to the source editor for the chapter on GitHub, where you can make edits and submit your changes. Be sure to commit major contributions to a new branch and open a pull request.

In general, we aim to produce sound analyses that are:

  • Self-contained
  • Well-documented and communicated
  • Easily reproducible
  • Sharable
  • Version controlled

Together, these attributes help assure that our work is correct, can be built off of and extended, meets requirements for sharing and publication, and can be continued through staff turnover.

The tools we use to accomplish this are mostly, but not exclusively, based around the R programming language and git version control. Other teams at EHA use other tools (e.g., the technology team mostly uses Python and Javascript, much of our work with partners is MS Office based).

The guidelines in the document represent an ideal we aim for but to not always attain. Remember:

  • Best practices are always evolving.
  • Don’t let the perfect be the enemy of the good.
  • Other teams and external partners have different workflows and we adjust as neccessary to collaborate.
  • Our goal is to do good science to advance conservation and human health, not be slick programmers.

You can find some slides from a previous presentation on this topic here.

The philosophy and guidelines in this document owe an enormous amount to the work of the Software and Data Carpentry and rOpenSci organizations, and the work of Hadley Wickham and Jenny Bryan. You’ll find many links to their work in this handbook.