Ah work

Ah work, without it we would all be sane.

Today I found myself confronted by a colleague who was of the opinion that we didn’t need any kind of source code control. My immediate response was one of incredulity and downright bewilderment – “what sort of idiot would think to implement a computer system without source code control”, etc. Because to me this is a black and white issue. If we write computer programs, we put the source code under some kind of version control. Full stop.

Then I took a step back and looked at the actual situation. The person making this outrageous statement is not a programmer. He is not in IT, he is a senior manager in the finance division of the company I’m currently working for. He doesn’t know the difference source code control and a hole in the road – and he shouldn’t have to. That is one of the things that his company pays me (well, my employers) to worry about.

What I should be able to do is explain to him why he can’t get instantaneous bug fixes into production for his German subsidiary and why that is a good thing for his bottom line. To the casual observer the two things are not related, to those of us in the thick of it they are intimately acquainted.

Because the source code control system used by my confused user’s company is not very sophisticated the only way I can guarantee that the right programs are released to the right places at the right times is to batch them up. I then painstakingly check each and every program to make sure we are migrating the correct version in a bid to reduce mistakes. Mistakes like releasing a half finished program to the production environment that accidentally deletes his general ledger. Or maybe something really bad.

Because our source code control system is essentially manual we have to use several of my (very reasonably priced) hours checking each program as it is released to the different systems around the company. The short term cost of this rigourous and time consuming checking may appear outrageous, but the opportunity cost of not doing it is significantly larger.