One of the most remarkable articles that I read when I started to learn Drupal is The Development -> Staging -> Production Workflow Problem in Drupal (http://www.developmentseed.org/blog/2009/jul/09/development-staging-production-workflow-problem-drupal), by Development Seed. Dated back to 2009, yet it still outlines, with such clarity, one of the most important challenges in Drupal projects; the fact that although a part of Drupal's configuration resides in the database and not in code, these must evolve together under a version control system such as Git.
This quote in particular really did hit me:
"The ideal development workflow involves communication in both directions. Content needs to be migrated upstream to staging and development servers, and configuration needs to be migrated downstream to staging and production."
Let's dissect this:
Content needs to be migrated upstream to staging and development servers...
This means...