- Keep things small
- Self-documenting variable names
- READMEs
- Comments
- Make 'interfaces' as though you're designing a public API with private implementation details
- List our user views / actions
- ERD
- Look at each view
- figure out sub-view components
- mock them up
- look at each action
- figure out 'the thing that will result'
- map out data flow
- the view components can be classes
- the actions can be methods
- the parts of those actions that you can split up, do