1. Insure that your build process is applied to a working set of code. In other words, don’t force developers to check in code prior to doing builds. Doing will likely cause developers to check in buggy code and cause issues with other developers.
2. You still want developers to check in code frequently. This is a management process, not a version control issue. If the tasks assigned to developers can be completed in a short duration, say two days max, then you can force developers to check in code when a task is complete. Scripts can be used to monitor the Repository for developers that have not checked in a defined period of time.
3. Backup your repository. Daily if not even more frequently.
4. Develop a simple nomenclature on what information should go into the comments/properties of a code checking. Best case – if you’re working with SW requirements w/ ID’s, then check in code with the IDs of the requirements (or bugs) that are being addressed.
5. Ask developers to do minor code reviews whenever they update their sandbox. See Simple Code Reviews Using Eclipse.
6. Tag your releases. If your staging a release, say through a QA process, then you can tag the release with a convention that includes the status (QA, PROD, etc.) and a version number for the release.
7. Whenever you cut a release to Production, archive the release and any executable builds. Although you can get the source straight from version control using the Tag, it’s more convenient (especially for admins!) to have the releases archived in a folder outside of version control.
8. Make sure you have some form of release notes database (or spreadsheet) that lists the features/bugs with the release Tag and the date/time of the release.
9. Give developers the freedom to merge files. In most situations, merges are additive and the merges can be completed using tools. Even if the merge becomes complex, it’s not a bad thing for developers to manage the issue by themselves via dialog and code review (tip #5).
10. Keep production parameters such as URLs, user names, passords, etc. outside of version control. Files with the production values for these resources should be managed by the Production team. The build process should have mechanisms to load in configuration files with these values.
A couple of things that you can avoid:
a) Don’t worry so much about branching scenarios. In my experience, it’s better to work out branching and merging branches when you’re faced with that specific need.
b) Nightly builds are nice, but may be overkill for most teams. Understand why you need the nightly build and how you’ll use it before scripting this out.

























Leave a Reply