If a programmer is found to be indispensable, the best thing to do is to get rid of him as quickly as possible. -The Psychology of Computer Programming, Gerald M. Weinberg, (Van Nostrand Reinhold Co., 1971) 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. -Weinberg, p.5 There are ... programs that should be thrown away before ever being used. -Weinberg, 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. -Weinberg, p.22 If the programmer is working in a language that allows only three dimensions, we are not likely to observe more than three. -Weinberg, p.31 Putting a bunch of people to work on the same problem doesn't make them a team. -Weinberg, p.35 The systems designer suffer[s] because the better his system does its job, the less its users know of its existence. -Weinberg, p.124 ... each program has an appropriate level of care and sophistication dependent on the uses to which it will be put. -Weinberg, p.127 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. -Weinberg, p.136 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. -Weinberg, p.136 -1- If the poor workman hates his tools, the good workman hates poor tools. The work of the workingman is, in a sense, defined by his tools. -Weinberg, p.203 No craftsman, if he aspires to the highest work in his profession, will accept [inferior] tools; and no employer, if he appreciates the quality of work, will ask a craftsman to accept them. -Weinberg, p.204 Another effect [of not having a spoken form] is the difficulty with which we can talk about a programming language without a blackboard or pencil and paper. Every programming office should have a blackboard, chalk, and many erasers. -Weinberg, p.207 'Programming' - like 'loving' - is a single word that encompasses an infinitude of activities. -Weinberg, p.121 The important thing is not to stop questioning. Curiosity has its own reason for existing. -Albert Einstein Programming shares with prayer the feature of directional transmission and broadcast reception. -Weinberg, p.207 ... in some terminal systems ... the user can keep his program from being pushed down in the priority stack by fiddling with the shift key while he is thinking. -Weinberg, p.209 The expert is a person who avoids the small errors as he sweeps on to the grand fallacy. -Anonymous The nature of programming being what it is, there is no relationship between the 'size' of the error and the problems it causes. -Weinberg, p.247 When a programmer has a difficult time finding a bug, it is because he is looking in the wrong place. -Weinberg, p.251 -2- Documentation is the castor oil of programming ... the managers know it must be good because programmers hate it so much. -Weinberg, p.262 The human mind ordinarily operates at only ten per cent of its capacity - the rest is overhead for the operating system. -Anonymous We stand at the brink of a new age, an age made possible by the revolution that is embodied in the computer. Standing on the brink, we could totter either way - to a golden age of liberty or a dark age of tyranny, either of which would surpass anything the world has ever known. Perhaps no individual's efforts will make any difference in the result, but we must never cease trying, for then the result is sure to be tyranny. -Weinberg, p.279 ... [OS/360] was late, it took more memory than planned, the costs were several times the estimate, and it did not perform very well until several releases after the first. -The Mythical Man-Month, Frederick Brooks, p. viii A ship on the beach is a lighthouse to the sea. -Dutch proverb Everyone seems to have been surprised by the stickiness of the problem, and it is hard to discern the nature of it. -Brooks, p.4 The programmed computer has all the fascination of the pinball machine or the jukebox mechanism, carried to the ultimate. -Brooks, p.7 The programmer, like the poet, works only slightly removed from pure thought-stuff. -Brooks, p.7 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. -Brooks, p.8 -3- ... one's authority is not sufficient for his responsibility. -Brooks, p.8 ... designing grand concepts is fun; finding nitty little bugs is just work. -Brooks, p.8 As soon as one freezes a design, it becomes obsolete in terms of its concepts. -Brooks, p.9 Good cooking takes time. If you are made to wait, it is to serve you better, and to please you. -Menu of Restaurant Antoine, New Orleans All programmers are optimists. -Brooks, p.14 This time it will surely run. -Anonymous I just found the last bug. -Unanimous A large programming effort ... consists of many tasks, some chained end-to-end. The probability that each will go well becomes vanishingly small. -Brooks, 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. -Brooks, p.16 The bearing of a child takes nine months, no matter how many women are assigned. -Brooks, p.17 When everything has been seen to work, all integrated, you have four more months work to do. -Charles Portman International Computers Limited -4- 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. -Brooks, p.21 ... when [the omelette] has not set in two minutes, the customer has two choices - wait or eat it raw. -Brooks, p.21 Brooks Law: Adding manpower to a late software project makes it later. -Brooks, p.25 ... the sheer number of minds to be coordinated affects the cost of the effort. -Brooks, p.30 ... conceptual integrity is the most important consideration in system design. -Brooks, p.42 The purpose of a programming system is to make a computer easy to use. -Brooks, p.43 Neither function alone nor simplicity alone defines a good design. -Brooks, p.43 Add little to little and there will be a big pile. -Ovid He'll sit here and he'll say, 'Do this! Do that!' And nothing will happen. -Harry S. Truman Never go to sea with two chronometers; take one or three. -Anonymous I know it. I know what needs to be done - but every time I try to tackle a technical problem some bloody fool wants me to make a decision about trucks - or telephones - or some damn thing. -Robert Heinlein The Man Who Sold the Moon -5- The problem was that everybody who was working there, including myself, wanted to do really neat stuff but they didn't want neat stuff, they just wanted a lot of stuff fast. -Rick Baker, make-up artist for King Kong, Star Wars, et. al. The generation of random numbers is too important to be left to chance. -Robert R. Coveyou Oak Ridge National Laboratory It's redundant! It's redundant! -R. E. Dundant I don't know any reason why we couldn't do it, but maybe we can think of one. -Mark C. Davison Bug? That's not a bug, that's a feature. -T. John Wendel The computer 'Doth make fools of us all'. -Weinberg, p.152 Any fool without the ability to share a laugh on himself will be unable to tolerate programming for long. -Weinberg, p.152 The programmer's national anthem is 'AAAAAAAAHHHHHHHH'. -Weinberg, p.152 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. -Weinberg, p.152 The computer always has an excuse: the programmer never does. -Mark C. Davison The user does not know what he wants until he sees what he gets. -Ed Yourdon -6- We tend to blame the physical media for most of our implementation difficulties; for the media are not 'ours' in the way ideas are, and our pride colors our judgement. -Anonymous Completely compatible - things that work together with less than $1000 of interfaces and less than 100 man-hours of software patches. -Datamazing, 4/1/78 Stack manipulation - the use of inflatable falsies. -Datamazing, 4/1/78 Design of both hardware and software must be considered when doing the system design. -Proceedings of the IEEE, 2/78, p.167 The job cannot be done right unless the necessary tools are available. -Proceedings of the IEEE, 2/78, p.174 I hear and I forget. I see and I remember. I do and I understand. -Confucius On a clear disk you can seek forever. -Computerworld button I write all my critical routines in assembler, and my comedy routines in FORTRAN. -Anonymous It is impossible to make anything foolproof because fools are so ingenious. -Edsel Murphy, dec. It seems intuitively clear that the existence of an error in a program will not be reflected in the test result unless the program component in error is executed during the test. -J.C. Huang, 'Program Instrumentation and Software Testing', Computer, Volume II Number 4 -7- If debugging is the process of removing bugs, then programming must be the process of putting them in. -Dykstra Are you at the point where you don't have the time to find solutions to the problems that are taking up all your time??? -Mark C. Davison -8-