Hmm, as usual, I have a verbose answer because I have a varigated strategy that has a few points and both advantages and drawbacks... :rolleyes:
I develop locally on a system that is more/less identical to my production servers (except they don't have a GUI 😉 )
Developed pages/scripts are transferred manually to production machines after testing (well, usually after testing ... 😃 )
Server A backs itself up every other day to itself, and on opposite days to server B, a vice versa. However, there's been trouble recently, as Server A has so much content now that it's apparently timing out or overloading the network (10Mbps cable from --- [ISP]) during the wee morning hours.
In theory then, at least, I have a triply redundant setup, but with the new problems, that isn't necessarily so. I had been working towards using CVS, similar to goldbug's strategem, but the last time I rebuilt Server A (just to get a larger HDD, no real issues 😉 ), I didn't keep the repo, as it wasn't that big of a deal, yet. I'd still like to go to that system, though. The day is approaching when I'll want to have more than one person doing the coding, if the $$ can handle it.
I guess we could start talking about design issues. The more modular something is, the easier it should be to change, right? I'd think that would apply to either OOP or traditional functionally oriented techniques.
I've certainly found myself attempting to make things more reuseable as I've "grown up" in PHP... Yeah, I'm about == to a 3 year old, now, methinks... 😃