Provide learning objectives

Our goal is for students to learn to follow best practices, not merely
be familiar with rails. This forces us to emphasize the meta-work.

The four rules of simple design help a budding developer learn
judgement. JB Rainsbergers decomposition from 4 rules to 2 provides the
most concise explanation for these rules that I've found.

Github flow is the baseline for remote collaboration. If you're not
branching and submitting patches your going to have a hard time working
as a distributed team.

I've yet to find a good, concise explanation of feature and unit
testing. Maybe I'll write one.

Documentation is an underrated skill. It becomes even more important on
distributed teams. Getting students familiar with YARD and writing
documentation for their public methods gets them thinking about the
behavior of said methods. It will also help us debug their thinking.