Thursday, June 28, 2007

Love/Hate - Mgt/Tech

This is an insight from a while ago. First, tho', to all my manager friends (who, coincidentally, are all excellent managers): please don't be indignant until you've read this.

Historically techies and managers have always been opposed to each other. See Dilbert for an example of this meme's entrance into pop-culture. I think the two views are a little like this:

  • Managers see techies waste money by doing things in a roundabaout way. The solution to most problems can be solved in some much simpler way.

  • Techies see managers as demanding corners be cut to deliver to a timetable which sould never have been rigidly set in the first place.

  • Techies think managers don't have enough technical knowledge (little knowledge is dangerous, etc).

  • Managers think techies live in some other-world where time/money don't matter.



Now, I've worked in a company with (practically) no management, by design. The idea being that techies don't like management, so we won't have any. The, 'freedom of freefall', was often referred to. I didn't get on with it at all, and with a little distance between me and it now, I can think of reasons why.

I'm a techie, so I make a crap manager. I think about the perfect solution, and the best technical answers. I don't like administration or politics - too floppy, no real answers. I think managers see things completely diametrically opposite from this. Admin and politics are the 'game' and there is no such thing as a perfect solution - only one that is on time, within budget (or close enough given the 'game').

So, managers need techies to answer their problems - obviously. Techies also need managers to keep the admin and politics flowing while they formulate the answer. Techies need to be reigned in to budget and time constraints, but managers need to be reigned into the realities of answering the question.

Managers need techies as much as techies need managers..

I just thank god there are people willing to be management for me.

Monday, June 25, 2007

OO Typing

What is typing? Other than being a fundamental part of OO methods, it feels quite badly understood. I have two intentions here: to analyse the existing definitions and to define my interpretation.

Typing can be static, dynamic, strong or weak..

Ok, this was as far as I got.. I started in June and it's now October..

I don't think this is a lack of understanding on my part - simply that typing is so very fundamental to human thought. This basic-ness means we are trying to grasp the very core of human thought. Take one well oiled eel!..

A type is a pattern (by human standards). This is the nugget which links humans to typing in computing. Strong typing is boldly saying that one particular thesis is correct. It is a strong limitation of the field of possibilities, which is not a necessarily negative thing.

On the positive side there are a number of pre-judgements we can make (or a compiler might make) about some code. This can lead to efficiencies in code production and execution. However it generally tightly binds pieces of code together.

On the negative side, it strongly limits the ability of a piece of code to react in unfamiliar environments. This is the same as saying, "it generally tightly binds pieces of code together".

The reason I prefer stronger typing is that a piece of code can know what it is dealing with. The execution environment can know quickly if a call is incompatible or some coercion is necessary. Hmm, I need more thought because coding for the silicon is letting the tail wag the dog (these days).