|
0 |
The
DP Golden Rule: Do unto programmers and support personnel as you would
have them do unto end users.[fn.122a] |
We all need:
Compassionate computing. |
1 |
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.... |
|
|
|
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.
|
3 |
+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." | | |
|
|
|
Right: Image from Nov 2003 IBM
advertisement
Learn more: IBM says this 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.... |
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] |
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".) |
19 |
From somebody's email "sig" file: |
|
Data is not information.
Information is not knowledge.
Knowledge is not wisdom. | | |
20 |
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 |
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].
|
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 |
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. |
|