Go to content Go to navigation Go to search

Programmer's at Work

by Susan Lammers

A few weeks ago, I finished reading Programmers at Work1 by Susan Lammers. In it, she “interviews… 19 programmers who shaped the computer industry”, including Charles Simonyi, Bill Gates, Ray Ozzie, Jef Raskin, and Andy Hertzfeld (I chose those names because they were they only ones I had heard/knew before I read the book).

It took me awhile to get through it. For awhile I was highlighting tidbits, with the intent to write short essays about the most interesting bits, but half way through decided it was taking too long and I just wanted to finish the book already. Despite this, the interviews are interesting and the ideas espoused and shared are even more interesting. Here are some of my favorites (up until I got lazy and stopped highlighting)

John Page (page 97):

[E]mployees need to feel ownership of what they’re doing and have psychological ownership of the ideas they’re implementing, otherwise they’re not motivated.

Yes.

Bill Gates (page 74), in answer to the question “[H]ow do you go about creating an environment where you can develop successful programs?”

One way is to have small project teams, typically four or five people… Part of our strategy is getting the programmers to think everything through before they go to the coding phase. Writing the design document is crucial, because a lot of simplification comes when you see problems expressed as algorithms… Another important element is code review, making sure you look through the code and see if senior people can provide hints about how to do something better.

Yes!

Charles Simonyi (page 17):

I think the best way to supervise is by personal example and by frequent code reviews. We try to do code reviews all the time.

Yes!

John Warnock (pages 52 and 54):

Learn from small experiments rather than large ones. Don’t go into a two-year development with nothing coming out in the middle. Have something come out every two months, so you can evaluate, regroup and restart….

I believe good software is written by small teams of two, three, or four people interacting with each other at a very high, dense level. The best pieces of code come out of those kinds of effort.

Interesting.2

Gary Kildall (page 61), in answer to the question: “Do you use comments when you write code?”:

Rarely, except at the beginning of procedures, and then I only comment on the data structure. I don’t comment on the code itself because I feel that properly written code is very much self-documented.

I most certainly agree that code should be self-documenting. See the excellent Chapter 32: Self-Documenting Code in Code Complete by Steve McConnell.

And that was as far as I got, highlighting my favorite passages. I’m mad at myself for not maintaining the discipline to continue to highlight, because there were a lot more great observations about programming and what makes a great programmer. It is definitely more than just coding.



  1. Yes, it is out of print, and no, I didn’t pay over $90 for it, or even $45. I paid $14.95 at my local Powell’s Books. I was walking through the stacks and amazingly it caught my attention out of the corner of my eye. Although not at the top of my To Read list, Steve McConnell recommended it in Code Complete, so I picked it up.
  2. One thing you get a hint of when reading the interviews is how agile some of them sound. There is nothing new in agile, I think, except a nice pretty ribbon around a nice pretty box (and some hefty consulting fees). Smaller teams, frequent releases: these, I think, are key software development techniques that the agile camp have grabbed and formalized into their various Methodologies. But, they have been around for a couple decades at least.