Phil Factor's Phrenetic Phoughts

Simple-Talk columnist
The wilder shores of Transact SQL

"Documentation is the castor oil of programming"

Published Monday, January 23, 2006 4:31 PM

As prizes for the little occasional competitions on this BLog, we will be giving out copies of one or other of a couple of rather old books. They just happen to be two of the best books ever written about developing software. I'd be fascinated to hear of any other books in the same league.

A long time ago, in 1971, Gerald M. Weinberg wrote a book, 'The Psychology of Computer Programming' that has never aged, or been eclipsed, Originally published by Van Nostrand Reinhold Co, it is still in print today.This book is responsible for verious aphorisms that have become part of the tribal wisdom of the developer of today.

"If a programmer is found to be indispensable, the best thing to do is to get rid of him as quickly as possible"          
"Some years ago, when COBOL was the great white programming hope, one heard much talk of the possibility of executives being able to read programs . . . nobody can seriously have believed (this).. . even programmers do not read programs" (p.S)
"There are... programs that should be thrown away before ever being used". (p. 20)
"Asking for efficiency and adaptibility in the same program is like asking for a beautiful and modest wife . .. we'll probably have to settle for one or the other." (p.22)
"Putting a bunch of people to work on the same problem doesn't make them a team." (p.35)
"To detect errors, the programmer must have a conniving mind, one that delights in uncovering flaws where beauty and perfection were once thought to lie....For locating errors, however, we want a person who has the persistence of a mother-in-law and the collecting instincts of a pack rat. (p. 136)
"'Programming' - like 'loving' - is a single word that encompasses an infinitude of activities." (p. 121)
"The nature of programming being what it is, there is no relationship between the 'size' of the error and the problems it causes."  (p.247)
When a programmer has a difficult time finding a bug, it is because he is looking in the wrong place.(p.251)
Documentation is the castor oil of programming . . . the managers know it must be good because programmers hate it so much.(p.262)
"Any fool without the ability to share a laugh on himself will be unable to tolerate programming for long.(p. 152)
The programmer's national anthem is 'aaaaaaaahhhhhhhh'...When we finally see the light, we see how once again we have fallen into some foolish assumption, some oafish practice, or some witless blunder. (p. 152)

The other, alternative, prize will be a copy of Brooks 'The Mythical Man-Month, Essays in Software Engineering', published by Addison-Wesley Professional. My favourite quote from this book is...

"The bearing of a child takes nine months, no matter how many women are assigned" (p. 17).

This is closely followed by ...

"Observe that for the programmer, as for the chef, the urgency of the patron may govern the scheduled completion of the task, but it cannot govern the actual completion ... when (the omelette) has not set in two minutes, the customer has two choices - wait or eat it raw". (p.21),

or maybe

"Brooks Law: Adding manpower to a late software project makes it later" (p.25)

Here are a few others to savour..

"The programmed computer has all the fascination of the pinball machine or the jukebox mechanism, carried to the ultimate." (p.l)
"Neither function alone nor simplicity alone defines a good design." (p.43)
"The programmer, like the poet, works only slightly removed from pure thought-stuff." (p 1)
"One types the correct incantation on a keyboard, and a display screen comes to life, showing things that never were nor could be ... (however) if one character, one pause, of the incantation is not strictly in proper form, the magic doesn't work." (p.8)
"...designing grand concepts is fun; finding nitty little bugs is just work." (p.8)
"As soon as one freezes a design, it becomes obsolete in terms of its concepts." (p.9)
"A large programming effort . . . consists of many tasks, some chained end-to-end. The probability that each will go well becomes vanishingly small." (p. 16)
"Cost does indeed vary as the product of the number of men and the number of months. Progress does not. Hence the man-month. As a unit for measuring the size of a job is a dangerous and deceptive myth." (p. 16)
"... the sheer number of minds to be coordinated affects the cost of the effort." (p.30)
"conceptual integrity is the most important consideration in system design." (p.42)


Comments

 

Thomas Williams said:

Red-Gate Software's Phil Factor links to some programming quotable quotes, and includes nuggets from...
January 24, 2006 2:08 AM
 

Thomas Williams said:

January 24, 2006 2:19 AM
 

Castor Oil said:

Well, I have the dubious distinction of having been in the software industry ( a bit of writing code and much more of selling software) and currently I do a lot of work in the castor oil trade, so my interest was aroused when I saw the title....

Quite a hilarious article, and documentation could actually be the castor oil of programming for another reason - castor oil is one of the most useful of plant oils!!

Ec, Castor Oil Online @ http://www.castoroil.in
May 21, 2006 11:30 AM
You need to sign in to comment on this blog

















<January 2006>
SuMoTuWeThFrSa
25262728293031
1234567
891011121314
15161718192021
22232425262728
2930311234
On the Trail of the Expanding Databases
 It is sometimes difficult for other IT people to understand the constraints that DBAs have to work... Read more...

SQL Server 2008: The New Data Types
 Brad continues his helicopter-level view of the most interesting new features of SQL Server 2008 with a... Read more...

Reporting on Mobile Device Activity Using Exchange 2007 ActiveSync Logs
 In this new column giving practical advice on all things Sys Admin related, Ben Lye takes on the often... Read more...

The Bejeweled Puzzle in SQL
 Alex Kozak provides another SQL puzzle to hone your SQL Skills with.  Read more...

Using Powershell to Generate Table-Creation Scripts
 For all of us who learn best by trying out examples, Bob Sheldon produces a PowerShell script file for... Read more...