Book Reviews

I read books (remember those?). These days, I try to write reviews of them.

The Psychology of Computer Programming: Silver Anniversary Edition

I’ve had a Kindle DX for about 3 or 4 years now. In fact I’ve had two, I broke the first one by dropping it from a bench top. And I’ve been very happy with it. But it’s funny that it’s only recently that I’ve begun to use the Kindle’s scrapbooking feature to extract interesting quotes and snippets from books I’m reading.


I think the major culprit is Gerald Weinberg’s book, The Psychology of Computer Programming: Silvery Anniversary Edition. Weinberg is eminently quotable. That’s probably why I decided to start to start picking bits out for quoting.

First things first. This isn’t my first outing with a Weinberg book. Back in January I dropped a big batch review of books, including Weinberg’s The Secrets of Consulting (excellent) and More Secrets of Consulting (sadly, like most sequels, not as good).

I decided at the time that a slow saunter through this Weinberg fellows’ catalogue would be a fun expedition. Not all at once, mind you. There is something about Weinberg’s writing that somehow is just ever so slightly off for me. When I am reading it I enjoy myself and I feel like I am learning lots of useful insights. But when I’m done it is difficult to express what, if anything, I have just learned.

However it’s sufficiently entertaining, and Weinberg sufficiently influential, that I think that picking up one of his books now and then will probably be a wise move in the long run. He’s certainly a prolific writer, and some of his particular series (the Quality Systems series for example) are considered to be “cult classics”.

What’s it about?

That’s hard to answer. The book comes to us, almost unchanged, from 1971. It’s worth noting that by sheer coincidence the book was published immediately after what was to become a vital historical moment in the computer industry: the development of Unix. By convention, Unix is considered to have been “born” on the first of January 1970. When Weinberg was writing the book, Unix basically didn’t exist. Today Unix and Unix-like operating systems power billions of computers and devices.

This leads me neatly to what most programmers will note about the book: its fascinating anachronism. When he released the Silvery Anniversary edition in 1996 (itself already another world — the web had barely begun to make its mark in 1996), Weinberg didn’t rewrite any chapters or update any examples, leaving them as they were in the 1971 original. Consequently many of his discussions revolve around how quirks in the PL/I language interact with human behaviour; or the social dynamics of submitting cards to a batch processing centre. At the time Weinberg was witnessing the first stirrings of “online terminals” and timesharing systems. These are the systems which have almost totally supplanted the entire technological paradigm that Weinberg was so keenly observing.

In my father’s book collection are many fascinating curios of bygone eras. He owns, for example, a travelogue of a visit to Indonesia, written before the outbreak of World War II. Flicking through such books is like studying prehistoric insects fossilised in amber. It inserts you into the absolute unalikeness of times that and modes of thought that have almost entirely perished from the earth. The past really is, as they say, a foreign country.

But in saying all this, I’m only really addressing myself to the second half of the title (“… Computer Programming”). Weinberg also talks about the psychology, which — given that only 2 or 3 generations at most have passed through the industry since the first edition was written — is unlikely to have changed.

This is where is Weinberg’s book is at its strongest. To be sure, psychology is itself an evolving field, and Weinberg’s main references are textbooks and papers written in the 50s and 60s. But his gift for folksy insight nevertheless entertains and sometimes instructs.

Some Quotes

On tradeoffs:

Many managers still seem to want everything, and fail to understand the importance of asking for intelligent trade-offs in order to get the best product they can. It’s as if they think all you have to do to manage the New York Yankees is tell every batter to hit a home run, and every pitcher to strike the batter out.

On communicating objectives:

There is a certain danger in communicating objectives: objectives can change estimates!

On the fungibility of labour in complex design tasks:

Notice that two months would probably be the minimum time for this program to be produced with programmers of this ability, for it is doubtful whether nine programmers can do anything useful in less than about two months, considering the time it will take them to get organized. If we have to have the program faster, we shall have to hire a better man for the job.

On Parkinson’s Law:

The reason work can expand to fill the time allotted is the existence of other goals whose importance relative to scheduling is not made clear.

Conclusion

It’s customary in these reviews for me to end with a remark on whether I recommend a book.

In this case, it’s hard to say. I think most software types would profit in reading it, if only to get some flavour of what changes and what is eternal in our industry. But if, for example, you’re looking for an up to date treatment of the subject promised by the title … perhaps you ought to look elsewhere.

Comments Off on The Psychology of Computer Programming: Silver Anniversary Edition

Books I Read on Holidays

My busted shoulder did me a single favour over the Christmas-New Years period. It excused me from being useful at my sister’s new home, where she and my brother-in-law are frantically working to fix the place up before moving in.

It was probably a nasty shock to discover that I was not really useful for hoisting heavy things. Sorry, sis.

But I did get some reading done. Herewith my notes.
Continue reading

Comments Off on Books I Read on Holidays

Picturing the Uncertain World

Part of my current development project is conveying to people that estimates are uncertain. Every estimate comes with unforeseeable risks (and many foreseeable ones that nobody takes the time to foresee). But how best to represent this graphically? For some reason, cumulative probability charts seem to leave people cold.

I figured that someone might have worked this out. Previously I’d read one of Edward Tufte’s books and found it, in short, to be long on opinions and short on data about what actually improves comprehension. (I haven’t bought any more Tufte books).

I picked up Picturing the Uncertain World by Howard Wainer, hoping that it might be more useful.

While it’s an interesting read — aimed at the lay audience — it didn’t really give me what I was looking for. It did however point me in the direction of some other more technical books.

I have one small pet peeve about this book. The margins are enormous. This is apparently done to allow room for infrequent side labels. It’s a prodigious waste of space that could be saved. The book just doesn’t need be the size it is. Perhaps the paperback edition is more sensibly laid out.

Comments Off on Picturing the Uncertain World

Tested Advertising Methods

I’m not sure where I got the recommendation for Tested Advertising Methods (5th Edition) by John Caples and edited by Fred E. Hahn. It might have been a comment on Hacker News or possibly one of the fine recommendations that Patrick McKenzie is in the habit of dropping.

What’s it about?

John Caples was an advertising man — specifically, a copywriter. Copywriters write the actual advertising text — “copy” — which appears in any given advertisement.

What makes Caple’s book interesting for a lay business audience is that Caples worked in mail order advertising. Before the advent of the internet, mail order advertising was the only field in which an advertiser could get meaningful feedback about the performance of different kinds of ads.
Continue reading

Comments Off on Tested Advertising Methods

The Essence of Hayek (Part 1)

In April I wrote a long, winding review of Drift into Failure. I was very proud of it: in the space of several thousand words I visited complex systems, fuzzy logic and the usefulness of positivistic thinking.

It met with great silence; which is the lot of most blogs I suppose. But I had occasion one day to mention it to Helen Dale, who I host at the outstanding group blog Skepticlawyer.

Helen wrote back:

Now go read ‘Law, Legislation and Liberty’, where Hayek goes into exactly¬†these issues in gory and grisly detail, right down to the argument that ‘constructivist raptionalism’ is derived from Cartesian thinking.

I found on further investigation that Law, Legislation and Liberty is actually a three-volume book, sometimes referred to as FA Hayek’s magnum opus. At the time I felt that, given the pressing weight of all the other books I want to read, Hayek’s opus was too far on the magnum side of things for me to justify picking up right away.

Then I found The Essence of Hayek, edited by Kurt R. Leube and Chiaki Nishiyama.

I, being lazy, decided that this was the ticket. At one stroke I could get a broad survey of Hayek’s thought and check to see if Helen was right about the connection between my review of Dekker’s work and Hayek’s writing (she was).

Still — it was slow going, for the reasons I originally outlined in this book review. I at least had the foresight to keep some notes.

Continue reading

1 Comment