Guides to Good Practice

We strive to foster and support good practices for developing and disseminating open and reproducible computational models. Computational modeling is not a primary skill for most practitioners but instead a tool that we can use to better understand the emergent phenomena that arise from the complex adaptive systems that we engage in every day. If you are interested in improving foundational computational and data science skills, check out the Software and Data Carpentries organizations and look for an upcoming workshop near you.

Agent-based model development

  • Keep your models simple
  • Document your models using ODD or equivalent documentation protocol
  • Perform sensitivity analysis on your model variables

Some of the code and data management practices listed below are also described in greater detail in Good Enough Practices in Scientific Computing by Wilson et al. It is definitely worth a read if you would like to further explore these topics.

Code management

  • Use a version control system
  • Document all external dependencies (e.g., Docker, pip, packrat)
  • Strive for simple, well-commented, self-documenting code with meaningful variable names
  • Adopt or develop community documentation standards (e.g., ODD)
  • Adopt a consistent, self-describing directory structure for your code, data, documentation, and results
  • Archive your codebase in a DOI-issuing repository that provides citable URLs for specific versions of your codebase (Force11 software citation principles)
  • Provide example test cases and expected outputs

Data management

  • Preserve raw and intermediate forms of data
  • Document all data cleaning and processing steps
  • Script your data analysis as opposed to manually munging an Excel sheet
  • Archive your data in a DOI-issuing repository that provides citable URLs for specific versions of your dataset
  • Create tidy, analysis-friendly data