Read Revolution in the Valley: The Insanely Great Story of How the Mac Was Made Online
Authors: Andy Hertzfeld
Tags: #Business & Economics, #General, #Industries, #Computers & Information Technology, #Workplace Culture, #Research & Development, #Computers, #Operating Systems, #Macintosh, #Hardware
Bruce was busy implementing the resource manager when Bob Belleville arrived on the scene as the new software manager in April 1982, replacing Bud Tribble, who had to return to medical school at the end of 1981. Bob was also a Xerox alumnus, but otherwise they couldn't have been more different. Bob was pragmatic and somewhat authoritarian, with his world-view substantially forged by his stint in the Navy, and he immediately began to clash with Bruce's idealism.
I spent a lot of time with Bob when he first started on the project, helping him to get up to speed, and we got along well at first, even though we had very different perspectives. Bob was a little bit older than most of the core team, with a wife and family, and he was naturally skeptical. He didn't understand why we were so excited about the Macintosh, which he saw as just another increment along a continuum. "I don't get it", he complained to me, "This computer will be obsolete in a year, and then there will be another one, and another one after that. What's so special about this one?"
The first software team meeting that Bob presided over took place in the main conference room of our new building, soon after we moved from Texaco Towers to Bandley 4, around a long table that Burrell and I used for afterhours ping-pong. Up to this point, the software team had a very loose management style, without formal meetings, so this was something new for us. Bob had us go around the table, telling the group what each individual was currently working on, and when we were planning to complete it.
When it was Bruce Horn's turn, he described his Resource Manager work, but refused to give a date as to when it would be finished. Bob visibly bristled, and asked him to make the best estimate that he could, which Bruce refused to do, claiming that it wouldn't be accurate. Bob wanted Bruce to put the resource manager aside to work on the Finder, which Bob thought had much higher priority, but Bruce refused to go along with him, because of the dependence of the Finder design on the resource manager. They were at an impasse, but finally Bob said he'd resolve it by talking with Bruce privately, and the meeting was able to move on.
I was worried about how the obvious tension between Bruce and Bob would be resolved. A few days later, Bruce came up to me in the late afternoon, visibly shaken.
"You wouldn't believe what just happened! I finally had my meeting with Bob about the resource manager."
"So what happened?"
"We started off talking about the work that was needed to finish it, but I guess I said something that he didn't like. He started getting all weird, and told me that I was insubordinate, and that he was my manager, and that I had to follow his orders or else. Or else what?, I asked him. You wouldn't believe what he did!"
"What did he do?", I asked him, not knowing what to expect.
"He threatened me! Can you believe that? For a second I thought we were going to have a fist fight, but he started smiling as if he was joking. I didn't know what to think. Finally, he said we'd talk more later and walked away."
The image of Bruce and Bob duking it out was ludicrous, as Bruce was at least 8 inches taller than Bob and probably more than 60 pounds heavier. Bruce's father was an ex-professional football player before he became a doctor, and Bruce was built the same way. I tried to calm him down and told him that I would help him get this resolved. The next morning I went to Bob Belleville's office as soon as I arrived at work.
"Good. I'm glad that you're here", Bob greeted me. "I need to talk to you about Bruce Horn."
"Yes, that's what I want to talk about", I responded. "Bruce told me about the conversation that you had last night."
"Well, it's not a problem anymore", Bob said, flashing a cryptic smile.
"Why not?" Something didn't sound right to me.
"I decided to fire him. He doesn't respect authority enough to work on this team."
Now it was my turn to get upset. "You can't fire Bruce!", stating something that I thought was obvious. "He's doing really important work for us, and losing him would set us back months."
"Keeping him will set us back even more, because he's a trouble maker, and he'll cause more trouble in the future."
But I was adamant, defending Bruce until Bob got frustrated with me. "Well, Andy, I am very disappointed in you. I thought you had more sense than that." I walked out of his office not knowing what was going to happen.
Later that day, when Steve Jobs came by for his usual early evening visit, I told him what transpired and repeated how bad it would be if we lost Bruce. I don't know what Steve eventually said to Bob, but he apparently dropped his plan to fire Bruce since he never mentioned it again. But I never thought of Bob the same way after that, and I think that was when he started to have problems with me as well.
Do It
by Andy Hertzfeld in June 1982
Many of the academic types who were involved in creating the earliest implementations of the graphical user interface at Xerox PARC and various universities sort of sneered at the first generation of personal computers when they appeared in the mid-seventies, since the early personal computers were much less powerful than the machines that they were used to programming. There wasn't that much you could do with only four kilobytes of memory and no disk drive.
But Larry Tesler, who was a key member of the Smalltalk team in the Learning Research Group at Xerox PARC, felt differently. He was really excited by the potential of personal computers, buying a Commodore PET as soon as one became available in 1977. He was one of the demonstrators at Apple's famous Xerox PARC visit in December 1979, and he was so impressed by the Apple visitors that he quit PARC and started working at Apple on July 17, 1980, as the manager of the Lisa Applications team.
Larry championed consistency between applications, and made many contributions to what eventually became the Macintosh User Interface. He was also the leading advocate and implementor at Apple of user testing: actually trying out our software out on real users and seeing what happened. Starting in the summer of 1981, Larry organized a series of user tests of the nascent Lisa software, recruiting friends and family to try out the software for the first time, while being observed by the Apple designers who recorded their reactions.
The user tests were conducted in a specially constructed room featuring a one-way mirror, so observers could watch the tests without being intrusive. The tests were conducted by a moderator who made sure the user felt comfortable and showed her the basics of using a mouse. Then, with no further instruction, users were asked to perform specific tasks, without help from the moderator, like editing some text and saving it. The moderator encouraged each user to mumble under her breath while doing the tasks, revealing her current thinking as much as possible. Each session was audio or videotaped for later analysis.
When the software required confirmation from the user, it displayed a small window called a "dialog box", that contained a question, and presented two buttons, for positive or negative confirmation. The buttons were labeled "Do It" and "Cancel". The designers observed that a few users seemed to stumble at the point that the dialog was displayed, clicking "Cancel" when they should have clicked "Do It", but it wasn't clear what they were having trouble with.
Finally, the team noticed one user that was particularly flummoxed by the dialog box, who even seemed to be getting a bit angry. The moderator interrupted the test and asked him what the problem was. He replied, "I'm not a dolt, why is the software calling me a dolt?"
It turns out he wasn't noticing the space between the 'o' and the 'I' in 'Do It'; in the sans-serif system font we were using, a capital 'I' looked very much like a lower case 'l', so he was reading 'Do It' as 'Dolt' and was therefore kind of offended.
After a bit of consideration, we switched the positive confirmation button label to 'OK' (which was initially avoided, because we thought it was too colloquial), and from that point on people seemed to have fewer problems.
Inside Macintosh
by Andy Hertzfeld in June 1982
The phone book edition of Inside Macintosh
One of the main differences between the Lisa and Macintosh projects was the way that they viewed third party developers. The Lisa team was writing an integrated suite of seven office-oriented applications internally, so they didn't see a need to support third party developers at first, although they planned to do it eventually.
The Macintosh, inspired by the Apple II, took a different approach. The Apple II's sales had increased more than ten-fold when a tiny company named Software Arts released the first spreadsheet, Visicalc, which initially ran only on the Apple II. We wanted all the people who resonated with our Macintosh dream to be able to extend it with own creativity, so having first class support for third party developers was considered to be a must, from the very beginning.
But that was easier said than done. Lisa's stance was quite reasonable, because consistency between applications was very important to us. There were virtually no third party developers who were familiar with a graphical user interface, so we had to educate them about a whole new approach to programming. In those days, every application provided its own unique user interface, and we weren't sure that it was even possible to coordinate independent developers to conform to our ideas about a consistent user interface.
In fact, in early 1982 our user interface was still evolving, and everyone on the team didn't necessarily agree about the best way to do things, especially in situations that hadn't been considered yet. It seemed like the next logical step was to formally document and codify our user interface, to identify and resolve open issues and communicate it to third party developers.
One forcing function was a looming meeting with our initial third-party developer, Microsoft (see
shut up!
), who was coming to pick up their first Macintosh prototypes and developer documentation around the end of January. We held a series of intense, all day meetings in the second week of January 1982, to thrash out disagreements and formulate a shared view of the UI, metaphorically locking ourselves in a room until we came to consensus. The meetings were attended by Steve Jobs, Bill Atkinson, Joanna Hoffman, Chris Espinosa, Randy Wigginton (who had left Apple in September 1981, but agreed to write MacWrite for us as a semi-independent developer) and me.
The Lisa User Interface was our obvious starting point, but we had a drive to simplify things, and tried to strip out anything that seemed too complex. Triple-click was easy to get rid of, for example, but it was hard to agree about the details of scroll bars. After two and a half days, we thought that we were more or less in agreement, and decided that Joanna should write up the current state of the design. She wrote the first draft of the "Macintosh User Interface Guidelines" in time for the Microsoft meeting the following week, where we presented it for the very first time. Eventually, Chris Espinosa took over authorship of the guidelines, augmenting and amending them as necessary as development proceeded.
By April 1982, the first implementation of the User Interface Toolbox, which contained the code that implemented UI objects like windows, menus, buttons and scrollbars, was ready for the initial release to developers. Since most developers had never programmed a graphical user interface before, it was very important to write high quality developer documentation to explain the ins and outs of using the toolbox. Chris Espinosa had already written some excellent documentation for using QuickDraw, so we were off to a good start.
I met with Chris about the toolbox documentation and we decided to tackle the window manager first. He assigned a recently hired technical writer, a women in her mid-twenties who will remain mercifully nameless in this story, to work with me to document the Window Manager API.
One afternoon, I sat down with the writer for a few hours with some print-outs of the source code, and went over the Window Manager API with her in fine detail. I was a bit worried because I did most of the talking, and she didn't ask any questions, but she promised to show me her first draft in just a few days.
A few days later, Chris Espinosa handed me a few pages of Window Manager documentation, with the caveat that it was a very early draft, so I shouldn't expect too much. But my heart sank as I began to read it. The actual window manager calls were accurately reproduced, as were the comments from the header file, but the descriptions of each call made no sense; it was clear that she didn't understand many of the underlying QuickDraw and memory manager concepts, and instead of asking for an explanation, she just made up whatever popped into her head.
I had a panicky meeting with Chris, but he was able to calm me down and convince me to give the writer another chance. I met with both of them, explaining the problems that I had with what she had done so far. She was amazingly blithe and cheerful about it, saying that she knew that she didn't understand everything, but figured that I would correct anything that was wrong. We had another longer meeting, where I did my best to explain the underlying concepts like handles and regions, and went over the Window Manager API again, this time asking her if she had any questions at the end of each routine. It still seemed to me like she was having trouble understanding things, no matter how carefully I tried to explain, but she didn't seem worried about it at all.