Publication Date: 2011-06-26
I didn't realize that professional civil servants could be as literal minded as IT professionals. Humour is an odd thing. I wanted to laugh and cry at the same time last night. (This isn't laughing until you cry; this is the mix of sadness and an activated, twisted sense of humour.)
At the time of writing Maher Arar is in the midst of a public inquiry as to why he was sent to Syria instead of Canada from the US. The Americans are quoted as saying, "We are ready to give you back Mr. Arar on the condition that you bring him back to Canada, you incarcerate him, you make charges against him." (See: http://www.cbc.ca/story/canada/national/2005/06/01/arar-050501.html)
So the dork Canadians say "No, the Canadian Charter of Freedoms does not allow us to do what you're asking. We do not have proper grounds." It isn't much of a leap of logic, common sense, or beyond the brain power of a mollusck to think that the Americans would subsequently ship Arar off to Syria (or worse, Guantanamo Bay, Cuba). Again, even the least well educated invertebrate would know that Syria is a bad place.
So the utter lack of being human led to this mess. Here's what I'd have said to American officials. "Hi. Sure, we'll lock the bastard up. No problem. Give us details of why you're holding him. Great. Send him over." Then you lock Arar up in the nicest jail you have, give him a lawyer. The lawyer will say "these are ridiculous charges." Then after what might have been minutes of deep thought (about what's for dinner) the charges are dropped. When the US calls and says, "you let this guy out," I'd say, "You know, bugger, we had to obey the law here. Nothing I can do."
So now, at about the halfway point of this article, you are wondering what this has to do with IT. Imagine how many times IT professionals receive specifications that were clearly written in haste, while thinking about other things, and by someone who's never written a specification before. Your choices are code/implement total crap or actually think about what the hell the spec is trying to achieve.
The design of a system may call for 27 steps to enter a transaction, but good design principles tell you that a more streamlined approach is better. The Charter of Rights is designed to protect people from inhumane treatment. Sending someone to a Syrian jail doesn't meet that principle.
The design may imply a database design that has primary keys with embedded meaning. SA001-95 is the South American parts department's branch 95 account may be the account code they want, but it makes a bad primary key for a table. You are a total IT professional and you know that and you are going to do the right thing and create a proper key field because you wish to avoid the horrors to come. And it's not unethical, because if you are smart, the client will have the ability to see the goofy account codes of old, but underneath there will be a primary key that is immutable, unique, used only once and utterly bereft of inherent meaning. The maintenance programmers in the future will see your name on the commented code and think, "thank goodness."
The point of course is to be mindful of the implications of your actions. Are you being anal for the benefit of the specifications objectives? Excessive attention to excellence might make you lose site of the goal - and land someone in a Syrian jail.
Robert Ford is a Vancouver consultant whose downtown office mates have asked that he stop watching the news. Robert@quokkasystems.com