[ ]
Computer Aphorisms (and memories) [ ]
[ Computer user.... ]
[ ]
[ ]
Everything that's obvious is begging to be investigated.... especially if it has anything to do with computers!
[ ]
Jerry Leichter's laws of software development (etc.)
 1 If you don't know how to do something, you don't know how to do it on a computer.
 2 If something can't be done, it won't be done.
Corollary: Poor middle managers don't believe in the 2nd law.
 3 You can't have it until we've done it.
Friday, 28 December 2001, Jerry told me a story about John von Neumann, the famous mathematician who pioneered "game theory": There was a weekly poker game among members of the mathematics faculty at Princeton. The players kept asking von Neumann to join them and he kept refusing. Finally, he gave in and joined a game. In each turn he bet the limit, and, very soon, he lost all his chips and was out of the game, at which point, he departed. The other players tried to figure out why von Neumann had played such an obviously losing strategy. Finally they figured it out:
Some persons have different goals than others.
[ ]
A person who worked in the 1970s for Digital Equipment Corporation (DEC), told me one of the mottos of his group "back then" was: "If you are working overtime, your manager isn't doing his job." The person added (I paraphrase from imperfect memory): "Several important things changed in the 70s and 80s.... Corporate officers used to see their job as to take care of the company to hand over to the next generation. Now they just think about the bottom line...."
[ ]
[ On the road to Cyberia.... ]
The programmer's creed
[fn.112[ Go to footnote! ]]
We the unwilling, led by the unknowing,
have done so much with so little for so long,
that now we are qualified to do everything with nothing.
--Harold Jones, my manager,
Maryland National Bank, 1978
[ ]
[ ]
[ ]
 Welcome to Cyberia! 
[ ]
My (BMcC) computer aphorisms + DP memories: "Je me souviens"[ Notice what's hiding in plain sight! ]
 0 The DP Golden Rule: Do unto programmers and support personnel as you would have them do unto end users.[fn.122a[ Go to footnote! ]]
We all need: Compassionate computing.
Sisyphus was lucky! He didn't have to keep figuring out all over again how to roll the stone, for each of an endless number of new releases.... [ ] [ A BRIGHT IDEA! Light in the darkness! ]
Computer productivity? "The more time you spend learning the latest 'productivity' applications, the less work you actually get done." (Jesse Berst, ZDNet; See also: Quote #179)
From a Dilbert cartoon: "If you aren't churning, you aren't learning."
Is what you are doing adding value? (See also: Quote #179.)
Much of the time what I find programming resembles most is: trench warfare on the Western front (Click here to see programmers at work).
Good example of good technology: automobile seat belts. They are simple, inexpensive, do a lot of good, and don't easily contribute to causing harm. Bad technology: automobile air bags -- complex, expensive, don't do much good, and can even cause injury or death. (See also: item #14, below)
 2 No manager or other senior staff should be let out of a project until they've at least seen it through its first maintenance release.
Obviously! it is best to work on a product that is a stellar success in depth (even for the "grunts" who make it happen...). But second best is to work on a project that gets cancelled, since then one does not get sucked down trying to keep a sinking ship afloat, and the mistakes one made may never be discovered, and thus never come to blemish one's personnel file.
+THINK :: Overheard, one unhappy IBM business planner to another (ca. 1979), as the two walked down a corridor in the Poughkeepsie South Road Lab 705 Building: "Fishkill is not bringing the inventions in on schedule."
[ ] [ IBM advertisement for 'On demand thinking' :: THINK :: Go to IBM! ]
[ ]
Right: Image from Nov 2003 IBM advertisement[ See IBM advertisement for 'On demand thinking'! ] Learn more: IBM says this is not rude[ See why IBM says 'On demand thinking' is not rude! ]
 4 +IBM POK SPD motivational slogans for 1978(79?): (1) "You are the difference." (2) "No wind blows in favor of that ship which has no port of destination." (There were one or two more, which I apologize that I have forgotten.) [My version of #1: "You are the residue."]
+IBM POK South Road Lab had a retention pond for cooling water for its many big mainframe computers. Myself and an unnamed fellow employee wrote on the edge of the big manager's chalkboard, where he would not likely see it while writing on the board, but bored people listening to him pontificate might: "What are you looking here for? You might find it at the bottom of Lake Strategic."
+Myself and same unnamed fellow IBM employee also invented an apocryphal employee -- to be precise: a non-existent manager. His name was: Buzz [that's short for: Business] Case.
 5 +Said many years ago, by a senior systems programmer to a vice-president, concerning the liaison person between our company and a competitor who was doing a big project for us: "If I am ever in line with that person, and above him, I will fire him, because he is a traitor." [Perhaps the most eloquent sentence I have ever encountered in any language.]
 6 +Said many years ago, by a second line manager: "I want to see asses and elbows." [See also: Something RCA chairman David Sarnoff said.]
+I once had a manager whose second line manager told him: "There's only one thing wrong with data processing - it requires people." This same senior manager also said programmers were like socks: You should change them once a year whether you need to or not. (The company had close to 100% programmer turnover, during the year or so I was there.)
 7 +Said many years ago, by an IBM sales rep to a DP vice-president, and overheard by myself and our company's two senior systems programmers, one of whom was disabled and the other uncouth: "There go your bearded commie hippie freaks...."
 8 +Interchange between myself and my manager in a department meeting many years ago: Manager: "You know what I'd like?" Everybody except me quietly groans. Manager continues: "I'd like bi-weekly status reports." At this point, I said to the manager: "You know, [name withheld], that's all right with me, [name withheld], because, you know, [name withheld]: Two half nuthins make a whole nuthin."
 9 +Explained to me by a headhunter, many years ago, after telling me I was too rigid in my job requirements, and offering as a role model his wife working overtime on a project which everyone knew would never ship but which everybody had to pretend would: "If your manager tells you to jump, your response should be: 'How high?'" [I did not tell him he was wrong: That, in most cases, if the employee didn't intuit what the boss wanted and do it enthusiastically without the boss having to ask for it, that would already be not good enough. See item #6, above, for an exception -- some bosses do like to boss people around....]
 10 +Once, I worked on a very secret IBM project: a do-or-die kludge to make an expensive piece of hardware viable to sell. At the same time, there was another project, to add a powerful and elegant enhancement to the basic system architecture, but it had a lower security classification. I learned: The higher security classification something is, the less conceptually interesting it is likely to be.
 11 I used to be able to tell if I'd like a programmer by asking them two questions: (1) Do you like APL? (2) Do you like PASCAL? If they answered no to the first and yes to the second, I knew I should go some place else. If they answered yes to the first and no to the second, we'd probably get along OK. I don't think I ever encountered yes to both. (I can understand how a person might say no to all computer stuff, but I [still...] think APL -- the old way, with all the special characters! --, is "pretty neat"!)
I have encountered "elite" "computer science" "educated" programmers who disdained COBOL, but liked other block-structured programming languages (which look to me a lot like COBOL). It's OK to not like COBOL, but to disdain it betrays, at best, immaturity.
GOTO's are bad? I agree. But I think IF...THEN...ELSE and DO...WHILE are bad too!
 12 The only thing many programmers read except tech manuals is science fiction ("sci fi"). Their flat-earth imaginative horizon is bounded by the latest episode of StarTrek -- what I call: "techno-feudalism in flying fortresses" (not to be confused with real B-17s!).
Verily, there is no "dress code" in many programming workplaces: A programmer can even wear jeans a New York Yankees uniform shirt to work....
[ ]
[ Tell me more about: Aki Ross, computer image! ]
[ ]
Computer graphics have now (2001) reached the point where they can begin passing "screen tests" like human actors take when applying for a role in a film. "Aki Ross" (right) is a computer image: "'The eyes are one of the single biggest things that make people alive,' said Andy Jones, the animation director. 'We're moving the eyes around to make the character seem like... there's a soul.'" (Rick Lyman, "Movie Stars Fear Inroads by Upstart Digital Actors", NYT, 08Jul01, p.A1,16). Such technical virtuosity coupled with the above-noted (Item #12) imaginative poverty of most "computer people", brings to my mind Walter Ong's question:
What is the purpose of a person acquiring perfect French pronunciation, if they have nothing of value to say in any language?
Example of a substantive improvement the so-called "digital revolution" has made in our form of life: The opportunity cell phones gave hostage passengers on hijacked airliners heading toward kamikaze strikes against the World Trade Center and other targets (11Sep01), to speak during their last minutes with loved ones who otherwise would have been absolutely inaccessible, and thus for them to at least in some measure be together.[fn.37b[ Go to footnote! ]]
 13 Marie Antoinette got it almost right as far as computer people are concerned: Let them eat pizza! [Give a programmer free pizza and he will happily suffer just about any work-related abuse.]
+One morning I came in the office to find one of the systems programmers already eating M&M's candies and drinking Coca-Cola, before 8AM. I said to him: "Jim, you're gonna rot your brain." His reply: "Nope! I never had none."
 14 Any nontrivial computer system design is not adequate unless it analyzes the social relations into which it will enter, and redesigns these social relations as well as the tools which are used in those relations. Yes, I am talking social change, even if not necessarily "revolution". What is the progress in persons doing equally unmeaningful work as they did before, but with higher-tech (probably more complex...) gadgets and gizmos?
#14 applies to programmers as well as "end users": If programmers work long hours, doing things nobody would do unless they had to, to earn a paycheck, and/or which contribute little to society (or even make things worse for people) but have at most a "business case", why should they have any notion, much less any motivation, to make life any better for the persons who will use what they make?
After terrorists "repurposed" commercial jet airliners as kamikaze bombs to destroy the NYC World Trade Center (11Sep01), we now see more clearly how important it is to give serious consideration to the social relations into which our technolgical products enter (How might they cause employee disgruntlement? How might they be perceived as adding to the oppression of 3rd world people? etc.). We also see how important it is to carefully consider not only "side effects" the products may give rise to (exascerbating global pollution, suburban sprawl, etc.), but also how the products might be used for purposes other than they were designed for.
[ ]
Showing astute military insight, Osama Bin Laden turns the West's own modern technologies against it (i.e., against us). We need to design out of our production processes and also out of the products produced, opportunities for destructive repurposing, as well as things that might give persons reasons to want to turn our products or our processes against us. (See also: item #1, above)
14a A "PhD" degree in "Computer science" should mean the person to whom it has been awarded is a teacher and healer ("Doctor") who loves knowledge ("Philosophy"), with particular competence to use computers ("science") to further these humane social objectives. I have found, however, that most computer science PhDs merely have a lot of training in computer technology, and therefore, at best, deserve a "M.S." (or M.A.) degree: a certificate that they have mastered a skill without necessarily knowing (or caring...) how it should be exercised.
Best computer book: Joseph Weizenbaum, Computer Power and Human Reason: From judgment to calculation, W.H. Freeman (1976). Talks about social ("ethical") responsibility of programmers. Describes how people confide things to computers that they would not confide to other persons; how incomprehensible computer programs come to define what is real for us; how the computer has been a powerful force for social reaction in the 20th Century (there has been no "computer revolution"), etc. By enabling existing bureaucracies to continue to do business as usual after the volume of data exceeded what could be handled by human clerks, Weizenbaum argues, the computer prevented a restructuring of social relations: without the computer as Superclerk, we would have had to breakthru to some different form of social organization, to avert serious social breakdown.
 15 More's law: The amount of computer power necessary to accomplish a given life task increases proportionate to the amount of computer power available.
[In 1980, one mainframe computer (an IBM S/370 168), less powerful than a single modern PC (Pentium III), ran all the work of more than 100 secretaries, programmers and scientists.]
Corollary: But the task will be done in a fancier way, with more realistic graphics, speech and/or handwriting recognition instead of keyboard input, etc.
The bottom line: Some genuine progress may occur, but not at anything like the rate of "advance" of the computer systems themselves. (Like the difference between a 1950 and a 2000 model car, in making the same 40 mile commute to work.)
More's question: Will the total amount of computer power continue exceed the amount of computer power that must be lost to protecting the computer against viruses, spyware, and other computer security threats? I.e.: Will computers continue to be able to do useful work [however defined]?
 16 +Once, I had a manager who said: "The computer should not know what you can do with it." (He invented a computer programming language for children, to enable them to invent their own interactive multimedia presentations as part of self-defined social interactions.) He emphasized that the computer was only a "decentered" part of persons elaborating their shared social interactions. The computer was an aid; richly rewarding, creative social interactions were the goal. (I agree.)
I knew of a another manager who believed computers should facilitate human creativity, and who treated the programmers who worked for him/her as code-generating machines that should expect nothing more from their job than a paycheck.
I knew of another programmer, who, when they told their manager that they wanted an assignment that would be both personally rewarding and also useful for the company, their manager responded: "If wishes were horses, then beggars would ride."
 17 +I once had a manager who told me that, because I designed while I coded and didn't produce "pseudocode", "hypos", etc., he could not get a good feeling about my thought processes. He agreed that I did good work "my way", but then he asked what he should do about all the other programmers who needed the rules? I replied that he should tell them they needed the rules and I didn't.
 18 No change to a computer program is so trivial that it does not have the potential to screw up the whole thing (and to do it in a way that proves not trivial to debug and fix).
The difficulty of solving a computer bug has no relation to the value [cultural, etc.] of the code it's part of. Neither does the value of the knowledge gained from solving a computer bug have any relation to the investment of time and energy required to figure it out. (Computer programs are often "sinkholes of the mind".)
From somebody's email "sig" file:
[ ]
Data is not information.
Information is not knowledge.
Knowledge is not wisdom.
I hereby nominate the ancient Greek mythological figure Ariadne to be the patron saint / protective deity of computer programmers. Especially with the many layered involutions and convolutions of Object Oriented Programming (OOPS), if I do not scrupulously keep track of every step I took to get to wherever I am, I know I will have great difficulty getting back to where I started from, or, if I do jump back to where I started, I know I will have a very hard time retracing the steps I took back to where I got to in my not yet successful attempt to get to -- to where? The times when it is clear where I am trying to get to it is generally less confusing how to get there.
[ ]
Ariadne's thread is my lifeline in a Borgean and even Kafkaesque labyrinth of subclasses and "listeners" and other neo-hocus pocus which clutters the latest release of an API pantheon. I put an identifying PR number on each relevant line of code, so that I can use global string search to find all the dots -- and then I "only"(!) need to figure out how to [re]connect them....)
[ ]
Note: There is another kind of "labyrinth", which is not a waking nightmare, but rather is a lucid, illuminating, comforting... meditation space. Computer programs should be this virtuous kind of labyrinth. To see a picture of such a labyrinth, at Chartres cathedral, Please click here.
Often trying to solve a really difficult computer problem will get me all upset and cursing: %$^#&@!?%##*.... Some other programmers react this way too, to such an extent that programmers generally "understand" if a colleague is cursing at his (is this something that happens only to males?) workstation. To call such protracted painful highly focused effort to get something out: "labor" may indeed be apt....
 21 "Knowledge workers": Castrated white-collar functionaries who gather and store and organize and otherwise metabolize material (aka knowledge) decision makers need to make decisions. Their own ability to make decisions has been disabled.
 22 +I recall a senior IBM manager who came from humble origins who had a clever strategy for getting the other IBMers in a meeting to accede to his proposals: He would sit cross-legged in his chair blowing bubble gum bubbles which popped in his face. Having to look at this grossness would make the other IBMers uncomfortable, so they would agree to what this manager wanted to be able to get away from it. (Lyndon Johnson had a similar technique for dealing with advisors he inherited from the Kennedy administration: Johnson would hold discussions with them while sitting on the toilet with the door open.)
 23 +IBM engineers are sometimes pretty "hip" guys. In 1979, in Poughkeepsie, they named the S/370 model 3031 engineering test computer: "PKGOBABY"!
 24 [ What's it like being an engineer? Go to Dilbert comic strip website and find out! ]Precision and Soul: The protagonist of Robert Musil's novel The Man Without Qualities, Ulrich, works for a time in an engineering office. But he soon quits in disillusionment when he discovers that the engineers do not carry the spirit of precision into their personal lives, and they even wear tie-tacks with little horse's heads on them. Musil (1880-1942) argues that Western culture took a "wrong turn" long ago in its understanding of the mystical, associating it with fuzzy thinking instead of lucid rationality, and he lamented that scientists and engineers do not more often have mystical experiences in doing their work[fn.59b[ Go to footnote! ]].
 25 +I once knew a data center operations manager who realized he had just made the mistake of leaving the military after 19 years (he didn't get the pension he would have been granted had he hung in for one more year). His manager in his new civilian job told him to do things he did not think made sense. He told his manager: "If you tell me to dig a hole, [name withheld], I dig a hole. If you tell me to fill it up again, I fill it up again. Anything you want, Sir!" He thereby earned a job reassignment to 3rd shift manager. (A remotion....)
 26 "Teamwork": When managers talk about "teamwork" in programming, generally they mean dividing a project into separate pieces and having a different person do each isolated piece all by him- or herself.
 27 Ghosts are real: They are (ex-)employees who are still on the job after either they have given notice or the company has given them notice. I met one this morning (22Mar02): (S)he was about to begin teaching the last day of a customer education class which (s)he told me was also to be his/her last day of work.
 28 Cheap way to enhance security: Have only one paper shredder; make sure it has very small capacity and jams easily; place it a long distance from the persons who produce or use confidential material but close to the telephone marketing and support staff (even better: the receptionist!) so the noise of shredding documents will interfere with their work; provide a very small trash can for emptying the shredded paper into and make sure the cleaning people don't empty the shredder every night.
One effective way to use a document shredder (I saw this happen, 10May02): Lay the confidential documents to be destroyed in a neat pile on top of the shredder and walk away leaving them there like that.
 29 Back up your work regularly. Whenever you have done anything worth anything, back it up. Whenever the urge grabs you -- which it should do frequently! -- do an extra backup. "The computer crashed (the disk died, etc.) and I lost my work" is not generally an acceptable excuse. If you lose your work because the computer crashed, first blame yourself for what you didn't do, and only after that complain about what the computer did do.
 30 [ Crescit eundo.... ]Someone told me about a project where, when they had finished coding it, the manager came in one night and removed the source code to the trunk of his car. Next day he told the team: "Now that you've done it once, you should have learned how to do it right. Let's do it." (write it again from scratch). [I concur with this way of developing a product.]
 31 Early in my programming career I learned: The problem as stated is not the problem. (I.e.: What the person reporting the problem thinks the problem is, is often only a symptom of the real problem, which they are oblivious of and even might not understand if someone told them.)
If one accepts what the user says the problem is, one may waste time and effort trying to fix something that is not the problem, instead of getting on with finding out what the problem really is and addressing it.
 32 The shortest distance between two points is a good user interface.
 Somewhere, under the rainbow...[ Learn about 'cool' new techno gadgets! ]
[ ]
 Go to more computer thoughts[ Go to more computer thoughts! ]
[ ]
[ Find out what SGML is all about! ]
[ ]
[ Email me! ] E-mail me your computer aphorisms (etc.).
[ Email me your questions and/or thoughts! ]
[ ]
Read Alan Perlis's Epigrams of Programming.
Read Prof. Henry Petroski's engineering safety principles.
Learn my (BMcC) software (etc.) rating system [Hint: it's not "stars"].
Read W3C document announcing HTML 3.2.
Read  documents announcing SoftQuad Panorama SGML viewer: "a development that could dramatically alter the use of the Internet...."
See  IBM MVS Control Block Diagram (from MVS Debugging Guide).
Historical  material: (1) Lyrics from The IBM songbook. (2) IBM "How to Stuff a Wild Duck" poster.
Visit: "The End of the Internet".
[ Go to The End of the Internet! ]

Read thrilling story of the hunt for "SoBig" (dangerous computer worm)!
Learn  important engineering contribution my maternal uncle, Isadore Znamirowski, made to WWII: How the Star acquired Bars and saved lives.
Learn  about humanistic text-processing computer technology: SGML.
Learn about humanistic mathematics computer technology: APL.
Read (176k) essay on how I think programming should be done.
Learn  Robert Musil's (1880-1942) ideas concerning meaning in engineering work: Precision and Soul.
View my computer-generated "Envelope Art".
Learn some principles of good web design.
Leisure is the basis of culture.
[ ]
[ Learn how the Star acquired Bars and saved lives! ]
[ ]
[ Work with Robert Musil's 'Man Without Qualities' in an engineering office! ]

Go/Return  to Brad McCormick's [regular] aphorisms for a human[e] world.... (1-2-3)
Go/Return  to Brad McCormick's (mostly political) questions for a human[e] world....
[ Learn about SGML! ]
Go to obvious ideas I didn't have: "Why didn't I think of that?"
Go to more thoughts.
Go to shorter thoughts (McLuhanesque probes).
Go to (other persons'...) quotes.
Go to "Stuff".
Go to thoughts and images not otherwise classified.
Return to Essays page.
Return to Brad McCormick's resume.
[ What's new here? ]
What's new on this website?
Go to website Table of Contents.
Return to Brad McCormick's home page.
Return to site map.
[ ] [ Go to Site Map! ] [ ] [ Go to website Table of Contents! ] [ ] [ Go home! (BMcC website Home page!) ] [ ] [ | ] [ ] [ Click me to visit website Icon Gallery! ] [ ]
[ ]

Web history: See  BMcC home page (Also: Site map...) as it appeared in July 1997.

[ Go to: The duty of communicators! ]
[ Where is AOL man going? Where are you going? ]
[ ]
Copyright © 2000-2004 Brad McCormick, Ed.D.
bradmcc@cloud9.net [ Email me! ]
15 April 2008CE (2008-04-15 ISO 8601)
[ ]
[ Washingtonpost.com headline, 21-22 Jan 06 ]
Above: washingtonpost.com headline, 21-22 Jan 06. (Article criticizes a Christian fundamentalist biology theory, not a computer chip architecture.)
[ ]
[ Loose HTML 4.01 Checked! Test me! ]
[ ]
[ Whatever happened to Chicken Little? ] [ ]
[ ]
[ Work with Robert Musil's 'Man Without Qualities' in an engineering office! ]
The engineer's creed
[ ]
[ This way to the egress! ]
[ ]
[ Previous aphorisms! ]
[ ]