New / Modified artifacts should be reconciled with the Source Control database on a periodic
basis - Checkpoints.
In a team environment it is recommended that code that has been modified be checked in as frequently
as possible, and only in a stage where the code is working. Checking in code that has a compilation
error, or logical incompleteness that can affect application build ability, functionality or
stability is NOT recommended, especially if multiple developers are working with the same artifacts
in the repository.
For those specific modules that need to ensure that no parallel changes (branching of release) is
being done, it is best to exclusively check out the artifacts and leave a note that indicates the
reason for doing so, in order to communicate to other team members / developers the reason for the
exclusive check-out.
There are multiple source control platforms out there, PVCS, CVCS, CVS, Subversion, Bazaar,
Microsoft Visual SourceSafe, Microsoft Team Foundation Server, Rational Clearcase, PerForce, etc.
Irrespective of platform, it is essential to have a user-guide to your specific platform (more like
a cheat sheet - remember, quality not quantity) which you can share with developers to enable them
to effectively use the repository.
Furthermore, it is extremely desirable to incorporate role-based security into your source control
repository, by integrating with roles and users from Active Directory or LDAP / Samba to ensure that
you dont spend half your time administering users.
Subversion is one of my favorites and integrates well with Apache's mod_ldap to provide an excellent
Source Control solution, which is both time-tested and $CHEAP$. Integrates with Active Directory as
long as your domain controller allowes anonymous LDAP queries, which is the default configuration.
With VisualSVN Server and TortoiseSVN for Windows platforms, implementing Source Code Management is easy on a tight budget. Both these tools are Open Source. For companies with a Budget, they can purchase VisualSVN Server Enterprise, or even go to a more Advanced platform like Microsoft Team Foundation Server.