I graduated from college in Computer Science a year ago, and am now working at a small web development company (me and one other developer, plus managers, customer service and tester). Until just before I started, there was no source control system. We're now slowly starting to implement SVN, but the other (senior) developer (henceforth referred to as Joe) insists that the only code that should be committed to our SVN repository is that which has been tested and approved as production-ready. That means that, on larger projects, there might be no commits for weeks at a time or more.
Is this a normal practice? It seems to me like we lose a lot of the benefits of source control, including:
- Fine-grained tracking of project progress
- Tracking of issues as they appear and are resolved
- Easily rolling back mistakes
- Easy backup of code, so we don't lose much if a workstation goes down
- Easier to identify exactly what code is running in which production sites, assuming we stamp revisions into executables as described here
- Easy collaboration (though we don't do any teamwork; it's all solo projects)
- Etc.
EDIT: I should emphasize that historically, there hasn't been any true teamwork in this company; just two developers working on separate projects. Also, a lot of the projects are small, so they can be completed in a couple of weeks. And the company has been in business for more than a decade and has gotten along fine without source control. Projects are usually completed within their estimated timeframe.