1 00:00:19,360 --> 00:00:22,336 How many of you have used an electronic spreadsheet, 2 00:00:22,360 --> 00:00:23,840 like Microsoft Excel? 3 00:00:24,840 --> 00:00:26,096 Very good. 4 00:00:26,120 --> 00:00:30,696 Now, how many of you have run a business with a spreadsheet by hand, 5 00:00:30,720 --> 00:00:33,800 like my dad did for his small printing business in Philadelphia? 6 00:00:34,760 --> 00:00:35,920 A lot less. 7 00:00:36,620 --> 00:00:39,220 Well, that's the way it was done for hundreds of years. 8 00:00:40,180 --> 00:00:43,196 In early 1978, I started working on an idea 9 00:00:43,220 --> 00:00:45,620 that eventually became VisiCalc. 10 00:00:46,180 --> 00:00:47,836 And the next year it shipped, 11 00:00:47,860 --> 00:00:51,139 running on something new called an Apple II personal computer. 12 00:00:51,940 --> 00:00:55,996 You could tell that things had really changed when, six years later, 13 00:00:56,020 --> 00:00:58,196 the Wall Street Journal ran an editorial 14 00:00:58,220 --> 00:01:01,500 that assumed you knew what VisiCalc was and maybe even were using it. 15 00:01:02,460 --> 00:01:05,836 Steve Jobs back in 1990 16 00:01:05,860 --> 00:01:09,100 said that "spreadsheets propelled the industry forward." 17 00:01:09,580 --> 00:01:13,500 "VisiCalc propelled the success of Apple more than any other single event." 18 00:01:14,140 --> 00:01:15,300 On a more personal note, 19 00:01:16,300 --> 00:01:19,436 Steve said, "If VisiCalc had been written for some other computer, 20 00:01:19,460 --> 00:01:21,660 you'd be interviewing somebody else right now." 21 00:01:22,060 --> 00:01:27,647 So, VisiCalc was instrumental in getting personal computers on business desks. 22 00:01:27,960 --> 00:01:29,120 How did it come about? 23 00:01:29,880 --> 00:01:32,800 What was it? What did I go through to make it be what it was? 24 00:01:34,120 --> 00:01:39,456 Well, I first learned to program back in 1966, when I was 15 -- 25 00:01:39,480 --> 00:01:41,720 just a couple months after this photo was taken. 26 00:01:42,400 --> 00:01:45,360 Few high schoolers had access to computers in those days. 27 00:01:45,760 --> 00:01:49,556 But through luck and an awful lot of perseverance, 28 00:01:49,580 --> 00:01:51,820 I was able to get computer time around the city. 29 00:01:52,700 --> 00:01:57,898 After sleeping in the mud at Woodstock, I went off to MIT to go to college, 30 00:01:58,020 --> 00:02:01,100 where to make money, I worked on the Multics Project. 31 00:02:01,820 --> 00:02:06,383 Multics was a trailblazing interactive time-sharing system. 32 00:02:06,860 --> 00:02:10,036 Have you heard of the Linux and Unix operating systems? 33 00:02:10,060 --> 00:02:11,300 They came from Multics. 34 00:02:11,820 --> 00:02:14,116 I worked on the Multics versions 35 00:02:14,140 --> 00:02:17,956 of what are known as interpreted computer languages, 36 00:02:17,980 --> 00:02:20,436 that are used by people in noncomputer fields 37 00:02:20,460 --> 00:02:23,652 to do their calculations while seated at a computer terminal. 38 00:02:24,860 --> 00:02:27,116 After I graduated from MIT, 39 00:02:27,140 --> 00:02:30,414 I went to work for Digital Equipment Corporation. 40 00:02:31,320 --> 00:02:34,821 At DEC, I worked on software 41 00:02:34,845 --> 00:02:37,939 for the new area of computerized typesetting. 42 00:02:38,300 --> 00:02:42,636 I helped newspapers replace their reporters' typewriters 43 00:02:43,060 --> 00:02:44,260 with computer terminals. 44 00:02:44,780 --> 00:02:45,996 I'd write software 45 00:02:46,020 --> 00:02:49,716 and then I'd go out in the field to places like the Kansas City Star, 46 00:02:49,740 --> 00:02:52,156 where I would train users and get feedback. 47 00:02:52,180 --> 00:02:54,036 This was real-world experience 48 00:02:54,060 --> 00:02:57,300 that is quite different than what I saw in the lab at MIT. 49 00:02:58,780 --> 00:03:01,396 After that, I was project leader 50 00:03:01,420 --> 00:03:06,220 of the software for DEC's first word processor, again a new field. 51 00:03:06,620 --> 00:03:12,116 Like with typesetting, the important thing was crafting a user interface 52 00:03:12,140 --> 00:03:16,220 that was both natural and efficient for noncomputer people to use. 53 00:03:18,260 --> 00:03:22,236 After I was at DEC, I went to work for a small company 54 00:03:22,260 --> 00:03:28,380 that made microprocessor-based electronic cash registers for the fast-food industry. 55 00:03:29,260 --> 00:03:32,956 But I had always wanted to start a company with my friend Bob Frankston 56 00:03:32,980 --> 00:03:35,356 that I met on the Multics project at MIT. 57 00:03:35,380 --> 00:03:39,076 So I decided to go back to school to learn as much as I could about business. 58 00:03:39,100 --> 00:03:41,876 And in the fall of 1977, 59 00:03:41,900 --> 00:03:44,900 I entered the MBA program at Harvard Business School. 60 00:03:45,740 --> 00:03:48,236 I was one of the few percentage of students 61 00:03:48,260 --> 00:03:51,100 who had a background in computer programming. 62 00:03:51,980 --> 00:03:55,156 There's a picture of me from the yearbook sitting in the front row. 63 00:03:55,180 --> 00:03:56,196 (Laughter) 64 00:03:56,220 --> 00:03:58,836 Now, at Harvard, we learned by the case method. 65 00:03:58,860 --> 00:04:00,796 We'd do about three cases a day. 66 00:04:00,820 --> 00:04:04,813 Cases consist of up to a few dozen pages 67 00:04:04,837 --> 00:04:07,144 describing a particular business situation. 68 00:04:08,140 --> 00:04:13,171 They often have exhibits, and exhibits often have words and numbers 69 00:04:13,195 --> 00:04:16,355 laid out in ways that make sense for the particular situation. 70 00:04:16,860 --> 00:04:18,796 They're usually all somewhat different. 71 00:04:18,820 --> 00:04:20,036 Here's my homework. 72 00:04:20,060 --> 00:04:23,236 Again, numbers, words, laid out in ways that made sense. 73 00:04:23,260 --> 00:04:27,340 Lots of calculations -- we got really close to our calculators. 74 00:04:27,740 --> 00:04:29,620 In fact, here's my calculator. 75 00:04:31,400 --> 00:04:33,976 For Halloween, I went dressed up as a calculator. 76 00:04:34,000 --> 00:04:35,808 (Laughter) 77 00:04:36,985 --> 00:04:40,176 At the beginning of each class, the professor would call on somebody 78 00:04:40,200 --> 00:04:41,479 to present the case. 79 00:04:42,279 --> 00:04:45,056 What they would do is they would explain what was going on 80 00:04:45,080 --> 00:04:48,816 and then dictate information that the professor would transcribe 81 00:04:48,840 --> 00:04:51,745 onto the many motorized blackboards in the front of the class, 82 00:04:51,769 --> 00:04:53,296 and then we'd have a discussion. 83 00:04:53,320 --> 00:04:57,776 One of the really frustrating things is when you've done all your homework, 84 00:04:57,800 --> 00:05:00,816 you come in the next day only to find out that you made an error 85 00:05:00,840 --> 00:05:03,376 and all of the other numbers you did were wrong. 86 00:05:03,400 --> 00:05:05,176 And you couldn't participate as well. 87 00:05:05,200 --> 00:05:07,440 And we were marked by class participation. 88 00:05:08,520 --> 00:05:13,440 So, sitting there with 87 other people in the class, I got to daydream a lot. 89 00:05:14,480 --> 00:05:18,336 Most programmers in those days worked on mainframes, 90 00:05:18,360 --> 00:05:24,696 building things like inventory systems, payroll systems and bill-paying systems. 91 00:05:24,720 --> 00:05:27,216 But I had worked on interactive word processing 92 00:05:27,240 --> 00:05:29,336 and on-demand personal computation. 93 00:05:29,360 --> 00:05:34,056 Instead of thinking about paper printouts and punch cards, 94 00:05:34,080 --> 00:05:36,856 I imagined a magic blackboard 95 00:05:36,880 --> 00:05:40,256 that if you erased one number and wrote a new thing in, 96 00:05:40,280 --> 00:05:43,136 all of the other numbers would automatically change, 97 00:05:43,160 --> 00:05:44,920 like word processing with numbers. 98 00:05:45,800 --> 00:05:50,040 I imagined that my calculator had mouse hardware on the bottom of it 99 00:05:50,440 --> 00:05:53,400 and a head-up display, like in a fighter plane. 100 00:05:53,920 --> 00:05:58,056 And I could type some numbers in, and circle it, and press the sum button. 101 00:05:58,080 --> 00:06:01,816 And right in the middle of a negotiation I'd be able to get the answer. 102 00:06:01,840 --> 00:06:04,840 Now I just had to take my fantasy and turn it into reality. 103 00:06:05,840 --> 00:06:08,280 My father taught me about prototyping. 104 00:06:08,760 --> 00:06:10,376 He showed me mock-ups 105 00:06:10,400 --> 00:06:13,736 that he'd make to figure out the placement on the page 106 00:06:13,760 --> 00:06:16,296 for the things for brochures that he was printing. 107 00:06:16,320 --> 00:06:19,256 And he'd use it to get feedback from customers 108 00:06:19,280 --> 00:06:22,880 and OKs before he sent the job off to the presses. 109 00:06:23,640 --> 00:06:28,736 The act of making a simple, working version of what you're trying to build 110 00:06:28,760 --> 00:06:31,080 forces you to uncover key problems. 111 00:06:31,920 --> 00:06:36,320 And it lets you find solutions to those problems much less expensively. 112 00:06:36,920 --> 00:06:39,160 So I decided to build a prototype. 113 00:06:39,960 --> 00:06:44,536 I went to a video terminal connected to Harvard's time-sharing system 114 00:06:44,560 --> 00:06:46,056 and got to work. 115 00:06:46,080 --> 00:06:49,336 One of the first problems that I ran into was: 116 00:06:49,360 --> 00:06:52,040 How do you represent values in formulas? 117 00:06:52,536 --> 00:06:53,896 Let me show you what I mean. 118 00:06:55,200 --> 00:06:58,376 I thought that you would point somewhere, 119 00:06:58,400 --> 00:07:01,496 type in some words, then type in some somewhere else, 120 00:07:01,520 --> 00:07:05,044 put in some numbers and some more numbers, point where you want the answer. 121 00:07:05,432 --> 00:07:08,656 And then point to the first, press minus, point to the second, 122 00:07:08,680 --> 00:07:09,880 and get the result. 123 00:07:10,560 --> 00:07:13,661 The problem was: What should I put in the formula? 124 00:07:14,000 --> 00:07:16,620 It had to be something the computer knew what to put in. 125 00:07:16,644 --> 00:07:18,336 And if you looked at the formula, 126 00:07:18,360 --> 00:07:21,360 you needed to know where on the screen it referred to. 127 00:07:22,040 --> 00:07:25,136 So the first thing I thought was the programmer way of doing it. 128 00:07:25,160 --> 00:07:27,066 The first time you pointed to somewhere, 129 00:07:27,090 --> 00:07:29,770 the computer would ask you to type in a unique name. 130 00:07:30,960 --> 00:07:34,736 It became pretty clear pretty fast that that was going to be too tedious. 131 00:07:34,760 --> 00:07:38,000 The computer had to automatically make up the name and put it inside. 132 00:07:38,800 --> 00:07:43,160 So I thought, why not make it be the order in which you create them? 133 00:07:43,680 --> 00:07:46,176 I tried that. Value 1, value 2. 134 00:07:46,200 --> 00:07:48,962 Pretty quickly I saw that if you had more than a few values 135 00:07:48,986 --> 00:07:51,496 you'd never remember on the screen where things were. 136 00:07:51,520 --> 00:07:56,816 Then I said, why not instead of allowing you to put values anywhere, 137 00:07:56,840 --> 00:07:58,440 I'll restrict you to a grid? 138 00:07:58,920 --> 00:08:01,318 Then when you pointed to a cell, 139 00:08:01,342 --> 00:08:04,062 the computer could put the row and column in as a name. 140 00:08:05,040 --> 00:08:11,216 And, if I did it like a map and put ABC across the top and numbers along the side, 141 00:08:11,240 --> 00:08:14,136 if you saw B7 in a formula, 142 00:08:14,160 --> 00:08:16,360 you'd know exactly where it was on the screen. 143 00:08:17,040 --> 00:08:20,464 And if you had to type the formula in yourself, you'd know what to do. 144 00:08:21,110 --> 00:08:24,190 Restricting you to a grid helped solve my problem. 145 00:08:24,870 --> 00:08:30,470 It also opened up new capabilities, like the ability to have ranges of cells. 146 00:08:31,030 --> 00:08:32,606 But it wasn't too restrictive -- 147 00:08:32,630 --> 00:08:36,950 you could still put any value, any formula, in any cell. 148 00:08:37,789 --> 00:08:41,630 And that's the way we do it to this day, almost 40 years later. 149 00:08:42,779 --> 00:08:46,446 My friend Bob and I decided that we were going to build this product together. 150 00:08:46,890 --> 00:08:51,306 I did more work figuring out exactly how the program was supposed to behave. 151 00:08:51,530 --> 00:08:54,786 I wrote a reference card to act as documentation. 152 00:08:54,810 --> 00:08:59,586 It also helped me ensure that the user interface I was defining 153 00:08:59,610 --> 00:09:03,089 could be explained concisely and clearly to regular people. 154 00:09:03,810 --> 00:09:09,226 Bob worked in the attic of the apartment he rented in Arlington, Massachusetts. 155 00:09:09,250 --> 00:09:10,970 This is the inside of the attic. 156 00:09:12,530 --> 00:09:15,306 Bob bought time on the MIT Multics System 157 00:09:15,330 --> 00:09:18,050 to write computer code on a terminal like this. 158 00:09:18,690 --> 00:09:22,186 And then he would download test versions to a borrowed Apple II 159 00:09:22,210 --> 00:09:25,466 over a phone line using an acoustic coupler, 160 00:09:25,490 --> 00:09:26,650 and then we would test. 161 00:09:27,210 --> 00:09:31,930 For one of these tests I prepared for this case about the Pepsi Challenge. 162 00:09:33,010 --> 00:09:35,930 Print wasn't working yet, so I had to copy everything down. 163 00:09:36,770 --> 00:09:39,186 Save wasn't working, so every time it crashed, 164 00:09:39,210 --> 00:09:42,210 I had to type in all of the formulas again, over and over again. 165 00:09:42,530 --> 00:09:46,506 The next day in class, I raised my hand; I got called on, and I presented the case. 166 00:09:46,530 --> 00:09:50,106 I did five-year projections. I did all sorts of different scenarios. 167 00:09:50,130 --> 00:09:53,810 I aced the case. VisiCalc was already useful. 168 00:09:54,450 --> 00:09:57,050 The professor said, "How did you do it?" 169 00:09:57,759 --> 00:10:00,426 Well, I didn't want to tell him about our secret program. 170 00:10:00,450 --> 00:10:01,970 (Laughter) 171 00:10:02,490 --> 00:10:04,346 So I said, "I took this and added this 172 00:10:04,370 --> 00:10:06,466 and multiplied by this and subtracted that." 173 00:10:06,490 --> 00:10:08,586 He said, "Well, why didn't you use a ratio?" 174 00:10:08,610 --> 00:10:11,626 I said, "Hah! A ratio -- that wouldn't have been as exact!" 175 00:10:11,650 --> 00:10:14,226 What I didn't say was, "Divide isn't working yet." 176 00:10:14,250 --> 00:10:17,346 (Laughter) 177 00:10:17,370 --> 00:10:21,226 Eventually, though, we did finish enough of VisiCalc 178 00:10:21,250 --> 00:10:23,090 to be able to show it to the public. 179 00:10:23,730 --> 00:10:25,706 My dad printed up a sample reference card 180 00:10:25,730 --> 00:10:27,730 that we could use as marketing material. 181 00:10:28,570 --> 00:10:34,346 In June of 1979, our publisher announced VisiCalc to the world, 182 00:10:34,370 --> 00:10:38,490 in a small booth at the giant National Computer Conference in New York City. 183 00:10:39,090 --> 00:10:43,250 The New York Times had a humorous article about the conference. 184 00:10:43,770 --> 00:10:46,226 "The machines perform what seem religious rites ... 185 00:10:46,250 --> 00:10:49,811 Even as the believers gather, 186 00:10:49,835 --> 00:10:52,931 the painters in the Coliseum sign room are adding to the pantheon, 187 00:10:52,955 --> 00:10:56,126 carefully lettering 'VISICALC' in giant black on yellow. 188 00:10:56,150 --> 00:10:57,966 All hail VISICALC!" 189 00:10:57,990 --> 00:11:01,566 (Gasp) New York Times: "All hail VISICALC." 190 00:11:01,590 --> 00:11:03,086 (Laughter) 191 00:11:03,110 --> 00:11:07,206 That was the last mention of the electronic spreadsheet 192 00:11:07,230 --> 00:11:11,127 in the popular business press for about two years. 193 00:11:11,151 --> 00:11:12,881 Most people didn't get it yet. 194 00:11:13,370 --> 00:11:14,570 But some did. 195 00:11:15,178 --> 00:11:19,378 In October of 1979, we shipped VisiCalc. 196 00:11:20,250 --> 00:11:22,488 It came in packaging that looked like this. 197 00:11:23,090 --> 00:11:25,570 And it looked like this, running on the Apple II. 198 00:11:26,370 --> 00:11:28,330 And the rest, as they say, is history. 199 00:11:28,730 --> 00:11:30,826 Now, there's an awful lot more to this story, 200 00:11:30,850 --> 00:11:32,906 but that'll have to wait for another day. 201 00:11:32,930 --> 00:11:35,170 One thing, though, Harvard remembers. 202 00:11:35,770 --> 00:11:36,970 Here's that classroom. 203 00:11:37,610 --> 00:11:41,050 They put up a plaque to commemorate what happened there. 204 00:11:42,010 --> 00:11:49,010 (Applause) 205 00:11:50,770 --> 00:11:53,706 But it also serves as a reminder 206 00:11:53,730 --> 00:12:00,426 that you, too, should take your unique backgrounds, skills and needs 207 00:12:00,450 --> 00:12:05,706 and build prototypes to discover and work out the key problems, 208 00:12:05,730 --> 00:12:07,850 and through that, change the world. 209 00:12:08,610 --> 00:12:09,826 Thank you. 210 00:12:09,850 --> 00:12:14,611 (Applause)