Check In Early & Often
Perhaps you’ve heard the mantra “check in early and often”. If you haven’t allow me to explain, this relates specifically to developers and the need to check in your active code into the source code repository as early as possible, without it breaking anything. It surprises me to find developers working in supposed Agile environments who work for several days or weeks before checking in code.
Checking in early does not mean checking in broken code. As Jeff Atwood, from Coding Horror, states “there’s a big difference between broken code and incomplete code.” Code should be checked in without breaking the build and without breaking basic functionality. The purpose of getting all the developer’s code in the development branch as early as possible is to allow everyone to work through conflicts when they are small and know what others are working on.
Having seen organizations that waited until the end of a development cycle to check in code, I can attest to how painful it can be. Two weeks of development by a hundred engineers can take days to fix all the merge problems. If you are in this trap, get out, if you aren’t there yet avoid it. Teach your engineers why, in a collaborative development environment, it is important to collaborate throughout the cycle and not just at the end.