Archive

Archive for September, 2002

Repeatable Processes

September 26th, 2002 No comments

Karen asks about the importance of repeatable processes. The biggest problem I see with most formalised processes is the inability to change them. Getting CMM or ISO or whatever certification often only makes sure that you can never improve your processes, or that it is at least very difficult to. Karen once told me a story of a previous employer where the QA process involved handwriting a test plan at each QA stage. Notwithstanding the issues as to whether the test plans might have been expressed better in code than in English, it would clearly have been better to even be allowed to type the plans rather than hand-writing them – but that’s not what the process documentation stated.

At the higher levels of CMM there is an expectation that you will be constantly refining your processes, but as most companies seem to go for CMM solely to allow them to pitch for a job that requires it, and most of those requirements are only for level 2 or 3, which promote (or at least make it easier to prefer) rigidity over fluidity, process seems to more often be a straight-jacket than a useful framework.

For those who still believe that process equals quality, I used to relay the mythical tale of the company with its ISO quality seal for making concrete lifejackets. But I now prefer the story of the law firm whose ISO-certified policy includes the complaints procedure stating: “All complaints received will be circulated to three random members of staff for ridicule, before being discarded unanswered”.

Tags:

Provo’s ‘no wrong doors’ policy

September 25th, 2002 No comments

I wanted to link to this just because of the title. But it’s actually quite interesting:

As implemented, there is a single number and customer service center that customers use to get answers to all their city questions and help with any problems.

Most Government things in Belfast require you to phone about 4 different numbers before you get the wrong people. I’ve a hideous story about a speeding ticket that I’ll tell once it’s finished. I keep wanting to write it up, but it keeps getting more and more insane…

Catching Up – Email and Blogs

September 22nd, 2002 No comments

It used to be that when I returned from a week away, I’d have thousands of emails to work my way through – even after deleting spam. I’d also have a few web sites to visit to catch up on news.

These days it’s reversed. I was pretty much done with my mail in an hour or so, but it took me all morning to catch up on my weblog reading.

There’s two main reasons why this seems to have happened.

Firstly, I had virtually no work related mail to read. There’s only 4 of us working for Kasei, and we were all at the same conference.

Secondly, I don’t read anywhere near as many mailing lists as I used to. I used to keep up with technical topics via mailing lists. This took a lot of time, even on lists where I delete entire threads without reading them, based on the subject line.

These days, I tend to get the same information (or at least the highlights) from the weblogs I read. I still have to skip over information I’m not so interested in – but not anywhere near as much of it. And I also get a lot of pointers to stuff that would never have appeared on tightly-focussed mailing lists.

I can’t help but fear, however, that unless I refine this approach some more, this time next year I’d take a full day to catch up (even in skim mode). I’m adding 2 or 3 people to my blogroll every week on average, and only dropping people at the rate of 1 every couple of weeks.

When I read them “in real time”, via my regularly refreshed “last updated” blogroll, it’s not too hard to keep on top off. But when you don’t read for a week, almost everyone has updated, and it’s not easy to handle.

I have no idea what the solution is.

Tags: ,

Da Men Are Back In Town

September 22nd, 2002 No comments

I should mention that, for the first time in my life, I managed to go into the Ladies bathroom to relieve myself. You see, of all the words I looked up and learned before I set foot here, I forgot “Man” and “Woman”. I now know that Damen is not German for “men”.

What Casey neglects to mention in this post is that, when relating the story to us, he explained it as “I went to the wrong bathroom, because I needed to lick a German”.

He later claimed that he actually said “because I didn’t know a lick of German”, but he also tried to claim that “know a lick of” was a very Irish (or Ooirish?) phrase, so I’m not sure I believe him.

Tags:

How fast can you type?

September 22nd, 2002 No comments

Whenever I teach a Dreamweaver or JavaScript class, few of the students can type. I usually spend a minute or two trying to convince them that being able to type will not only save them time and improve their accuracy, but will totally alter their relationship with the computer, giving them control and confidence that they currently lack. I don’t know how a two-finger typist could even consider programming.

Yet I know that relatively few will invest a small amount of time and money to get the big payoff. The willingness of human beings to act contrary to their own best interests never ceases to amaze me.

We were recently discussing the same thing with regards to programmers and editors. A programmer spends a huge amount of their working day interacting with an editor of some description. Most of the programmers I know use vi. But most vi users I’ve encountered learn more than the basic keystrokes and commands needed to get their work done – often using 2, 3, or even 10 times as many keystrokes as needed (I’m always shocked how many vi users will ‘right arrow’ their way to the end of a line, and then hit ‘a’ and ” to start typing a new line, and who are then amazed when I tell them that not only will ‘A’ start appending to the end of the current line, but that ‘o’ is even easier than ‘A’.

Of course, my own ‘vi’ knowledge is a little rusty too. I learnt most of what I know 10 year ago, when it really was ‘vi’, not new-fangled clones like ‘vim’. I’ve gladly switched to ‘vim’ a long time ago, mostly for multi-level undo, and syntax highlighting, but I’d never really gotten around to learning all the new fancy things you can do.

Now I’m trying to learn one new command a day. I’m not totally convinced by folding yet, and it’ll take me a while to get used to visual selections, but ‘gq’ is nice, and I’ve got great plans to integrate ctags with our configuration management system.

I wonder how many employers though would be prepared to send their employees on an ‘Advanced vi’ course. Somehow I don’t think there’d be very many…

(I got 84wpm on the test – but mostly because it doesn’t allow backspacing. My typing style involves lots of mistakes which are corrected very quickly!)

Tags:

Perl Aikido

September 7th, 2002 No comments

I’ve spent the last two days in Damian Conway’s “Advanced Module Implementation” course. In it he steps through, line by line, the core code of his Attribute::Handlers, NEXT, Class::Delegation, Inline::Files, Filter::Simple, Perl6::Variables, Perl6::Currying, Hook::Lexwrap, Regexp::Common, and, yes, Acme::Bleach modules to show lots of different ways in which to build modules. And twist your brain in lots of painful ways along the way.

A key refrain along the way is that of Perl Aikido – having enough mastery of your craft to know how to get lots done, not by writing lots of code, but by doing just the right thing at the right time. Most of these modules are pretty much implemented in less than one screenful of code. And whilst some of it is insanely devious (such as the infamous goto , "$imposter" } }; line), much of it is just piecing together straightforward things in an unusual way (the much more subtle deviousness of Regexp::Common that doesn’t look at all scary until you try to follow just what is actually going on).

I’ve recently been noticing a glitch in my theory of extraneous code. Almost everyone knows that a beginner in any programming language writes far too much code. They don’t yet know all the idioms of the language, and try to replicate the approaches they know from other languages, even if this language has a built in manner for doing this. As you get better at writing the language you learn the better approaches, and your code gets shorter. However, I no longer think there’s a simple progression from this point to the ‘master’ level where modules like the above ones can be written in one screenful of code. I think that ‘expert’ programmers, still on their way towards ‘master’, actually revert to writing much too much code again. When faced with a difficult problem, they know enough of the nasty things they can do to attempt to stomp through the problem. Ironically someone with less knowledge would probably not attempt this, and try to find a way around the problem instead. An expert may have lots more tools in his toolbox, but it takes a master to know exactly which one is best for every job.

The Purpose of Education

September 1st, 2002 No comments

Stupid educationists have invented for the educational process the profoundly inadequate term “knowledge transfer”, suggesting a uni-directional stream of knowledge towards an accumulating recipient, who becomes monotonically more knowledgeable. I consider it a caricature at best. The trouble is that it may have stuck in some of your minds, thereby creating an extra barrier for the unlearning process. It makes some people totally unprepared for the recognition that among what they have acquired so far is possibly a lot of junk that is more a burden than an asset and that they should be happier without. One cannot be cautious enough with the choice of one’s past.

Introducing a course on mathematical methodology, Edsger W. Dijkstra

Brian and Stephen are having a discussion on whether the role of education should be to teach you information, or teach you to think.

It is impossible to know how to think, without having enough accompanying knowledge to which this can be applied. However, it is possible, and all too common, to have the knowledge without knowing how to think about it.

The question, then, is when the ‘thinking’ should be taught. In my educational history, I think there was an undercurrent of acceptance of the distinction between the two concepts, but it was too often muddled.

For example, when I studied English Literature for O-Level, it was never made clear what I was actually meant to know or do or write about. I suspect that I may have found the subject a lot more interesting, and also done much better at it, if it had been taught (and examined) more as “the study of the history of interpretation of English Literature”.

Then we could have seen how literary criticism actually worked, and how it evolved, and how it was applied to the sorts of works we were reading. And the best pupils, those who were likely to continue the subject to A-Level or University Level, would have been the ones who were able to add their own thoughts and ideas onto the top of this. Whereas the rest of us, who were only doing the course because it compulsory, would have at least learnt something about the area, and have gained enough knowledge to be able to achieve a decent grade, even if we weren’t able to contribute anything interesting ourselves.

However, it seems that we were only really expected to contribute our own thoughts, without any knowledge of how to do so. For example, we “studied” Animal Farm (for some definition of “studied”). We weren’t taught anything at all about the normal analysis of it – we weren’t even taught that it was a political satire! To us it was just a fable of human nature. No matter what approach you take to education, this surely cannot be it.

Although this is the extreme case, much of my education was similar. You were taught a viewpoint, but not told that it was only that. It was if everyone in the world agreed on a certain interpretation of Macbeth, or of the Industrial Revolution, or of whatever the things were that we were supposed to have learnt in Geography that have long since faded from mind. And we were expected to be able to work out, from first principles, what this interpretation was. (I could never do this, and so was steered down the path of Mathematics, Languages, and the Sciences, where your answers were clearly right or wrong.)

If this is the school system trying to teach thinking, it’s completely back to front. Being able to critically analyse something from first principles is a highly advanced skill, only really available to experts in the field. But because it’s the approach we’re taught, everyone thinks they can do it. At an abstract academic level, this is bad enough. But in the commercial world, it’s recipe for disaster.

Confronted with a new idea, most people either accept it (usually in a modified form, filtered through layers of experience and an often invisible belief system) and work with it, or reject it. Few attempt to research it, or see what the state of knowlege in this area actually is.

Only the very best can become giants in any area. But there’s no excuse for even the smallest dwarf to see further by standing on the shoulders of the many giants who have come before.

Tags: