I'm in the process of developing a new Drupal-powered website with two other developers and have struck a problem I'm hoping somebody has thought of / conquered before.
The problem
Normally, multi-developer website projects aren't an issue with CVS / Subversion and a staging server for your efforts. However Drupal is special in that much of the development isn't in writing PHP code per se, but in configuring an out-of-the-box install (+ some modules) from within the Adminsitration section of Drupal. You know, things like adding in content types, custom Flexinodes, taxonomies, etc.
Since all this configuration can quickly become complex and resides all within the Drupal database, I'm struggling with a way of managing 3 developers all working on configuring various components of the same Drupal website.
An example
To take one example, what if two developers want to test and configure a new taxonomy structure / term on their own sandbox versions of the site? Once their happy with the way it works, how do they then merge it back in to the main site? What happens if they two taxonomies conflict? What if you want to roll back some congiuration changes?
In a nutshell
In other words, the ease with which CVS can handle mutli-developer projects--with code being checked out, branched, merged and updated--is absent from the complex DB-based configuration that is required for a highly-customised Drupal website.