Monday, August 02, 2010

We're not superheroes

I was reading bits of Coders at work, a book of interviews to famous programmers. I didn't like it very much: here's why.

The first thing I noticed is that many questions are biographical. I do not care about knowing if Ken Thompson, which built Unix, worked on a PDP-10 or a PDP-11 or a PDP-7. By the way, I do not even know how those things look like: I was born in 1988.

Besides that, this kind of books tells you how to live like a superhero coder, but most of us just aren't (me too).
Thompson could work out the design of software in his mind for a month before starting coding, I can't (or I can waste less time by writing something in code).
Knuth could design and code LaTeX in pencil and write for six months before do any testing. I can't (or I can, but I would be much more efficient with a quick feedback loop like Test-Driven Development's one.)
Zawinski could pick up rolls of duct tape and make Netscape work in six months (picking up also a lot of technical debt and vanishing from the market in the following years). I prefer working software over comprehensive documentation but not over sustainable development.

So we're not superheroes: test suites, source control, Continuos Integration are our bat-gadgets which enable us to deliver software while working for a living and not living for work, like Ken Thompson and his 28-hour days or Bill Gates and his nights at school programming. Let the people with the superpowers shoot webs all night long, while we go back to Wayne Manor and throw a party. At least Batman hasn't a day job: poor's Peter Parker must live a miserable life.


Unknown said...

I think you're being a bit harsh. I agree Fortune 500 CEOs and footballers and playwrights aren't necessarily the best people to go to for help with your family business, amateur football or writing problems, but I think they do have something to offer. And it's usually at least *interesting* (if not useful) to compare how you might do things differently.

Rick said...

Didn't we already have this discussion when Joel Spolsky posted this: about a year ago?

Giorgio said...

I am not on the duct tape flames bandwagon, which only regards Zawinski. I wanted to point out that nearly everything you read from an interview to a famous programmer of the 20th century probably won't apply directly to us. Knuth took 10 years off to work on TeX, I can maybe get a week off to work on open source projects... But surely I won't write it in pencil first, because nowadays we have a lot of machine time available.

Jim Danby said...

Without meaning to sound rude, this may stem from you being born in 1988. When I was 22 I didn't see the value in these things either. Over time perhaps you will want to understand more about these things.

Some of this may stem from the type of software you are writing. I wouldn't want to write software like Unix without proper design documentation up front, relying on a TDD cycle. The end product would likely be very poor.

Anonymous said...

I think you misunderstood the point of the book. You wrote yourself it's a book of interviews. Interviews about famous programmers, their life and work. Therefore, biographical questions about their life and work form the main skeleton of entire book. It's for fun and interest, not for applying their supercoders' coding processes to your everyday life.

Hikaru77 said...

I know that most of the "new age" programmers doesn't like to use old-fashioned pencil & paper resources but it is actually pretty useful; we don't use the same neural networks to write with a pencil that we do when typing on a computer, I found it very productive to start sorting my ideas on a design writing some algorithm on paper and also some code, I wonder if anybody else does it too nowdays. BTW, I was born in 1977 so I'm not that old either to have known a PDP :P.

Anonymous said...

I can somehow understand your analogy to the superhero ideal stereo-type, but I must admit that you could have saved yourself some of your reading-suffer by taken the nice written introduction seriosly.

It clearly states that the work is about personality, biography and that the interviews are explicitly aiming for that part of human nature.

So I can't support your critic in that direction.

Next to that, the coders interviewed are not superheroes at at all. The opposite is the case, they are human beings and they talk very personally. The book is even about to better understand why certain decisions were made by specific people in specific, real-life projects. With some time passed after that might give a better look. I much enjoyed reading the book, not my projects though.

And next to that, two of your topics: TDD is getting a laugh and patterns get down-knocked sometimes. But that's far from the whole picture and would only focus on topic instead of the personality. And as written, the book is about personality not topics.

I can understand that you don't feel that way, but I really appreciated the diversity you can find in the book and recommend a read to any programmer who makes up her or his mind about programming in general - as science, art or handcraft. It's not about superheroes but about real-life and it can help for making up ones own mind. Just don't read it as a common programmers guide to BlaPatternImplementDoDoDoProgrammingInThatCertainHypedStyle because your day-to-day-work-dictating professional peer group needs to feed you into a never failing, at-all-costs-business-matching-programming-workflow.

I can only recommend to just enjoy the perspective this book can open. What's bad about Superheroes? They don't exist (not even in that book).

--hakre (unable to use my openid to post this)

Anonymous said...

I would like to exchange links with your site
Is this possible?