We have a number of client sites which are pretty much always evolving so we often find ourselves in a place where we're adding new structure and content to a site and trying to adjust the existing structure and content whilst the client may also be publishing new content or editing existing content!
Previously we've approached this using a number of different methods:
1) Creating a 'dev' server on which we carry out the development but we then have to mirror all edits and amends to the live server at a later date to avoid trashing any new content on the live server.
2) Working new developments into temporary 'template groups' and 'channels' and then adjusting the template group names and channel names accordingly once we're done.
3) Using conditionals in live templates to allow a logged in admin to preview changes without us having to resort to a full staging server.
There has to be a better way to do this, some way to marry ongoing site development (changes to templates, sections, fields and content) with a database full of live changing data.
Any ideas? I would be interested in solutions for both EE1.x and EE2.x.
Thanks in advance for your time! :)