Thursday, November 25, 2010

Parkinson's law

Sorry - I just can't help but quote again from the master himself.  This is his classic essay on the tendency for the number of administrators to increase whether there is work for them or not:
We may distinguish at the outset two motive forces. They can be represented for the present purpose by two almost axiomatic statements, thus: (1) "An official wants to multiply subordinates, not rivals" and (2) "Officials make work for each other."

To comprehend Factor 1, we must picture a civil servant, called A, who finds himself overworked. Whether this overwork is real or imaginary is immaterial, but we should observe, in passing, that A's sensation (or illusion) might easily result from his own decreasing energy: a normal symptom of middle age. For this real or imagined overwork there are, broadly speaking, three possible remedies. He may resign; he may ask to halve the work with a colleague called B; he may demand the assistance of two subordinates, to be called C and D. There is probably no instance in history, however, of A choosing any but the third alternative.

Killing passion

Searching for a favorite painting, I found this article on diseased management in IT.  It's a nice article and well written, but better still, it pointed me to  Cyril Northcote Parkinson and his very funny essay on injelititis.  A person suffering from injelititis is "an individual who combines in himself a high concentration of incompetence and jealousy".

The great sage Parkinson recommends three potential treatments: Intolerance, Ridicule and Castigation.  My favorite quote from a very enjoyable essay:
Infected personnel should be dispatched with a warm testimonial to such rival institutions as are regarded with particular hostility.

Passion

The engine of open-source coding is passion.   I ask, seriously, it that not obvious?  Kill passion and you kill the project.

I was very struck by this article by Ron Jeffries.  I found it in a collection of writing about software.  I can't help but quote from the end, with passionate agreement:

That’s what I think this movement is about: making a difference. That’s what I want it to be about: making a difference.

Here’s what I try to be, and what I like to find in those around me:
  • I want to stay the course with the people who converse with me, not just drift away as if no longer interested.
  • I want to argue passionately without rancor, let you call me names in the morning and drink in peace and affection with me that night.
  • I want to hold others in the true respect that allows them to be what they are, act like they will, while working as hard as possible to influence them to try other things.
  • I want to give my ideas away, confident that my little gift will come back to me manyfold.
  • I want to try every way I can to communicate with my colleagues, to get my ideas across and to get their ideas back in return.
  • I want to honor the passion that people feel, to honor the strongly held beliefs and ideas of others as much as I honor my own
  • I want to crash-test those beliefs and ideas hard against each other, confident that even better ideas will come out of the testing.
  • I want to assume that we do this from love, that we care about each other, and that we welcome the crackle of real passion, real work, the real interaction of ideas.
I do my best to be that kind of person. And I want to be with other people like that. Thanks for being around.

Tuesday, November 16, 2010

The 0SAGA software model

I just made up this model.   It seems like a good summary of stuff that has worked for me.

The idea is that any piece of software goes through the following 5 stages in strict order:
  1. 0 - zero - there's no software, there's just a programmer thinking hard about it but never getting anywhere.
  2. S for 'sucky'.  The software is embarrassingly bad but it does something.
  3. A for 'adequate.  The software is still fairly bad but now it's stood up to  enough beating to be able go into bars without hiding in the restroom.
  4. G for 'good'.  The software has started to look a little like the thing it was meant to be.  That probably doesn't have much relationship to the thing the programmer was thinking when when they were thinking hard about it at stage 0.
  5. A for 'awesome'.  I personally can't say much about this stage but I believe that it exists because I've used some awesome software.
The point is that there is seems to be only one path to A for awesome, and that goes direct through S for sucky.  Hence the 0SAGA motto - 'shoot for sucky'.