19 January 2015

If you have ever watched the British show “The Weakest Link” you will have heard them user the phrase “Bank”.

The format of the show is that the rather formidable Anne Robinson sets questions to a panel of people. The questions range in complexity, and as they are asked the amount of winnings at stake increase.

However, this is no ratchet, get it wrong and you are dropped back to tiny stakes again, losing the streak the panel have built up.

At any point they are also against the clock. They can choose to interrupt with the statement “bank”. Then their potential winnings are stored, and although the stakes drop, they didn’t lose what they’d already won. A trade off.

The worst player is then voted off at the end of each round by other players. It is a game with some intrigue and backstabbing as players may vote off stronger players so they don’t have to compete with them later. But this is besides the point.

Players often looking daft if they could have banked a large sum and failed to get the next question. Money lost. Easy way to make the rest of the team want them off.

Why source control?

When writing code, it takes thought and effort to do so. Zero cost code does not exist. While making it readable and maintainable improves drastically your chances of building more on the code later, source control is the insurance policy. It has a small cost in time. Good tools may make this a trivial cost. When you’ve got something that does a bit more, doesn’t break other stuff, then its time to bank it.

Now if you make a mess of further changes or you break it, you have banked some of this work, you can go back to what you had only a short time earlier. If you bother to save often, make committing code changes early and often part of the same reflex.

I cannot count how many times it had saved my bacon. That creeping dread where you’ve changed too much in one hit and it no longer works or makes sense. Where you’ve not tested stuff since you started and would like to bring stuff in again more slowly.

When source control - like Git or Subversion is combined with a good way of testing your changes, you get to experiment a lot more with far more confidence. This can boost productivity and reduce having to do stuff a second or third time.

It is a good engineering habit. It keeps things clean, it keeps people disciplined and puts code where other developers see it. It is also a great shame that very few universities teach it, and there are still chunks of developers who have never used it.

blog comments powered by Disqus