A Minimum Viable Project

First Collaborator

Collaboration as Learning

Sharing Data as Files

Sharing Data as Packages

pip install git+ssh://git@github.com/gvwilson/nitinat

Regression

Testing

Where Do Tests Come From?

  1. Working backward from failures
    • Jess creates a reproducible example (reprex) each time the code fails
    • Throw away input until the problem goes away
    • Then undo the last change
  2. Working forward from code
    • The coverage module shows which lines of code aren't tested
    • Jess constructs tests to reach untested lines
    • Coincidentally reveals some code that is no longer needed

Design for Test

Taschuk's Rules

What Can Reasonably Go Wrong?

Things Are Going Well…

…And Then It Happens

Communication

Discussion

Code of Conduct

Checklists

Passwords

Roles and Responsibilities

Person Roles Role Task
ghopper admin admin merge PRs
kjohnson admin, commit × admin assign issues
aturing commit commit publish posts
bwk commit commit file issues

The Hertweck Test

Score your project from 0 to 10:

Roles and Responsibilities

  1. List things people do to keep your project going in Column A.
  2. List people who contribute to the project in Column B.
  3. Draw lines to connect them. What roles can you identify?

Checklist

  1. Read through these checklists.
  2. What do you not do?
  3. What do you do differently?
  4. What do you do that isn't listed?
  5. What would you take out of these checklists to make room for more important things?