How can I speed up site development with a particular CMS if I need to build a lot of sites? Should I prepare a few different solutions based on barebone CMS but with pre-built components and deploy them if similar site is being requested for production? Or should I use some solution generator like Joomla-Builder? Are there any tools for collaborative development of CMS-based sites?
Version control helps with collaboration. I use svn. A good bug tracker like eventum keeps everyone in the picture.
For tasks I perform over and over (like install and upgrade) I capture these tasks in a build file and run it with Apache Ant.
Drupal has install profiles which don't have much documentation but are very helpful once you get the hang of them. This enables you to switch on various components as you see fit. I also run import scripts through them which grab content from CSV files.
Found good a description of Drupal profiles with examples: http://drupal.org/node/67921
It should be Helpful when praparing custom Drupal builds for one's own site builder's toolbox with pre-installed components. Don't know if there is such a thing in Joomla.
If the sites you deliver are quite heterogenous in their funcionality it might be efficient to work with something like Joomla-Builder or even JoomPack. JoomPack is a great tool to let you customise your Joomla installation including all extensions, translations, custom parts, etc. and install it all at once using only the normal joomla installer interface.