The best way to start a project from scratch is to:

  • plan your project's models and associations using a whiteboard
  • create your database schemas
  • migrate db
  • create controllers for models
  • create the views
  • DRY approach
  • Create tests immediately after db migration for integration testing
  • Create unit tests immediately after creating each re-usable component
  • Performing tests gives confidence about writing code later
  • Always create a test suite

Wrong things that can happen: breaking things when making changes best case for test suite: allows confidence for making changes, product works