1 00:00:01,120 --> 00:00:04,069 How many of you have used an electronic spreadsheet, 2 00:00:04,553 --> 00:00:07,173 like Microsoft Excel? Very good. 3 00:00:07,875 --> 00:00:12,379 Now how many of you have run a business with a spreadsheet by hand, 4 00:00:12,711 --> 00:00:16,426 like my dad did for his small printing business in Philadelphia? 5 00:00:16,686 --> 00:00:18,371 A lot less. 6 00:00:18,721 --> 00:00:21,791 Well, that's the way it was done for hundreds of years. 7 00:00:22,041 --> 00:00:26,849 In early 1978, I started working on an idea that eventually became VisiCalc. 8 00:00:28,234 --> 00:00:30,758 And the next year it shipped running on something new 9 00:00:31,258 --> 00:00:33,523 called an Apple II Personal Computer. 10 00:00:34,316 --> 00:00:37,090 You could tell that things had really changed when six years later, 11 00:00:37,663 --> 00:00:38,950 the Wall Street Journal ran an editorial 12 00:00:38,950 --> 00:00:41,950 that assumed you knew what VisiCalc was and maybe even were using it. 13 00:00:41,950 --> 00:00:47,735 Steve Jobs back in 1990 said that 14 00:00:48,158 --> 00:00:50,512 spreadsheets propelled the industry forward. 15 00:00:51,308 --> 00:00:54,688 VisiCalc propelled the success of Apple more than any other single event. 16 00:00:55,873 --> 00:00:59,239 On a more personal note, 17 00:00:59,810 --> 00:01:01,711 Steve said that if VisiCalc had been written for some other computer, 18 00:01:02,140 --> 00:01:03,996 you'd be interviewing somebody else right now. 19 00:01:04,530 --> 00:01:09,484 So, VisiCalc was instrumental in getting personal computers on business desks. 20 00:01:10,093 --> 00:01:12,690 How did it come about? What was it? 21 00:01:12,952 --> 00:01:15,917 What did I go through to make it be what it was? 22 00:01:16,529 --> 00:01:21,221 Well, I first learned to program back in 1966, when I was 15 -- 23 00:01:21,583 --> 00:01:24,350 just a couple months after this photo was taken. 24 00:01:24,751 --> 00:01:27,465 Few high schoolers had access to computers in those days 25 00:01:27,940 --> 00:01:31,132 but through luck and an awful lot of perseverance, 26 00:01:31,442 --> 00:01:33,988 I was able to get computer time around the city. 27 00:01:34,505 --> 00:01:38,712 After sleeping in the mud at Woodstock, I went off the MIT to go to college, 28 00:01:39,470 --> 00:01:42,490 where to make money, I worked on the Multics Project. 29 00:01:43,652 --> 00:01:48,068 Now Multics was a trailblazing interactive time-sharing system. 30 00:01:48,594 --> 00:01:51,411 Have you heard of the Lenix ad Unix operating systems? 31 00:01:51,940 --> 00:01:53,007 They came from Multics. 32 00:01:53,007 --> 00:01:56,007 I worked on the Multics versions 33 00:01:56,007 --> 00:01:59,076 of what are known as interpreted computer languages, 34 00:01:59,678 --> 00:02:02,792 that are used by people in non-computer fields 35 00:02:03,063 --> 00:02:05,904 to do their calculations while seated at a computer terminal. 36 00:02:06,187 --> 00:02:08,809 After I graduated from MIT, 37 00:02:09,443 --> 00:02:11,615 I went to work for Digital Equipment Corporation. 38 00:02:12,150 --> 00:02:17,296 At DEC, I worked on software for the new area of computerized typesetting. 39 00:02:18,040 --> 00:02:22,058 I helped newspapers replace their reporters' typewriters 40 00:02:22,494 --> 00:02:24,166 with computer terminals. 41 00:02:24,545 --> 00:02:26,349 I'd write software and then I'd go out in the field 42 00:02:26,971 --> 00:02:30,825 to places like the Kansas City Star where I would train users and get feedback. 43 00:02:31,577 --> 00:02:34,729 Now this was real world experience that is quite different 44 00:02:35,189 --> 00:02:38,071 than what I saw in the lab at MIT. 45 00:02:38,071 --> 00:02:41,071 After that, I was project leader 46 00:02:41,071 --> 00:02:45,165 of the software for DEC's first word processor, again a new field. 47 00:02:45,949 --> 00:02:51,408 Like with typesetting, the important thing was crafting a user interface 48 00:02:52,098 --> 00:02:56,315 that was both natural and efficient for non-computer people to use. 49 00:02:57,080 --> 00:03:01,351 After I was at DEC, I went to work for a small company 50 00:03:01,975 --> 00:03:06,221 that made microprocessor based electronic cash registers for the fast food industry. 51 00:03:07,391 --> 00:03:11,408 But, I had always wanted to start a company with my friend Bob Frankston 52 00:03:11,969 --> 00:03:14,711 that I met on the Multics project at MIT. 53 00:03:15,089 --> 00:03:17,473 So I decided to go back to school to learn as much as I could about business. 54 00:03:18,185 --> 00:03:23,000 And in the Fall of 1977, I entered the MBA program at Harvard Business School. 55 00:03:24,383 --> 00:03:28,967 I was one of a few students who had a background in computer programming. 56 00:03:30,336 --> 00:03:34,267 There's a picture of me from the yearbook sitting in the front row. 57 00:03:35,850 --> 00:03:36,850 Now at Harvard, we learned by the case method. 58 00:03:36,850 --> 00:03:39,500 We do about three cases a day. 59 00:03:39,500 --> 00:03:44,641 Cases consist of up to a few dozen pages describing particular business situations. 60 00:03:45,553 --> 00:03:50,270 They often have exhibits, and exhibits often have words and numbers 61 00:03:50,757 --> 00:03:54,169 laid out in ways that make sense for the particular situation. 62 00:03:54,739 --> 00:03:55,739 There usually all somewhat different. 63 00:03:55,739 --> 00:03:57,643 Here's my homework. 64 00:03:57,643 --> 00:04:00,301 Again, numbers, words, laid out in ways that made sense. 65 00:04:00,814 --> 00:04:04,273 Lots of calculations -- we got really close to our calculators. 66 00:04:05,008 --> 00:04:08,294 In fact, here's my calculator. 67 00:04:09,104 --> 00:04:12,436 For Halloween, I went dressed up as a calculator. 68 00:04:14,082 --> 00:04:17,451 At the beginning of each class, the professor would call on somebody 69 00:04:18,016 --> 00:04:19,450 to present the case. 70 00:04:19,909 --> 00:04:23,213 What they would do is they would explain what was going on 71 00:04:23,811 --> 00:04:27,358 and then dictate information that the professor would transcribe 72 00:04:27,358 --> 00:04:29,012 onto the many motorized blackboards in the front of the class 73 00:04:29,145 --> 00:04:30,777 and then we'd have a discussion. 74 00:04:31,573 --> 00:04:34,793 The frustrating thing is when you've done all of your homework, 75 00:04:35,222 --> 00:04:37,800 you come in the next day only to find out that you made an error 76 00:04:38,212 --> 00:04:39,363 and all of the other numbers you did were wrong, 77 00:04:39,363 --> 00:04:42,363 and you couldn't participate as well. 78 00:04:42,363 --> 00:04:45,620 And we were marked by class participation. 79 00:04:46,538 --> 00:04:50,541 So, sitting there with 87 other people in the class, I got to daydream a lot. 80 00:04:51,836 --> 00:04:56,269 Most programmers in those days worked on mainframes, 81 00:04:57,129 --> 00:05:00,383 building things like inventory systems, payroll systems and bill paying systems. 82 00:05:01,723 --> 00:05:04,594 But I had worked on interactive word processing 83 00:05:04,594 --> 00:05:07,594 and on-demand personal computation. 84 00:05:07,594 --> 00:05:11,469 Instead of thinking about paper print outs and punch cards, 85 00:05:11,907 --> 00:05:15,525 I imagined a magic blackboard 86 00:05:16,018 --> 00:05:18,455 that if you erased one number and wrote a new thing in, 87 00:05:19,108 --> 00:05:20,141 all of the other numbers would automatically change, 88 00:05:20,141 --> 00:05:23,141 like word processing with numbers. 89 00:05:23,141 --> 00:05:27,198 I imagined that my calculator had mouse hardware on the bottom of it 90 00:05:27,731 --> 00:05:31,252 and a head-up display like in a fighter plane. 91 00:05:31,820 --> 00:05:33,836 And I could type some numbers in and circle it and press the sum button. 92 00:05:35,200 --> 00:05:38,546 And right in the middle of a negotiation, I'd be able to get the answer. 93 00:05:39,093 --> 00:05:42,636 Now I just had to take my fantasy and turn it into reality. 94 00:05:43,103 --> 00:05:45,833 My father taught me about prototyping. 95 00:05:46,234 --> 00:05:49,479 He showed me mock-ups that he'd make 96 00:05:49,856 --> 00:05:50,856 to figure out the placement on the page 97 00:05:50,856 --> 00:05:53,554 for the things for the brochures he was printing. 98 00:05:53,554 --> 00:05:55,395 And he'd use it to get feedback from customers 99 00:05:58,395 --> 00:06:00,798 and OKs before he sent the job off to the presses. 100 00:06:01,150 --> 00:06:05,635 The act of making a simple, working version of what you're trying to build, 101 00:06:06,172 --> 00:06:08,624 forces you to uncover key problems. 102 00:06:09,122 --> 00:06:12,980 And it lets you find solutions to those problems much less expensively. 103 00:06:14,145 --> 00:06:19,765 So I decided to build a prototype. I went to a video terminal connected to 104 00:06:20,184 --> 00:06:22,831 Harvard's time-sharing system and got to work. 105 00:06:23,252 --> 00:06:25,759 One of the first problems that I ran into was: 106 00:06:26,408 --> 00:06:29,369 how do you represent values in formulas? 107 00:06:29,806 --> 00:06:31,428 Let me show you what I mean. 108 00:06:32,385 --> 00:06:35,505 I thought that you would point somewhere, type in some words, 109 00:06:36,151 --> 00:06:38,567 then type in somewhere else, and put in some numbers 110 00:06:38,900 --> 00:06:41,583 and some more numbers, point where you want the answer. 111 00:06:42,202 --> 00:06:46,374 And then point to the first, press minus; point to the second, and get the result. 112 00:06:46,858 --> 00:06:49,461 The problem was: what should I put in the formula? 113 00:06:50,005 --> 00:06:52,569 It had to be something the computer what knew to put in 114 00:06:52,989 --> 00:06:56,215 and if you looked at the formula, you needed to know 115 00:06:56,875 --> 00:06:58,492 where on the screen it referred to. 116 00:06:58,807 --> 00:07:01,242 So the first thing I thought was the programmer way of doing it, 117 00:07:01,742 --> 00:07:03,942 the first time you pointed to somewhere, the computer would ask you 118 00:07:04,338 --> 00:07:08,756 to type in a unique name. It became pretty clear, pretty fast that 119 00:07:09,178 --> 00:07:11,049 that was going to be too tedious. 120 00:07:11,746 --> 00:07:15,099 The computer had to automatically make up the name and put it inside. 121 00:07:15,531 --> 00:07:19,056 So I thought, why not make it be the order in which you create them. 122 00:07:19,818 --> 00:07:23,786 I tried that. Value 1, Value 2. Pretty quickly I saw that if you had more 123 00:07:24,383 --> 00:07:27,431 than a few values, you'd never remember on the screen where things were. 124 00:07:28,209 --> 00:07:32,380 Then I said, why not instead of allowing you to put values anywhere, 125 00:07:32,907 --> 00:07:36,078 I'll restrict you to a grid? Then when you pointed to a cell, 126 00:07:36,505 --> 00:07:40,457 the computer could put the row and column in as a name. 127 00:07:40,942 --> 00:07:46,249 And, if I did it like a map and put ABC across the top and numbers along the side, 128 00:07:47,006 --> 00:07:51,649 if you saw B7 in a formula, you'd know exactly where it was on the screen. 129 00:07:53,542 --> 00:07:56,949 If you had to type the formula yourself, you'd know what to do. 130 00:07:57,754 --> 00:08:01,179 Restricting you to a grid helped solve my problem.: 131 00:08:01,947 --> 00:08:06,742 It also opened up new capabilities, like the ability to have ranges of cells. 132 00:08:07,658 --> 00:08:09,535 But it wasn't too restrictive -- 133 00:08:10,061 --> 00:08:13,806 you could still put any value, any formula, in any cell. 134 00:08:14,417 --> 00:08:17,794 And that's the way we do it to this day, almost 40 years later. 135 00:08:18,511 --> 00:08:21,717 My friend Bob and I decided that we were going to build this product together. 136 00:08:22,227 --> 00:08:26,825 I did more work figuring out exactly how the program was supposed to behave. 137 00:08:27,231 --> 00:08:30,683 I wrote a reference card to act as documentation. 138 00:08:31,085 --> 00:08:35,341 It also helped me ensure that the user interface I was defining 139 00:08:35,779 --> 00:08:39,305 could be explained concisely and clearly to regular people. 140 00:08:39,817 --> 00:08:45,055 Bob worked in the attic of the apartment he rented in Arlington, Massachusettes. 141 00:08:45,567 --> 00:08:48,091 This is the inside of the attic. 142 00:08:48,840 --> 00:08:51,944 Bob bought time on the MIT Multics System to write computer code 143 00:08:52,552 --> 00:08:54,097 on a terminal like this. 144 00:08:54,888 --> 00:08:59,152 And then he would download test versions to a borrowed Apple II over a phone line 145 00:08:59,723 --> 00:09:02,593 using an acoustic coupler and then we would test. 146 00:09:03,408 --> 00:09:07,538 Now, for one of these tests I prepared for this case about the Pepsi challenge. 147 00:09:08,827 --> 00:09:11,910 Print wasn't working yet, so I had to copy everything down. 148 00:09:12,718 --> 00:09:15,294 Save wasn't working, so every time it crashed, 149 00:09:15,880 --> 00:09:18,567 I had to type in all of the formulas again, over and over again. 150 00:09:19,105 --> 00:09:22,171 The next day in class, I raised my hand. I got called on and I presented the case. 151 00:09:22,637 --> 00:09:26,229 I did five-year projections. I did all sorts of different scenarios. 152 00:09:26,695 --> 00:09:29,694 I aced the case. VisiCalc was already useful. 153 00:09:30,484 --> 00:09:33,591 The professor said, how did you do it? 154 00:09:33,990 --> 00:09:38,930 Well, I didn't want to tell him about our secret program, so I said, 155 00:09:39,345 --> 00:09:42,073 well I took this and added this and multiplied by this and subtracted that. 156 00:09:42,502 --> 00:09:44,504 He said, well, why didn't you use a ratio? 157 00:09:44,946 --> 00:09:47,121 Hah! A ratio that wouldn't have been as exact. 158 00:09:47,571 --> 00:09:51,246 What I didn't say was, divide isn't working yet. 159 00:09:53,507 --> 00:09:57,888 Eventually, though, we did finish enough of VisiCalc to be able 160 00:09:58,278 --> 00:10:01,538 to show it to the public. My dad printed up a sample reference card 161 00:10:01,993 --> 00:10:04,698 that we could use as marketing material. 162 00:10:05,065 --> 00:10:11,115 In June of 1979, our publisher announced VisiCalc to the world, in a small booth 163 00:10:11,513 --> 00:10:15,112 at the giant National Computer Conference in New York City. 164 00:10:15,614 --> 00:10:19,057 Now The New York Times had a humorous article about the conference. 165 00:10:19,732 --> 00:10:22,172 "The machines perform what seem religious rites... 166 00:10:22,563 --> 00:10:25,194 even as the believers gather, the painters in the Colosseum sign room 167 00:10:26,079 --> 00:10:28,297 are adding to the Pantheon, carefully lettering VisiCalc 168 00:10:28,665 --> 00:10:31,212 in giant black on yellow. All Hail Visicalc. 169 00:10:31,753 --> 00:10:35,947 (Gasp) New York Times. All Hail VisiCalc. 170 00:10:37,191 --> 00:10:41,181 That was the last mention of the electronic spreadsheet in 171 00:10:41,552 --> 00:10:44,883 the popular business press for about two years. 172 00:10:45,325 --> 00:10:48,050 Most people didn't get it yet. But some did. 173 00:10:49,509 --> 00:10:53,541 In October of 1979, we shipped VisiCalc. 174 00:10:54,159 --> 00:10:57,342 It came in a packaging that looked like this, 175 00:10:57,935 --> 00:11:00,401 and it looked like this running on the Apple II. 176 00:11:00,830 --> 00:11:02,379 And the rest, as they say, is history. 177 00:11:03,048 --> 00:11:04,729 Now, there's an awful lot more to this story, 178 00:11:05,208 --> 00:11:07,176 but that'll have to wait for another day. 179 00:11:07,611 --> 00:11:10,520 One thing, though, Harvard remembers. Here's that classroom. 180 00:11:11,111 --> 00:11:16,251 They put up a plaque to commemorate what happened there. (Applause) 181 00:11:23,840 --> 00:11:30,388 But it also serves as a reminder -- that you too should take 182 00:11:30,746 --> 00:11:34,827 your unique background, skills and needs and build prototypes to discover 183 00:11:36,727 --> 00:11:40,543 and work out the key problems and through that change the world. 184 00:11:41,265 --> 00:11:42,618 Thank you.