As professional software developers we look at lots of different ways to improve our craft. One of the ways I have tried to improve my craft over the last couple of years is to keep my check-ins as small and as focused as possible.
Here are just a few of the benefits of consistently small check in:
- Continuous Integration – One of the core tenants of XP is Continuous Integration (CI). Continuous may be a bit of a misnomer since we are only actually integrating our code when we are checking it in. The closer we get to continuously integrating our code the better. The longer that we take between check-ins or the larger our change sets are the more risk that our changes are going to break the build or disrupt what someone else is doing.
- Easy (almost non-existent) Merges – I don’t know about you, but I hate merges. The great thing about only checking in when a single change is being made that touches a small amount of code then the odds that you are going to have to merge your code with somebody else’s code is very unlikely.
- Ability to be agile – Agile is a term that can be quite overused. However, I am literally talking about being agile. Writing a small amount of code for a specific purpose means that we are constantly writing code towards our target product.
- Quick Feedback – When we are writing code in small increments that means we get quick feedback. Code reviews can take the form of discussions around little decisions that we made. Testing can be done on the simplest parts of our code. We see a passing build multiple times per day, not once per week.
- A “Bus Policy” for our laptops – Have you ever held up your team for days while your computer got rebuilt? I have and it isn’t fun. If you check in often, then you are never sticking your team with that much of a liability. If I have an hour’s worth of work on my machine and it dies then I cost my team an hour – no big deal.
- More Accurate Comments – One of the most interesting things I have noticed is that check-in comments all of a sudden have a lot more meaning. Rather than trying to figure out how to summarize my work for the last month in 2 sentences or less; I now find I can summarize my last 15 minutes worth of work into a single sentence quite easily. Additionally the comment actually reflects all of the work that I did.
In the next installment of this series I will be examining a couple of techniques that we can use to keep our check-ins small and quick.