I've heard conflicting philosophies on this issue - or specifically, two conflicting philosophies.
One is to check in the code as soon as the change is complete, so that your co-workers can see the change and to minimize any merging that has to be done when putting a build together.
The other is to not check in any code until you are certain that you are ready for a build, so that if a problem is found, you can address the issue as quickly as possible.
Whether or not one of these is correct, what is a good guideline for knowing when you should check in source controlled code?
This question suggests using branches to resolve this issue, but our version control (ClearCase) doesn't offer branching - so what option do we have for version control policy?