- Introduction
- Avoid the Nightmare - Control Your Configuration
- Daily Backups Are Your Friend
- Effective Version Control
- Simple Version Control Using RCS
Avoid the Nightmare - Control Your Configuration
Once you start to see the extent of the problems with versions that work differently on different machines, you can be forgiven for asking yourself "Why did I ever become a software developer?" Unfortunately, once you get into the mess, getting out is really difficult. You're going to spend a lot of time with a puzzled look on your face, trying different options until eventually you discover what went wrong.
Rather than spend time learning strategies for digging yourself out, I think it's much better to take the time to learn how to avoid these problems in the first place:
Establish a baseline configuration. Make sure that if all else fails, you can always restore your development machine to a known state. Many teams do this by having a "standard image" that's installed onto all development machines. This ensures that any new machines can be quickly configured and if something goes wrong with a existing machine it's easy to revert to a known state.
Whenever you install anything new, do lots of testing. Are you in the habit of downloading the latest and greatest versions of tools? Whenever you download something, do a complete check to make sure that everything else still works. If just one shared library is changed, lots of other things may break. When something does break, don't panic; that's what the baseline configuration is for.
Create a new baseline whenever you find a new configuration that works. A baseline is not much use if after reverting to the baseline you have to download a whole set of tools and install updated versions of applications from CD. Outdated baseline images are just a waste of time, since it's easy to lose a day or two while you install and configure all the applications and tools that weren't part of the baseline image.