Might seem like common-sense, but learnt the hard way!
1 Build Inequality
a) What is working on one build might not work on another. We must retain information regarding important working builds to facilitate later investigation!
b) Some codelines are important than others. 10 units of work on a build close to the mainline is probably worth more than 20 units of work on a distant line.
2 Fix Early
Find errors and fix problems at the earliest. Yes, getting things working your build is very important.
3 Merge Early
Get close to the mainline, at the earliest possible stabilization point.
4 Merge And Fix Early
Find errors and fix problems on a build that is as close to the mainline as possible. To paraphrase a proverb, “Early to merge and early to fix makes the release smooth and nice!” ?
5 Useful Artifacts
If an artifact is worth keeping, save it. If it is not worth keeping or it is not likely to be used, remove it.
Documentation: every bit helps, and a little bit of documentation at every step doesn’t hurt!
Hopefully I will be writing more on each of these points later.