No I’m not talking about IT security.

I’m talking about job security by information obscurity. It exists in any profession, but is particularly onerous in software business. If you write obscure code with no comment or documentation that “just works” (if it doesn’t even work, it’s called stupidity), and no one else in the world could maintain the code but yourself, you’re a master of SbO.

And even sometimes you can’t understand your own stuff. So you happily reinvent another wheel, and proclaim the extra honor of Security by Confusion from Multiplicity.

For a software company, SbO is one of the most dangerous things. Not able to fire you is the last of the company’s concerns. Sure you’ll demand hordes of guaranteed bonus and exponential raise, but the CFO should be good at playing financial tricks.

The problem is that productivity is hurt on a daily basis. Other developers can’t possibly make any sense out of your code unless they timidly ask you. And an M.S.bO is usually a Master of Incomprehensible Speech. You talk too fast, or too slow, or too loud, or too low, or monotonic like a metronome, or hysteric like a hyena. And usually with a heavy Indian or Russian or Chinese or Brooklyn or whatever accent.

And if probability forbids, an accident wipes you off the face of the earth, which leaves the world a better place to be in general, but the company in a terrible state of panic.

On a philosophical level, I think it relates to different strata of freedom. The lowest level is what almost everybody is stuck with: do whatever you want. So you think you’re free to obscure information.

However, you cannot hinder other’s freedom by your act of freedom. If half of the people realize this, Communism is realized. Other developer is free to get information on your code for whatever reason: they need to maintain it, use it, or simply study it for recreation. So you can NOT obscure information to hinder their freedom.

On the highest level, you sacrifice your own freedom to boost other’s freedom. If half of the people just think about doing this once in a while, we have heaven on earth. So you write plenty of comments and documentation, keep them up-to-date, write wiki and blog, call a tutorial session on your new library, open source it with BSD license.

I would then renounce my atheism and worship you wholeheartedly, my God of Code Freedom.

Advertisements