A Leanpub Frontmatter Podcast Interview with Gerald Weinberg, Author of Perfect Software and Other Illusions About Testing
Gerald Weinberg is the author of Perfect Software and Other Illusions About Testing, amongst his many other books, many of which can be found published on Leanpub. In this interview, Leanpub co-founder Len Epp talks with Jerry about his fascinating background in computing, some of his experiences at IBM, his approach to writing, and the current political climate in the United States, amongst many other things.
This interview was recorded on December 19, 2017.
This interview has been edited for conciseness and clarity.
A Note About the Leanpub Frontmatter Podcast
This summer we split the old Leanpub podcast into two distinct podcasts:
Frontmatter, which is a general interest podcast where you can listen to Leanpub authors talk with Leanpub co-founder Len Epp about their books and their areas of expertise, from data science to molecular biology, to the history of labor and management. And for those interested in the nitty-gritty of what it takes to be a successful self-published author, at the end of each episode Len asks the author about how they made their book and how they are spreading the word, and other publishing shop talk.
Backmatter, a new podcast focused specifically on the publishing industry and its latest trends. In each episode Len interviews a professional from the publishing world about their background and their insider’s perspective on what’s happening in the huge and evolving world of book publishing.
Len: Hi, I’m Len Epp from Leanpub, and in this Leanpub Frontmatter Podcast, I’ll be interviewing Jerry Weinberg.
Jerry I’m sure needs no introduction for many of the listeners to this podcast. While it’s not possible in a brief introduction to capture even just the highlights of everything he’s done, I hope it’s enough to say that Jerry’s a writer, consultant, teacher, computer scientist and author of many influential books, including The Psychology of Computer Programming, An Introduction to General Systems Thinking, The Secrets of Consulting and Perfect Software and Other Illusions About Testing, amongst others.
Jerry’s also a novelist, and you can check out his books on Leanpub at https://leanpub.com/u/jerryweinberg. You can find him and his blog at geraldmweinberg.com and you can follow his entertaining Twitter account @jerryweinberg.
In this interview, we’re going to talk about Jerry’s background and career, some of his books and ideas, and about writing.
So, thank you Jerry for being on the Frontmatter Podcast.
Jerry: Thanks for inviting me. I hope I can give some useful information.
Len: I start these podcasts by asking authors about their origin stories. You’ve done so much in your life, you have a number of origin stories, I suppose one could say. I just wanted to ask you first if you could talk a little bit about where you grew up, and how you first got started writing?
Jerry: Well, I don’t think I ever grew up. I’m still waiting for that to happen.
I spent my youngest years in Chicago, first on the south side, and then we moved to the north side. And I left Chicago — my father’s business failed, and he went to start a new business in Omaha, Nebraska; when I was in the middle of high school I transferred there. That was one of the most shocking moments in my life. I don’t know how many of your listeners have moved in the middle of high school, but it’s kind of tough, especially for a kid who was — I was a bright kid, but not very social. So I didn’t have a lot of social skills, and it was hard to make new friends. So there I was, and that got me started off in life.
How I got started writing? It’s hard to say, because I can’t remember when I didn’t write, just like I can’t remember when I couldn’t read. But I remember, before I was seven years old, I don’t know how old, but before we moved to the north side of Chicago, my father used to play a game with me, where he’d be reading the newspaper in the evening, and he’d pick out a group of words from the paper that he would find in reading. And if I didn’t know them, I had to look them up in the dictionary, and then I had to write a story using those words. I did that every night he was around. I’ve used that exercise with my writing students. It’s a very powerful exercise, and we have variants of that we do.
Ever since that, I’ve been writing. I didn’t think of myself as a writer until I published a couple of books, which I thought, I was just trying to help people do better with their computing. And somebody called me a writer, at a certain point. And well, maybe I am?
Len: Speaking of school, you had an interesting experience that I identified with a little bit. I believe you got put forward a couple of grades at some point. I don’t know how young you were, I but believe the story goes that the teachers kind of isolated you from the other students, and had you even grade their work or something like that?
Len: My minor version of that was I was so good in grammar class, that they just made me sit in the back, and because I had poor handwriting, they made me write out novels by hand. It didn’t work.
Jerry: It didn’t work for me either. I haven’t thought about that for a long time, but we used to have these charts on the wall with perfect penmanship, and I was supposed to try to imitate that. I was never any good at it. Some people said I should’ve been a doctor, because I could write and [?] scribble prescriptions.
I was in the second grade, I think it was. All the students did an IQ test, which was a big thing. They put a lot of stock in that, and apparently I got a very high score, which I didn’t know what it was; ,y sister just two weeks ago told me what it was, and it’s a little scary. It must have scared them, because they isolated me from the other students, partly for that, I think partly because I was a big pain in the ass for the teachers. I was always correcting things that they would write on the board, and so on.
And so of course, being put ahead or being putting aside brought attention to me from the other students. I was isolated with one teacher, except for music class and art, and then in recess. In recess I’d go out, and the other kids would beat me up for being different. I suspect a lot of Leanpub’s readers know this experience, or something like you did or I did.
One of the books that I am writing, I’m collecting material for, I don’t know if it’ll ever come out, it’s “How To Be Happy Though Smart”. Because I was pretty miserable as a kid, and a lot of it is because I was smart. I devoted my life to that, helping smart people be happy. A lot of my books are oriented that way. “How To Use Your Thinking More Effectively” and so on. So those early years formed things.
Len: I hope to read that book if and when it comes out. That relationship between intelligence or self-reflection and happiness is something people have long thought about and experienced, snd it would be great to hear your or read your thoughts about it.
I wanted to ask you were you a Cubs fan when you moved, and have you maintained that affiliation?
Len: So these must be good times for you?
Yes, I could wear my Cubs hat if you want to see me. One of my most distinguished features of my life is that — very few people could say this until last year — I actually saw the Cubs play in the World Series in 1945. We didn’t have television or anything in those days. So to see them, you had to be there. I was at Wrigley Field. Waited in line from three in the morning. Got pushed out by grown up people. I finally managed to buy a standing-room ticket, and I watched the Cubs’ seventh game of the series, which has affected me my whole life. I remained a faithful Cubs fan all that time.
Len: You mentioned being at the game in 1945. I believe you were probably about 12 or so at that time. What was it like being a kid in the United States during the Second World War?
Jerry: Well, that’s interesting. I’ve thought a lot about that, and it was a formative time.
First of all, we were all unquestionably in favor of the war. I mean, I suppose there were dissenters at the time, like there were later for Vietnam and so on, but there was no question in our mind — the Japs and the Germans were bad people, and we were going to defeat them. And we all worked hard. We collected tinfoil and paper.
One of my fondest memories of the time was, we collected paper. We had paper drives. And I would haul this wagon to school every Tuesday, filled with paper, and it’d be collected around the neighborhood. And one of the things that we did — we collected comic books. There was a lot of comic books around. And the reward you got for the team that collected the most paper that week was, you got to skip class, and load the truck that came around to collect the paper. While we sat, we would read the comic books. And of course, we would actually take some of them home, if we didn’t get to read them, and bring them back the next week, and get credit for them.
If I look back on it, I watch the Antiques Roadshow, and I see people getting $10,000 for a Superman comic book. I think I had millions of dollars of comic books in my hands when I was 8 years old.
Len: I was just going to ask if you’d squirreled some of those away?
Jerry: No, I don’t know what happened to them, those in the paper drive. We also collected cooking fat ever since, I remember. There was a sign on the butcher’s window that said, “Ladies, please don’t bring your old fat cans in here on Saturday.”
Len: You spoke about moving in high school. You ended up going to university, and I was wondering where you went for your undergraduate days, and what your major was.
Jerry: First of all, I didn’t plan to go to university. Everybody assumed I was going. But I had so much trouble because I was marked as a smart kid and everything. I was determined not to go to university. I had a job lined up in a garage fixing cars and stuff, which I really like to do. But they wouldn’t hire me in the summer, because they had a lot of people who would be hired, and then leave for school. So they wanted me to wait. I was going to wait until the summer was over, and then I would start my mechanic’s job.
For a summer job, I was a counselor at a camp. And one of the other counselors convinced me that if you go to college, you could meet girls. So I decided I’d go to college. I had a good reason, finally. And of course, that didn’t necessarily work out, that part of it. But I was in Omaha, and so I went to the State University in Nebraska, in Lincoln.
The day I got there was the day before school started. I remember that day very well, because at age 11, I had read an article in Time magazine about computers, and knew that’s what I wanted to do with my life. But nobody had ever seen a computer. Nobody knew where they were. So I went to university, and the counselors said, “Well, what do you want to major in?” And I said, “Well, I want to work with computers.”
I got this blank look because the counselor had never seen a computer. And so he talked to another counselor, and they came back, and he said, “Well, computers — that’s either physics or electronics.” And he says, “You’re pretty good at math, so it should be physics.” So I started out as a physics major, never seeing any computers.
After two years, I became the computer. That was my job title. I worked for the physics department inverting matrices with a pencil and a Friden calculator.
I did that for a year, which really shaped my thinking as a programmer later. I still had not seen a computer, and there wasn’t one on campus.
On the way, I had to take English and I ran into Bill Gaffney, who was my English professor. He did me a great service. Every week, we were supposed to write something. And I wrote something, I remember the first week, wanting to write about a process, which was also interesting, given my career. So I wrote about the process of dealing with a snakebite, because I had been the leader of the Boy Scout First Aid Team in Chicago, that won the city title a couple of years.
So I thought, “Right, I know about snakebites, I’ll write aboutsnake bites.” I wrote this totally boring paper about snakebites, and I got a C out of it or something. And the next week, he gave another assignment. I can’t remember what it was. But it was stupid, and I just wrote a paper about why it was stupid, and why writing what somebody else wanted me to write wasn’t what I wanted to do. And sure enough, I got called into the professor’s office. I thought, “Here it comes.”
And Bill Gaffney says to me, “This is the best paper I ever got.” He says, “You made a good argument, you convinced me. You don’t have to do my stupid assignments. But you have to write something every week, whatever you want. And that was my first inclination that I might be a writer.
Len: I read that story, and one thing I found really interesting about it was actually how you got that professor in the first place, who turned out to be so great, was a sort of close call, and took some gumption on your part, just like your challenge to your professor did in your second paper. Can you talk a little bit about that kind of sorting hat process that went on?
Jerry: First of all, we took a qualifying test coming in, and they told me, “You know what? You can skip freshman English, and go right to an advanced English class.” And I said, “No thanks, it’s just more work.” So I got into the freshman English class, and there’s a whole bunch of students standing in the hall. There were two classes meeting at the same time, two professors.
So they counted off everybody — 1, 2, 1, 2, 1, 2. I saw two people, and one of them, I don’t remember, he looked like a real professor, and the other one was Bill Gaffney, who was scruffy looking. He didn’t look like the other professors. And it turned out, he had a very different background. He had been an editor in New York for many years, and had come back to Lincoln, because his mother was sick. And I said, “That’s the guy I want to be with.”
But I had the wrong number. So I just lied about the number and went into his class, which is the smartest move I ever made. You think about how a moment in your life changes everything. That was it, looking back on it. We became great friends, I became his reader, and later on, another job to supplement my being a computer. We were friends until he finally died.
Len: It’s a wonderful story. As you say, there are those moments where you can look back and just see, “If I’d just gone into the other door, I might’ve ended up in a very different place.”
And so you spent your first years in Chicago, and then you spent some time in Nebraska. And I believe you then went to California?
Jerry: Before that, I just have to tell you a story. In the physics department, I was given a job as a teaching assistant, which they’d never done with an undergraduate before. So I got to teach physics there. I also probably did very well in philosophy, in logic and so on. And also in math. So that’s my major. I had four majors. You were only allowed to have two, but I had four. Math, physics, English and philosophy. I took a lot of ribbing from the English people, saying, “You’re not a humanist, you’re a techie, because you do physics and stuff like that.”
I went to Berkeley for physics. I was going to get a PhD in physics. It was interesting, because I didn’t necessarily know anybody who’d seen a computer at that point. And I applied through six places. Berkeley came back and said, “We’ll give you a fellowship.” So I accepted them, and then a week later I got an offer from MIT, to be in their computing lab.
Which was like, “Oh my God,” that’s what I really wanted to do. But I was afraid, see? I thought if I told Berkeley I’d changed my mind, they would blacklist me somehow. Like I thought all these people communicated with one another. My whole young life was marked by being really smart, but not knowing what was going on. Does that make sense to you, Len?
Len: That definitely makes sense to me.
Jerry: Part of me helping smart people be happy, is helping them know what’s really going on. So I went to Berkeley, and turned down MIT and some other schools. Stanford turned me down. That was the only one that turned me down, which was interesting, because a few years later, they invited me to come and be on the faculty. That was kind of satisfying to turn them down.
Len: I imagine. What was the atmosphere like at Berkeley at the time? This would’ve been sort of early cold war, if I’m correct?
Jerry: Yes, it was before the big Berkeley demonstrations and things like that. I was pretty busy. I was studying. We had our first child there, and a second one on the way. I was getting ready to get my PhD in physics, so I wasn’t too involved in campus life. But as far as I know, there wasn’t a whole lot going on till a few years after I left. But it was California, and I was different, and I was seeing new things that you don’t see in the mid west.
One day, I had passed my oral exams and all my course work, and I was had to work on my doctorate, I was working with a professor that had been my professor’s professor. They had introduced me from Nebraska. I was working with them and setting up experiments in cosmic rays, which I was totally uninterested in. But I was a studying a PhD about cosmic rays.
I’m reading Physics Today magazine one day, and I turned the page, and there was an ad from IBM that said, do you want to help people solve problems in computing, and do this or that. The word “programmer” still didn’t exist then. So it didn’t say anything about programmer. And actually that’s exactly what I’ve always wanted to do. But they wouldn’t want me.
I wrote them a letter. That was of course well before email. I wrote them a letter, and they said, “Come down to the office Oakland for an interview.” And I interviewed, and they offered me a job for $450 a month, which was more money than I’d ever seen.
So I dropped out. I had another choice — at the same time, Boeing offered me a job — I don’t know how they got my name — and for twice as much money. That was another one of those binary decisions. Because at Boeing, I was going to design airplanes, which was interesting, but not as interesting as these computer things. And so I started working for IBM.
Len: Just to pause there for a moment for people listening. I might be mistaken about this, but at the time, IBM was International Business Machines — it wasn’t seen as a computing company.
Jerry: Right. In fact, when I went to San Francisco, at the branch office, my title was Applied Science Representative. My job basically was to apply science to selling business machines. They did not have a computer in the San Francisco office. They had one on the way. There was probably no computer in San Francisco at the time, if you can imagine. There was no Silicon Valley.
I was taken down once, around that time, to San Jose, which was a farm community, which had an IBM card plant, and a Ford assembly plant. But there was no computing business, except in the garage. Secreted away, IBM was developing the first disk drive, which was a very impressive refrigerator-sized device that shook the whole building whenever the arm moved from one disk to another. That was an experience I’ll never forget.
Anyway, there was no computer in the office, but I was going to be the one. So they put me in a closet where they had all the books, all the manuals. And I had to read about programming the IBM 650, the IBM 607, and the IBM 704 computer. Nobody had ever seen one of those yet. And they say, you have two weeks, a couple of other guys are starting, and you’re going to teach them how to program.
Len: Wow, that’s quite a burden.
Jerry: So I studied in that closet for two weeks, and I guess I learned how to program in theory. But I had no computer to actually try. I gave a class, and then a week or two later, the 650 arrived in the office. And I got to actually run a program, I’ll never forget it.
Len: I’d just like to actually pause there for a second. One detail I didn’t know, that you mentioned earlier, was that you first read about computers when you were 11 and were immediately struck by them. And so, now that we’ve finally got to this climatic moment, when you encounter your first computer, what was your impression when you were 11, of what computers would be?
Jerry: I think it’s a couple of things. One is, I thought that they were perfect. They were called “thinking machines” or “giant brains.” After that time, I read Ed Berkeley’s book called, Giant Brains; or, Machines That Think. That really impressed me. I thought they would be perfect, because they perfectly execute all the errors that I make, right? People haven’t quite realized the significance of that. You can make errors [on a computer] a lot faster than you could working by hand.
But I had some sense of error problems, because of my job as a computer. I was involved with that.
The first thing I did was, I wrote a program to compute a table of sines and cosines, a trig table, I used trig tables, that was the way you did calculations in those days, and computed the whole trig table in a matter of minutes. I was stunned, I was just like, wow, this is more than I even expected, more than I had even dreamed of. I was just in love with the machine at the time. From then on, it was all downhill. I’ve been doing it ever since.
Len: I just wanted to say here, one of the themes of this podcast is, if the author is involved with computers and software and things like that, I ask them, “When did you first get into computers?” And most of the time, the answer is, when a parent brought one home.
So it’s just exciting for me to hear your story about having one brought to you in a very different way, and with such a build-up, where it was something you’d anticipated and knew about before, just waiting for it to finally be there. It was very different from the experience that people would have, had, say, from the 70s onwards, with having one put on the kitchen table or something like that.
And so now you’re working for IBM, and you’re working with computers. And you then ended up working on Project Mercury. I was wondering if you could talk a little bit — first about what Project Mercury was, and then tell a little bit of the story about how you ended up working on that?
Jerry: Project Mercury was the [effort to put the] first man in space by the United States. By that time I was working in Washington DC for IBM. I’d been transferred first to Los Angeles, where we tried to start the first software organization with IBM. We were doing okay until we sold a big job, a big simulation for Motorola. And it was cancelled by the IBM executives. They said they didn’t want to be in the programming business.
I was 1957, and then I moved to Washington DC, the internal systems division, to be part of their job. We bid on the Mercury Project. But what had happened was, I was on a trip somewhere. I can’t remember where, trying to sell computers for IBM. I’d been two weeks away, and when I came back, there was this [?] in the office who did my mail, and I went to my desk, which I shared with three other applied science representatives, because we were not supposed to hang around the office. We were supposed to always be outside.
And I got my mail, I got on the elevator, to go down and go home. And on the elevator was Saul Gass, I don’t know if you know his name, but he worked for IBM at the time. He wrote books on linear programming.
Well, before I went in the elevator, my boss called me in and said, “We’re going to have a bidding conference down in Virginia,” in the next day or something. “I’m bidding on Project Mercury.” I said, “No, I’m not interested.” Because I didn’t know what Project Mercury was. I’d never heard of it.
So I got in the elevator and Saul Gass said, “Are you going to the bidding conference?” “Oh no, I’ve been travelling. I don’t want to go on another trip.” And then I sort of said, “By the way, what is this Project Mercury?” And he says, “We’re putting a man in space.” And I just like — my whole body just — I can still feel it, it’s like I just heard the sound.
I was a great science fiction reader, and here was putting a man in space, and I just turned down an opportunity to be a part of this project. I got back on the elevator, and it was just another one of those moments, right? I went upstairs, I said, “Is it too late to change my mind?” “No, you can go.”
I went down to Norfolk, Virginia for this bidding conference, where there were over 100 different groups bidding on the space tracking network that would be part of the project. IBM was teamed up with AT&T, and Burns and Roe Construction, and Bendex for radars. We had a team, we spent three or four days down there. And then we were to write a bid.
Well, as I learned later — when I was [?]… the problem they had was, instead of defining what their problem was, they had to find the solution approach — NASA — their solution approach wouldn’t work. I read it and it wouldn’t work. They needed to handle multiple devices from around the world, radars sending data from all over, running displays and things locally in the control center. And they really were going to do it. Because those days, every computer was just a single-track machine. There was no multi-programming.
I had read some theoretical articles about multi-programming. Nobody here had a system. IBM did a system, and realized that their approach wouldn’t work. So I wrote up a whitepaper, explaining why it wouldn’t work, and I turned that in, as opposed to doing what they wanted.
IBM executives were furious. “You’ve got to respond, do what the customer -” So we’re all, “We can’t do it. It can’t be done.”
We finally convinced them to give this paper to NASA, and then a week later NASA called IBM and said, “You’ve got to come down here.” I went, “Oh God, they’re really going to give us hell for doing this.” We came down, and they said, “We read your paper, and you convinced us. None of the other people who were bidding on this understood this. So we want to give you the contract.”
Which was like 100 million dollars. “We’ll give you the contract, would you be willing to change the members of your team to somebody else?” And now we’ve got AT&T and so on. And so we got the job. And we built it. Nobody every built a system like this before. And it’s been the basis of the space tracking network ever since.
Len: What made it unique? Could you explain to people who might not know, what multi-programming is, or what a multi-programmed operating system means?
Jerry: Multi-programming’s something that we do naturally. You can pay attention to more than one thing at a time, simultaneously juggling and reading something that’s on a wall or talking to someone, and so on. We do that, we don’t think about it so much. In this case, their computer had to be juggling, if you like — radar data coming from all over the world. Signals going back to them. Signals going to the control center. Signals going up to the satellite, and when to bring it down, and so on. Keeping its time and all that. We really didn’t have clocks in computers at that time. And we had to keep time.
We had to build our own clock. I had an engineer on my team, and we slotted it into the mainframe, because IBM would’ve taken a year or two to produce one, which they ultimately did.
That’s what we were doing, keeping track of all the data, keep trying to think, and eventually bring the thing down with a person in it. Bring him down alive, we used to have to tell people. They’d say, “Oh you’re putting a man in space.” “No, we’re putting him in space and we’re bringing him back alive.” That was our mission. Easy enough to put somebody into space if you don’t care whether you bring him back.
And we had to bring him back within a very precise area out in the Pacific Ocean. Because if you were off a little in your calculations, it could be 20, 30 miles away from where they were expecting him, and they would never get to him in time before the thing would sink or whatever. So we had a lot of stuff to do there for the first time. For the multi-programing, which was something we had to make up — modify our machine a little bit, write a different kind of program.
We had to locate Australia. People didn’t know where Australia was precisely enough for us. We had two tracking stations in Australia, one on the West Coast, one on the East Coast. And they were very important, tracking the satellite. But nobody ever needed to know within a few hundred yards where these places were relative to Washington DC. So we had to launch a satellite and track it and use that tracking to backtrack to the location of these two stations.
And we didn’t know what time it was in Australia. There was no way at that time to synchronize a clock between say the US and Australia and other places in the world. We had to solve that problem.
Contrary to what people believed, the earth was not a sphere. It’s a kind of pear-shaped thing. We had to figure out from early tracking data what shape the earth really was. It’s all kinds of [?] summits. It was a wonderful experience.
Len: It sounds absolutely fascinating. For those listening who might not be all that familiar with the history, I think there were two million people involved in Project Mercury in total. It was a, a huge national effort.
And it was very intense. I only know about this from reading and history and film and things like that. But the Russians made it to space first, and that hit Americans in particular very hard. Partly because of the titanic struggle going on between two views of the world that was at stake in the public consciousness, and people weren’t necessarily sure which one was right. There were all kinds of claims being made about which political system would be better at finding the secrets of nature, and then transforming them into successful technology. There was just so much at stake.
I wanted to ask you what, what the feeling was like when you succeeded?
Jerry: Interestingly, it was kind of an anti-climax in a way. In a way it was a feeling of great triumph. And by the time we actually put the first man there, we had already done things, with other living things. We’d already brought them back successfully. We knew, and we had such a high level of reliability in testing, that during that project we created the first test team that ever existed, as far as I have ever known. Because we knew that testing a system was a major job. We took our best programmers, we made them into a test team. Made their own tools, simulations and so on.
So when it actually happened , the first guy went up and we’re very anxious about, “Okay, we’re really [?]. But we knew deep down what would happen, and we brought back John Glenn.
I don’t know how we decided, okay, yeah, that was done — which is something that I’ve observed over the years in consulting. The different ones of us have very different ideas about what “done” means. You have to watch out for that.
You write a program, and some people think it’s done when you have a design that you think will work. And they’re finished. Some grunts will write some code and make this happen. And other of us more grunty ones, we think well, until we actually get the thing running in code and our tests, we’re not really done. Other people think, until it’s run through all the tests and brought live and brought back successfully many times, you’re not really done. So those different views give different ideas.
And you can see if you look at all the books in Leanpub, some of the authors think it’s done at one point, others will think it’s done at another point.
Len: I’ve got a lot of questions to ask you about your consulting work and your discoveries and inventions in that time. But before we get there, I’ve got a couple more things about your career to ask you about.
I think it was at some point after your work on Project Mercury that you went to the University of Michigan, and you completed a doctorate there in Communication Sciences. Is that correct?
Len: And what led you there?
Jerry: IBM started a new program called “The IBM Resident Study Fellowship.” They wanted to decorate their stationary with a few PhDs. And so, I applied for this program. But I was involved in the Mercury Project at the time, and I guess I was kind of central to what was going on. They “lost my application.” I objected to that.
No, I got that a little backwards. They also were starting at that time, the Systems Research Institute in New York for Advanced Computing. Advanced systems work had some of the best people. I applied for that, and they lost that application. And so I protested that. I won my protest, it was a kind of scandal. My manager had lost it, because he didn’t want me to leave. So they rewarded me, and I got to be in the first class there.
That first class was quite an experience too. We were told we were the 30 best software people, systems people in IBM. It was a three-month long class, and after a couple of weeks we were so smart we finally figured out — if we were the 30 smartest people, who are these instructors? Most of them were kind of sales people who had no particular depth or understanding.
So we kind of took over the class, and taught ourselves — except for two people, who are both famous, who were very different. Ken Iverson was one. You know who he was. He designed the APL language. And Fred Brooks, who wrote The Mythical Man-Month. And they were fine, we got along fine with them. And the rest of them, pretty much we replaced. I wound up teaching classes and so on. And after that class, I was taken aside and they said, “We’d like you to come here and be on our faculty. Your job is to see that revolution never happens again.” That was a unique thing for IBM.
I accepted that job, but in the meantime I had to be taken of Project Mercury. And they didn’t want to do that. So we went back. Now after getting the isntitute going, then there was a SUNY [?] fellowship that came up, and I applied for that. And they lost my application. And I went through the same business again.
I wound up going to Michigan. I had a choice of places to go. I narrowed it down to MIT and Michigan, and I went to both places to interview. At MIT I saw — I can’t come up with his name right this moment — Corbatto [?] — and he wanted me to come and write a multi-program system for them, and then they’d give me a PhD. And I thought, well, I want to learn new things. I didn’t want to just do the same thing again. At Michigan, there were people there that I really wanted to work with.
They were starting this Communication Sciences thing, which they were having trouble getting people for, because it was a really hard program. So I went, along with Ted Codd, who invented relational databases and other things. And Don Norman, who wrote The Psychology of Everyday Things. Both of us were there, and a few other people who later became very well known.
It was a funny experience. We had to qualify in seven different fields that had to do with communications. And computing wasn’t one of them at that time; now the program is called Computing and Communication Science. There was an introductory computer course required as part of the program. But the problem was that I had written the textbook that was the textbook for that class, so I assumed I didn’t have to take the class.
The second year, the instructor for that class saw me in the hall. He says, “How come you’re not in my class? It’s required.” I said, “Well, I wrote the textbook.” He says, “Well, that doesn’t matter. We can’t set a precedent for you.” So I talked to my thesis adviser [?] and he told the guy not to be ridiculous, and took care of that. But we qualified in all these different subjects, which that was a great experience.
Len: And did you have to write a dissertation?
Jerry: Yes, we wrote a dissertation. My dissertation had to do with using computers to do psychological experiments on thinking, which has always been my interest. And I showed how our experiences came from, and how I could generate that on the computer and so on. It would have been published in psychology literature, but my psychology member of my committee, who’s a famous guy in psychology, was going to get it published as a psych monitor [?]. He died two weeks before my thesis defense. He was mowing the lawn and he dropped dead. It was another one of those dividing moments of life. So I never became a quote “psychologist” in that sense. But of course now, it’s standard to use computers to run psychological tests of all sorts. You can still get a copy of my thesis at the university microfilms — I suppose Leanpub could publish it.
Len: That would be a great artifact. Actually, it’s funny, I tried to find it in the University of Michigan library and couldn’t. I confess I only looked for about five or ten minutes, but that would be great.
Jerry: [?] found it and he got a copy. So I have it now — of course in those days it was just typed, right? That was a big innovation too, was I actually had it typed by a company that had a word processing machine. IBM actually paid as part of our fellowship; for about $800 they were all typed up. That was a new thing. But it was great, I mean going to graduate school where I was getting my full IBM salary and all my expenses were paid. All my books were paid for, my tuition, and so on. So that was very nice.
Len: And where did you move on to after that?
Jerry: Then I went back to IBM in New York. Then they were starting a Systems Research Institute in Europe, in Switzerland, in Geneva. I was considered I guess the one who knew most about starting up an institute. So I went to Geneva for several years and started that up. That was also a very good experience. We had had students from all over the world.
And my wife, in the meantime, was getting her doctorate in anthropology at Michigan. She was doing her fieldwork in a mountain community in Switzerland. So that was a great time, because we had two three-month classes in the year, and then the rest of the year we had off to do research and study and so on. I liked that because I could do writing then.
Len: That sounds really exciting.
Gerald: It was really great. I was also studying French then. I finally mastered a language reasonably well. IBM paid for a tutor. The director of the institute and got an offer for a professorship in Italy. So he had to leave, and they offered me to become director. I don’t want to be director of anything; I never did.
I turned them down, and they brought in another guy, and he knew that I had turned down the job that he had taken, and he wasn’t too happy, and I wasn’t too comfortable there. In the meantime, Dani finished her doctorate and was looking for a university job somewhere. And of course, there was no chance in Europe. So we found a place in the US where she could go, and where I could go, and start a new department there — the School of Advanced Technology in New York State.
We were there for a few years, and one day, it was a big deal — I was a college professor, we did a lot of good things there, but one day I was giving a lecture — they used to fill my classes with huge numbers of students — and I fell asleep during a lecture that I was giving. I decided if it was that boring to me, it must have been terrible for them. And I decided that wasn’t the way to teach.
In the meantime, while we were there, Dani went to Nebraska, and I went independent. But at Nebraska, there was a program continuing something we had done at Binghamton. It was based on experiential learning. Out of that, you see I have this four-book series at Leanpub about how to do experiences; ever since then, that’s what we’ve done. We’re not just teaching computing, we’re teaching life skills and so on, by experiencing. No lecturing, no PowerPoint, nothing. For 10 years we ran a conference that way and we trained thousands of people — it was beginning to affect other conferences, finally.
Len: And so that was the beginning of your time when you said you went independent, more or less the beginning of the era of your work as a consultant?
Jerry: Actually, that began at IBM. I mean, I was a consultant at IBM. But of course, with a secret agenda — not so secret. When I left they had to wind up purchasing more IBM equipment than before I came, or not throwing it out in some cases. They had to solve some problems that they had. When I went to the university, part of my contract with them was that I would have a certain amount of time for consulting. Because I still had IBM as a consultant client.
Jerry: And then I took on other clients. It was kind of freeing. I didn’t have to sell them IBM computers if that wasn’t the best way to solve their problem. Sometimes [you could] just sit down and think about it, they could solve it sometimes with pencil and paper. And sometimes with a computer, or with a program that had been fixed in some way, or something. So I was consulting, that really started when I was at IBM.
Len: You wrote The Psychology of Computer Programming and got it published. I wanted to ask you what was the inspiration for that book?
Jerry: Inspiration is an interesting word. By then, I’d published a couple books on programming. See, when I first taught in a programming class in IBM, for the IBM 709, the class was five weeks long, five days a week, eight hours a day. And the way the class had been designed, and had been taught before I started doing it, was you took the reference manual for the machine, and you went through it page by page and taught every instruction in alphabetical order, and there were 300 instructions. Can you imagine this?
Jerry: And you couldn’t run anything on a computer. They were too expensive. It had to be done all theoretically.
I made a great innovation. With great effort and political savvy, I got permission to run one program one time for the whole class in five weeks. That was a big innovation which like shook up everything. It’s hard to recapture what that was like.
Anyway, at least I changed the order of things, and we didn’t teach stuff in alphabetical order, but in something that made sense. I didn’t actually teach all 300 instructions. And I thought — I don’t know if the class was very good.
I did had a moment of enlightenment. At the end of one five-week class, a guy who came from some government agency, probably from the National Security Agency, came up to me and said, “This was the most wonderful class. You’re such a great instructor. Everything was perfectly clear.” And I said, “There must be something you didn’t understand. Isn’t there something you can tell me?” And he said, “Well, I have one question.” “Okay?” And he says, “What’s a bit?”
This was after five weeks on a binary machine, right? So that was a big moment for me that brought me down and kind of let up. It was the beginning of me questioning this lecture method. They say it’s an a way of moving material from the instructor’s notes to the student’s notes without passing through the mind of either one. I got an improvement on that at Michigan. I had an instructor who actually made his notes by copying the textbook, and then reading it aloud, from his notes, as he wrote the copy on the board. Well, all this was led up to the fact that I decided we needed different methods of instruction. And it’s been a whole new world.
Len: One of the lines from The Psychology of Computer Programming that struck me that I wanted to ask you about was, you write, “Our profession suffers under an enormous burden of myths and half-truths.” And I was wondering if you could maybe give us a general impression of what the myths and half-truths were at this relatively early moment in the history of computer programming. Obviously, there were some myths and half-truths around how to properly instruct people.
Gerald: Yes, there was that. Well, for example a lot of our terminology builds those myths and half-truths. Of course in those days, they were also called “giant brains,” which they’re not. But one of my favorites, when I was teaching that course, one of the problems I had was on the machine. We had fixed-point arithmetic, and we also had floating-point arithmetic built into the machine, which was a big innovation, that they build floating point instead of simulating it on the machine.
So I was explaining floating point and fixed point to people in the class, and someone said, “Well, what’s the difference?” And I said, “Well, look. We have these two kinds of numbers. And in one kind of number, the decimal point is always in a fixed place. And in the other point, the decimal point floats around in the number depending on the calculation that you do. So where the decimal point is fixed, that’s called floating point. And when the decimal point floats, that’s called fixed point.” That should be easy to remember. That’s an example of the kind of stuff that we had to deal with, and we still have to deal with it.
We’re stuck with those names. What were some other myths?
Of course, program testing was — first of all, there were no separate test groups at the time. And then when we started that and the Mercury Project and other people picked it up, and difficult projects, then the idea got around. But it got misinterpreted that having a testing group was a way to get the testing done cheaper because you didn’t have to have really smart people to do it. So the myth that testing is easier than programming and writing code is just a stupid myth because anybody can write code if it doesn’t have to work.
Len: That’s very interesting for me to hear you say that, because that’s obviously a myth that persists to this day, 46 years after the publication of that book. And the testers that I’ve interviewed for this podcast carry with them that — I mean, the sense that testing is somehow an easier, throwaway activity that you can commoditize, is still strong enough that people have chips on their shoulders about it.
Jerry: Yes, absolutely. And we’re still fighting that. And of course in my book, Perfect Software, I address that issue quite a bit. Is testing just harder than programming? Because, first of all, if you write a program, and you don’t have any testing, it doesn’t have to work. And it’s not very difficult to write programs that don’t have to work. The same way you can write programs that are fast if they don’t have to work.
That’s what I call “The First Law of Computing:” you can accomplish anything in a program if the program doesn’t have to do what you want it to do. It can be fast, it can be short, it can be beautiful on the page. And people have not necessarily understood that.
So that’s been a struggle. We’ve been fighting that for a long, long time. But it’s just harder. I mean, there’s so many ways a program can be wrong, and in ways that can be hidden.
One of the books I wanted to write, and I might still write but I kind of gave up on it, was a book just containing stories of various program errors that we’ve found over the years through testing. The trouble is when you start describing the situation, it becomes very clear what the error is going to be. But at the time, it’s not clear at all to you. So it would be like a great book of mystery stories, except — and I’ve written mystery stories — I can’t somehow make the same thing happen when I’m writing about an error that we spent three months trying to find.
Maybe I’d have to dramatize that? I’m still thinking about it. But it’s something I still haven’t been able to accomplish. Those who have done it know what it’s like when you can’t find what’s wrong. Or when you have no idea anything was wrong until some disaster happens. Somebody dies because of a computer fault, or some huge accident happens. In the book, Perfect Software, I have just examples of four or five million dollar errors that were made, all of which were one character wrong in a program.
Len: That’s amazing. It’s interesting — in a world where software sits underneath or on top of everything we’re doing, the importance of getting things right has just grown over time.
Actually, another thing I wanted to bring up that you invoked in The Psychology of Computer Programming in the early 70s that persists to this day as a problem, is — you write in the book that you want to encourage the manager to look upon the programmer as a human being, rather than as another one of the machines.
And it’s interesting that in the last 25 years or so, on the West Coast of the United States, a culture has emerged where the programmers are seen as these highly sought after professionals who are the equal or even the superior of the mere executive who manages the business side of things. But this is not true, generally speaking, on the East Coast, where another kind of culture persists, where even not just the programmers but the computers themselves are seen as a cost-center, and not respected.
I was just shown an image the other day from a colleague who was looking into some insurance. And the picture of what a programmer was, that they had to promote their tech insurance, was a sort of overweight guy standing in front of a bunch of servers, holding a ball made of cords, which is actually a particular image that I’ve seen in East Coast marketing. I was wondering if you could talk a little bit about why you think this relationship to the programmer as a mere machine is something that has persisted so much in some places?
Jerry: Okay, first of all, it’s great that you mention this because I started out my career in the Midwest, where there were no computers. I was the computer, which was a big influence. Then, I went to the West Coast and I got my first real training there under Bernie Dimsdale when I went to the Los Angeles area. Who had worked with John von Neumann.
And so I learned certain things, like what’s now called “pair programming”, program reviewing, and so on. And the whole West Coast at that time, clearly had a different culture even then. It was 60 years ago, it was already different between the East Coast and the West Coast. There was a western giant computer conference and an eastern giant computer conference, and they were very different. You may be able to find the proceedings of that, and you’ll see already see this difference.
And that may have been because we didn’t have jet planes yet, and we didn’t have the internet. At a certain point, we had to fly our programs to the East Coast because there was no computer on the West Coast. We had a 704 that we were using. We’d punch up a bunch of cards, fill boxes with them, send them to New York. And then they were on a plane, and then they would be picked up and run there, and then they were brought back.
One of the great mysteries that’s never been solved, is one of our things never came back, and we don’t know whatever happened to it. It was on a non-stop flight from New York, but our punch cards output wasn’t there when the plane landed. So it’s somewhere in Never Never Land for the last 60 years.
We were developing the world’s first operating system, certainly IBM’s first operating syste. And before everything was run on the 704, this machine that was $800 an hour. And at a time for $800, that would be like $5,000 today. I mean, I was making $450 a month and the machine was $800 an hour. And it was run like a personal computer where you sat there — but at least personal computers have operating systems, there were was nothing, you had to do everything by hand. You had to enter stuff in binary in the console and so on.
Ee were trying to improve on that. We were trying to test it from Los Angeles when our machine was in New York. And this just goes to that cultural thing — we were told we couldn’t do that. They wouldn’t run our operating system because the way they charged people for using this machine at $800 an hour, they had a time card. IBM was still in the time card business. That was one of the business machines. When you’d punch in in the morning, and you punch out at night. And they used one of those time card machines on the console of the machine — there was no clock in the machine. When you started your job, you punched — it was this kind of like a chess tournament. You punched in and then when your job finished you punched out. And then they used this to calculate on hand how much they were going to charge you.
Well, we were running on our operating system, our basically newborn operating system. We’re running 30 jobs at a time. And many of them, they would try to punch them, but the printer would print out a line and they’d say, “Okay, we’re finished.” And they’d stick in the next one. For many of them, there was no difference between the start time and the end time, and they couldn’t charge people. So they forbid us from testing our operating system. That was the East Coast people, right?
It was also the East Coast people who came out and eventually broke up our group where we sold a big job of programming, because they didn’t want to be in the programming business. They said it very clearly. It was also the East Coast people, a few years after that, where we decided that programming was getting to be a big deal at IBM, we would get a bunch of programmers together in one place — I think it was 1961 — the World [?] Conference.
We went to this Country Club up in New England. And the first thing they discovered was, there were a lot more programmers in IBM than they thought. And then they said, “Well, this is a disaster.” And so their sales executives took over the conference, and tried to direct programming to be something that it wasn’t. These were the East Coast people. So I mean, it was really deeply embedded there.
I have an image, will stick with me forever.
There was a break, and I go to the men’s room, and I’m standing at the urinal, and on my left side is one of these IBM executives — and you can tell because they were all in suits and ties — and on my right is another executive. And we’re all standing at the urinal doing our business, and one of them who had just come out of this big meeting with a lot of contention, he says, “Well, I guess one thing is at least it couldn’t get any worse.” And I just said to them, “You have no idea how it’s going to get.”
I mean they were thinking they were going to eliminate programming. The IBM 360 was sold to the executives. They didn’t want to release these machines. It was a new design, Fred [?] and his team had designed. I worked on the program structure. But after like three false attempts, they were sold on releasing this because you would write programs once and for all, and they would work on all the machines, and there are no more programming anymore. Can you believe this?
Len: That’s incredible, to be so wrong.
Jerry: They had no vision of what it involved, and I don’t know if it’s still true at IBM, but now IBM makes more money from software than it does from hardware, and software and services. So we could see this coming, but we couldn’t convince them. The West Coast people always seemed to understand that, and they’re largely separated. These few collisions that we had, you could see this difference.
I learned from my wife, who’s an anthropologist, culture is like that. It’s very conservative. And so these images have stayed. Of course you can understand why these managers — it would certainly be convenient if you didn’t have to test programs. It would be convenient if you write a program once and it lasts for 1,000 years, right? Wouldn’t that be great? I guess.
Len: There’s something that I’ve always wondered too, about, I guess you could say, the immateriality of code, and writing more generally. For example, it seems like there’s a certain type of, perhaps conservative, mindset, that gets very excited about building ships or building buildings. And it’s totally uninterested in books, or code, or even logic, or things like that.
My brother and I have a joke that you can divide people up into two types of people in an infinite number of ways. And there are some people who are just totally unexcited by things they can’t touch, and don’t feel like it represents a real accomplishment if you’ve done something that can’t be touched.
I remember, for example, when I was in university in the mid-90s and the internet was becoming a thing, I was studying English Literature, and there was always a pressure not to give money to the English department. But when all of a sudden you could say, “Well, we can make a website, and it’s going to be on a computer, and there’s going to be blinking lights and shit,” all of a sudden people became interested in giving the English department money, because there could actually be a tangible outcome, even though it’s kind of ironic in this circumstance that it was a computer-based outcome. Do you see this general sort of thing that we’re discussing, in a “two cultures” aspect to the approach to programming and computer work? Do you see it changing at all?
Jerry: No. Except we are changing in the following way. Experiential learning, see, is based on the idea that learning is not a pure intellectual thing. It’s not like pouring bits from my brain into your brain. People can get their hands on something and do something with the ideas that you have, that anchors them in a way that lecturing to them maybe doesn’t do.
As a guess based on some personality tests that I’ve done, probably 3/4 of the general population is more on the physical side of things. Some of us work with our minds, and that’s very real to us. But it’s hard for us to imagine what it’s like for somebody who doesn’t see these things as real, that are very real to us.
So we’ve managed in our training to reach a lot of those people effectively. But we see, if we get a sampling of the people in software, for example, and we test their personalities and so on, even though the general population is three quarters to one quarter one way, the population we get is probably the reverse.
But not everybody is like us. That’s the first thing to learn. And a lot of people just don’t get that, and it’s an even deeper principle. Not everybody is alike. Bertrand Russell once said that there’s two things that motivate people in their lives — two ideas. One is they want to be just like everybody else, and the other is they want to be unique. He was a smart guy, Bertrand Russell.
And it’s true, and you see that, right? I mean, when we grew up as kids and you skipped a grade, and you got put in the back of the room — I got put in a separate room — we wanted to be like the other kids. But there was a part of us that said, “Yeah, it’s great. I’m special.” Right? So both of those things are working at the same time. But a lot of people just never get the idea that other people are different.
Managers who manage, they say, “Do this.” And they think that’s done. They think all you have to do is tell somebody to do something, and that’s what managing is about. It’s the same business. So what we have done in our work is try to take into account that people are different and you can approach them in different ways. I think anybody who isn’t brain damaged could learn to write programs.
Len: I think this might be a good opportunity for me to ask you a question about — you’ve written about the fieldstone method for writing. And coincidentally, just before this interview, I was interviewing Ben Kelly in London, whom I believe you’ve met, and I asked him, “I’m going to be interviewing Jerry Weinberg in an hour. What question would you like me to ask him that you think people would be interested in hearing?” And you have a very physical example of dry stonewall construction that you use to talk about how you do writing. But Ben wanted me to ask you about any connection you see between that and building software.
Jerry: It’s not exactly the same, because the writing we’re talking about — well, again, there’s three kinds of writing. You can divide writing into, one is where you’re just trying to entertain. I shouldn’t say just trying to entertain, entertaining is difficult, right? But you just want to have something that’s interesting and keeps people involved. They’re on summer holiday, they’re at the beach and reading and they just want to feel good and enjoy it.
You could write just about anything. And so they already want to gather fieldstones of what is interesting — make up stuff that’s interesting. When you’re writing a computer program, if you’re writing a game, that’s exactly what you’re doing. You’re going to put a lot of interesting stuff together with an idea of what’s the central idea of the game. But you’re building around that so that the characters in the game are interesting, the different actions they have are interesting, and so on and so on. So, there the fieldstone method seems clearly applicable.
Now, I was actually writing a payroll program for somebody to do all their taxes and so on. You have fieldstones, but it’s more like working with bricks than fieldstones, where you know what has to be in there, because there’s this law about the taxes, and this law about withholding, and so on and so forth. Then of course, I’ve never found that to be as interesting. But it’s still challenging, and there’s a lot of different ways to do stuff. So I don’t know? It’s an interesting question, I haven’t really thought about — I’ll have to work on that question. You can tell him the answer is, “It depends.”
Len: I should say that the fieldstone method — I read a little bit of your book about writing using that method, and it’s really fascinating.
There’s this way of building walls and other structures where you go out into the fields and you find stones, and then you can shape them. And sometimes it might occur to you that a stone you didn’t have a place for belongs somewhere as you’re building something. And a stone you maybe thought belonged in one place could belong somewhere else. Is that along the lines of what you’re getting at with that method?
Jerry: Yes. The way that book came about is interesting, I think. You know who James Bach is, right? A testing guy. I don’t know if he’s got any books on Leanpub or not. Anyway, James is one of the preeminent — you outta try to get him to give you a book.
Anyway, he was student of mine. His father is a famous writer who wrote a number of bestselling books.
And James had a publisher — I think it might have been Prentice Hall but I’m not sure — they had given him a $30,000 advance to write a book on testing. Now you guys, you know what that’s like. I mean, you don’t do that — and almost nobody ever does that. I think part of that was because they knew his father was a famous writer who had made millions writing books. I mean, that really astonished me to hear that. Well, he took the money, spent it, and couldn’t write the book.
He came to our seminars and he was saying it was a big problem for him. He already feels under obligation to these people. So I had a consultation with him. He came out here to New Mexico in my living room. And we sat down, spent a couple days, and he asked me to help him write books. I explained to him how I write books. I described the fieldstone method — I had never thought about it as a method, it’s was just what I did.
So I was thinking of a metaphor and I said, “Well, it’s like building a fieldstone wall,” — I had done some work building fieldstone walls — and he says, “What’s a fieldstone?” He didn’t know what that was. So I had to explain to him what a fieldstone was, and how you gather lots of stones, more than you’re going to need. And you’re always looking for interesting stones, even if you don’t have a specific project in mind.
And then eventually you have a project and you look at your pile of stones and you start picking them out. This one fits here, no, that one doesn’t. Ideally, you hardly ever modify any of them, but you might have to sometimes to just get a little fit. And you build the thing, and you have lots of leftover stones that you don’t use. That’s how you have these beautiful walls.
We went through all that, and it just totally blew his mind, because he had watched his father write books all his life, and that’s not the way his father did it. And so he then successfully wrote his first book using the method. And he said, “You should write this.” And it never occurred to me that I should write this down.
You asked me before, where I never really answered, how did you get inspired to write The Psychology of Computer Programming? It was something very similar. People asked me, “Well, how do you actually write programs? How do you do it?” I explained to them. They said, “Oh, you ought to write this down.” “Oh, okay.” And then I wrote and did experiments and so on. Same thing with The Secrets of Consulting.
One day I had three calls from associates of mine who were consultants asking me questions about consulting like, “How do you decide how much to charge people?” Or, [?]. And after going through the third one, I was talking to this woman I had known for many years and she said, “That was very useful. Have you written this down anywhere?” “No.”
So in some sense I’m not really a writer, you see? I’m more of a consultant and a teacher. And I’m more of a consultant than a teacher. I help people solve problems, and then I work backwards and I go, “Oh, well maybe other people have similar problems. So I’ll write this down.” Or, “I’ll teach this, then I’ll write this down.” Does that make any sense to you?
Len: It does.
I had a question I wanted to ask you that’s rather topical and it was — because although often your writing may be pulled out of you by other people realizing that you’ve got something to say, I think it’s still safe to say you’re writer. And everyone in the United States is experiencing an interesting moment right now, and I wanted to talk to you a little bit about that, even though it’s very topical.
Just the other day, I found a tweet that you wrote after it was announced that the CDC had been banned from using some words in its 2018 budget documents. [Note: It’s possible there was a rather nuanced explanation for what happened at the CDC, as Slate reported — eds.] And you wrote those words, and then, “There, I wrote them. I’m a writer. I burn at the idea of thought control. I hope you do too.”
Jerry: I got a lot of positive response to that.
Len: I just wanted to ask you, you’ve seen a lot of change in your country. Do you think that this present moment is showing us signs that are good? That when the ship of history seems to be turning in a direction that people don’t want to see it go, they try and right the ship. Is that what you see happening now?
Gerald: Oh yes. Looking at it from a historical point of view many years from now, what’s going on in the US now — if we survive, if we don’t blow up the whole world, which is a possibility — could be seen as a turning point in history.
Because what’s happening in the US with the previous election and the president we have, has put a lot of people into action [?] kind of drifting along. But George Orwell wrote 1984 exactly about newspeak and how trying to control the words that people use, and inventing new words — it is just what’s happening in the US now. Like the whole idea about “fake news” is it’s a term that’s been invented to try and discredit the news media. It’s also exactly what Hitler did in the 30s, tried to control what people said and what they think and so on. And then there was resistance to that. And it’s cost a lot of people their lives and a lot of costs, and so on. We’re seeing that building up now.
Now, whether we’re successful at defeating this or whether we’re going to go into a sort of a Nazi era, we don’t know how it’s going to come out. But we’re a lot of people are working against it. And we need, I think, to raise human consciousness, that this kind of thing goes on all the time.
A very interesting example, which I will write up at some point: Back in the early days of computing, we tied these two topics together. IBM, when they finally realized, “Well, we’re going to have all this programming, at least we outta get it standardized,” like you could make all programs the same — that’s that thought again, right?
And they got together four of us who were considered, I guess, the best programmers in IBM, or at least maybe we were thought to be the most manipulate-able. I’m not sure.
We got together from different parts of the country, we met at the airport in Chicago, stayed at the airport hotel for three days, and drew up a set of programming standards for IBM. This is all for assembly language, right? And we got along pretty well, and we had a lot in common.
But at one point we had a real sticking point. In those days, there was a big argument going on about the commenting of code. One school thought every line of code should be commented. So if you’re adding one to a variable you’ve got a comment that said, “Add one to the variable.” I mean to me it was ridiculous.
And there was this other school — and now that you’ve mentioned it, it might have been three quarters, one quarter — and in the other school of thought, a program should explain itself as you go through it. Maybe you have a comment at the beginning saying, “This is what this routine is supposed to do.” But the comments were a big problem. I mean, they wouldn’t be updated, and then the comment wouldn’t say what it was really doing. And it didn’t matter what the comment said — the code did whatever it did, right? And so this created programs with testing.
I was of the school where no line should be commented. And the other three guys — and this was the three quarters again — thought that every line should be commented. And we hassled this for a whole day. And finally to get things moving again, we made a compromise, sort of. The standard was that three quarters of the lines of code should be commented. It was a ridiculous compromise. But, that was made a standard. And then of course, somebody, somewhere in IBM modified the IBM assembler, so that if three quarters of the lines were not commented, it wouldn’t assemble your program.
Len: Oh my God.
Gerald: Exactly. So then the next reaction was, the programmers in the assembly — I don’t know if you’re familiar with assembly language? When you made a comment, you have a space after the address field, and then everything after that is a comment. So programmers, to get through this assembler, would make a space and an asterisk after every line. So the comment was an asterisk, but the assembler didn’t know any better. And that was fine.
This went on for some months until somebody finally figured out how ridiculous this was, and they killed this feature in the assembler. And reviewing code over the years from those days, you can always tell what was written in that three-month period because it had all these asterisks there.
So this was the populace fighting back against these ridiculous rules.
Well, it’s the same dynamic that you see with this thing about forbidding certain words. I’m sure somebody in the government will make a word processor modification that says if you have one of these words in your budget we won’t allow you to print it, right? And then the writers will work around it with alternate ways of saying the same thing.
This is something really deep in human behavior that’s been going on, probably, for thousands of years. And it goes on and on. I don’t think it will ever stop.
Len: My next question was on that subject. One of the things that people have been taking to say when they view what’s happening — for example, with the potential manipulation of people’s thoughts through content that’s represented as news, or served up to them by algorithms in their Facebook timelines or whatever they’re called — one position that people are taking, particularly, for some reason, the New York Times op-ed writers seem to take this idea — that it’s the computers that are to blame.
I just wanted to ask you, as someone who’s spent a career and an intellectual life interested in computing from the beginning, and also in psychology/anthropology, what’s your take on that? If someone were to say to you, “It was Facebook’s fault.”
Jerry: Well, the NRA in the United States — the National Rifle Association — one of their slogans is, “Guns don’t kill people. People kill people.” Software doesn’t kill people. Hardware doesn’t kill people. People kill people, right? People — we make this stuff. Just because we make it doesn’t mean we understand it, right?
I mean, to me, in all my work with computers over the years, I think that’s the best thing that computers ever did for me, was teach me I wasn’t perfect, I couldn’t be perfect, and that I do a lot of dumb things — and the computer just mirrors them back to me. If I write a program with something dumb, I get what I put in. And my first instinct, the first second is, “Oh, the computer is doing this bad thing.” But I’ve learned that it’s not the machine. It’s like, you look in the mirror and, “There’s this ugly person. That mirror, there’s something wrong with the mirror.” I don’t think so.
Len: That’s a good image.
Jerry: Our mirror’s like that, but that’s not what computers are. And yes, we’ve had machine errors from time to time and they’ve caused some trouble. But in the old days — this is another difference between then and now — if something went wrong on the computer, we wrote a program and put it into one of the tube machines. 50% of the time it was a machine error, and 50% of the time it was a program error.
When the transistors came along, this ratio changed very strongly — and the machines did not make that many mistakes. They still did occasionally, and when they did it was actually interesting. It was harder to find them because we didn’t have experience finding machine errors in those early days with relay machines and tube machines.
If you wanted to program, you had to know the machine architecture and you had to know how to find machine errors. Because otherwise half your trouble, you couldn’t deal with. And this has gone away now. Most programmers have no idea about machine architecture. And they’re totally immobilized — if there is a hardware error, they just don’t know what to do.
Len: Yes, back in the day bugs were literal bugs.
Jerry: Yes, I’ve had some of those, that actually crawled in the machine, got fried or whatever.
Len: Thanks for that answer, I particularly liked that image about someone looking in the mirror and not liking what they see and blaming the device, as it were, for the reality.
We have a convention on this podcast where the last question I ask is if you can think of anything, if there were one thing we could build for you on Leanpub, or one thing we could fix for you, what would that one thing be?
Jerry: On Leanpub? Well, I have to say that by and large, the basic reason I’m on Leanpub is that I really like it. I really like what you’ve done. And generally when I want something, I look and it’s there. In other words, you sort of understand me from the point of view of what I need as a writer.
I see all these notes that some guy wants — some particular Chinese typeface that you don’t happen to be supporting. Well, I guess that’s important to them. That kind of stuff you’ve all taken care of as far as I’m concerned, I’m not writing in Chinese, and all these details. And so the basic idea, I guess — it’s not so much what I want you to chance, it’s what I want you to not change.
The original idea, and I remember reading this — you want to make it really accessible to writers so that there’s not a big barrier to entry. If I’ve got something to write, and I haven’t written before, I want it to be easy to get it up there, get it out in the world. And then what I really like is that I can put up — and I’ve been experimenting with that now more and more — that’s not finished. Because of the Fieldstone Method, I’m doing many projects at the same time. I may not have the fieldstone I need at the moment. But it might be that’s one thing — the book would still be valuable to people without that one part.
I remember when I was the editor for one of the [?], and we had a book on compiler writing. It was a wonderful book, wonderful. We had the manuscript, and we had the last chapter he wanted to write on optimization. Well, code optimization has been a subject for a long, long time, but it’s not a closed subject. And he wouldn’t let the book be published because he hadn’t finished this chapter. He’d been ready to publish, and then he’d get a new idea from somewhere. [?] And years went by, when this book was not available to people, because he didn’t have this one piece. And they never published it as far as I know — I’ve lost track now.
See, if I have something like that, I’ve got 85% of the book and I think it’s valuable to people — I can put it up on Leanpub and I can say to people, “Look, I want another section on this, but I’m not ready to write it,” or, “I’m not sure what else goes here. But you’ll be notified by Leanpub. You buy it, and when I’m going to modify it sometime in the future. You will be notified.” Right? Nobody else does that.
So people will say to me, why do I have a number of books on Leanpub that I don’t have on Kindle, for example, which is the big marketplace for books? I won’t put it on Kindle for a couple reasons. One is that, if I want to incrementally improve the book, people won’t know that. They’ll by the book and I’ll modify it, but they’ll never hear about it. If I do that on Leanpub, they’ll know, and then for nothing, they can get the modification.
Another thing that I like about Leanpub is, if I want to charge more than $9.99 for a book, I can do that without paying a huge penalty. So there’s a lot of things, I just mentioned a few things, but a lot of things that you guys have done right from the beginning, really. I don’t want you to change that, I don’t want you to make it more too complicated, right? You get all these special requests and so on. And there’s this term that people use called “requirements creep.” I see that’s a danger for you now.
I mean, you want to satisfy everybody; you won’t be able to do that. It’s like Word, Microsoft Word, I hate as a word processor because it’s got all these so-called features. If I happen to bump my elbow on the keyboard, some feature comes up. If I don’t know what it is and I don’t know how to get out of it. So by and large, Leanpub could also be called “Clean Pub”. How about that?
Len: That’s good.
Jerry: If you have the C people will think you’re restricting it to “C” programs or something. So I guess that’s my answer to you. I mean, I’ll write to you if I think of something, but I don’t want to pester you with little glitches or little things.
Len: Well, thanks very much for that feedback. That’s very much appreciated. In particular the one thing I wanted to say was that one of the reasons Leanpub has been so attractive to technical book authors is, that charging more than $9.99 issue that you mentioned, where Amazon has its royalty structure set up to discourage books being sold for more than $9.99. Obviously, a lot of technical books have a natural price point higher than that. And so, coupled with variable pricing, that makes our approach pretty attractive, in particular to technical book authors.
Well, Jerry, we were very excited when you popped up on Leanpub. We’ve been very excited to have you with us for all these years. And I was very excited to talk to you today, and I really enjoyed our conversation.
Jerry: I did too, by the way, a lot.
Len: Thank you very much for that. And so I guess I’ll let you go and keep your voice.
Jerry: Okay, thank you.
Jerry: Thanks for asking me to do this. This was great.
Len: It was an absolute pleasure.
Originally published at https://leanpub.com/podcasts/frontmatter/gerald-m-weinberg-31-01-18.