Since working for Acquia I interact with dozens of different client every day, and even though most use the Acquia Managed Cloud or Acquia DevCloud environments there are varying development methods and workflows used. I thought I would blog about my preferred workflow, then you can tell me about your.
So, this site is Drupal 7, hosted with Acquia Managed Cloud. All of my code is version controlled via git.
Any changes I do to the site I do locally on Acquia DevDesktop, these changes are then pushed to the master git branch which is then auto deployed on my staging environment. Once I have checked this I will push live buy dragging and dropping the stage code to production in the Acquia Network, this creates a tag in git.
All content is added directly on live, I can pull this back to staging within the Acquia Network, and I can replace my local copy from nightly backups.
As I am the only developer on the site all configuration via the Drupal UI I usually do on the production site. This is not big, or clever! I would advise using the features module, and the many add-on modules for features to save configuration changes on the local machine. These can then be pushed via git to staging, then to production. Anything not covered by features I would create a custom module with an install file and update functions. These update functions can make any MySQL commands or function calls needed to make updates. This can be tested on staging by running update.php or drush updb.
I think that covers most things, how do you do it? any questions?