February 10, 2009
Defensive Programming is usually thought of as a software quality technique but I have another use for the term. Defensive Programming happens when you are dealing with two or more modules of code that interact with one another in some way and the modules are written by different developers. That’s the programming part. The defensive part happens when something is wrong and each of the developers blames the other for the as yet unknown problem because they are covering their ass, have low self esteem, are lazy, are arrogant, you fill in the blank. This drives me nuts. Let’s just collaborate to solve the problem. Software has bugs. It’s fundamental. If the defensive programmer spent half of the time they spent pointing the finger at someone else fixing bugs in their own code we’d all be better off.
I work for a big corporation. Well I don’t know if its really big when compared to other corporations but its much bigger than the little company that I used to work for that was bought by the corporation that I now work for. Be that as it may in the past I’ve made disparaging remarks about the corporation that I now work for and corporations in general. It’s kind of fashionable to do that kind of thing if you’re an OSS Linux tech geeky kind of guy. Corporations Evil!!! Just read about Microsoft on Slash Dot and you’ll get this gist of what I mean. Lately I’ve been appreciative of the corporation I work for. There are several reasons for this change of attitude. One of them is that I am still employed. I’ve got an open position in Jersey and I see stacks of resumes from people that just a few months ago were working at big investment banks and hedge funds that have imploded. Comparing these pedigrees to mine is like comparing a Westminster Dog Show Best of Breed to some mutt in a dog pound. Suffice it to say I am glad I still have a job. The other reason that my attitude about the big corporation has changed is largely philosophical. I think that in an increasingly crowded world the ideal of individualism is outmoded or maybe it would be better to say that the priority placed on individualism is excessive. I think more priority should be placed on utilitarianism. The good of the many outweighs the good of the few. The big corporation is comprised of many individuals working together for the good of the corporation and it’s shareholders. In return for this work the individuals are rewarded. Some individuals are rewarded to a disproportionate degree but all individuals are rewarded. Sometimes a few individuals are discarded but this is generally done for the benefit of the corporation as a whole. The good of the many outweighs the good of the few. Sometimes dealing bureaucracy in the big corporation is a bit frustrating when compared to doing things in a little start up but it stands to reason that one has to be more collaborative when dealing with many more people. As long as the bureaucracy doesn’t become a reason for people to not do things or to delay doing things or to shift responsibility it’s really not much of a problem. So I try to be a good little worker bee anonymously doing my part for the greater whole. I get my allotment of honey and all is good.