0:00:19.360,0:00:22.336 How many of you have used[br]an electronic spreadsheet, 0:00:22.360,0:00:23.840 like Microsoft Excel? 0:00:24.840,0:00:26.096 Very good. 0:00:26.120,0:00:30.696 Now, how many of you have run a business[br]with a spreadsheet by hand, 0:00:30.720,0:00:33.800 like my dad did for his small[br]printing business in Philadelphia? 0:00:34.760,0:00:35.920 A lot less. 0:00:36.620,0:00:39.220 Well, that's the way it was done[br]for hundreds of years. 0:00:40.180,0:00:43.196 In early 1978,[br]I started working on an idea 0:00:43.220,0:00:45.620 that eventually became VisiCalc. 0:00:46.180,0:00:47.836 And the next year it shipped, 0:00:47.860,0:00:51.139 running on something new[br]called an Apple II personal computer. 0:00:51.940,0:00:55.996 You could tell that things[br]had really changed when, six years later, 0:00:56.020,0:00:58.196 the Wall Street Journal ran an editorial 0:00:58.220,0:01:01.500 that assumed you knew what VisiCalc was[br]and maybe even were using it. 0:01:02.460,0:01:05.836 Steve Jobs back in 1990 0:01:05.860,0:01:09.100 said that "spreadsheets[br]propelled the industry forward." 0:01:09.580,0:01:13.500 "VisiCalc propelled the success of Apple[br]more than any other single event." 0:01:14.140,0:01:15.300 On a more personal note, 0:01:16.300,0:01:19.436 Steve said, "If VisiCalc had been written[br]for some other computer, 0:01:19.460,0:01:21.660 you'd be interviewing[br]somebody else right now." 0:01:22.060,0:01:27.647 So, VisiCalc was instrumental in getting[br]personal computers on business desks. 0:01:27.960,0:01:29.120 How did it come about? 0:01:29.880,0:01:32.800 What was it? What did I go through[br]to make it be what it was? 0:01:34.120,0:01:39.456 Well, I first learned to program[br]back in 1966, when I was 15 -- 0:01:39.480,0:01:41.720 just a couple months[br]after this photo was taken. 0:01:42.400,0:01:45.360 Few high schoolers had access[br]to computers in those days. 0:01:45.760,0:01:49.556 But through luck[br]and an awful lot of perseverance, 0:01:49.580,0:01:51.820 I was able to get[br]computer time around the city. 0:01:52.700,0:01:57.898 After sleeping in the mud at Woodstock,[br]I went off to MIT to go to college, 0:01:58.020,0:02:01.100 where to make money,[br]I worked on the Multics Project. 0:02:01.820,0:02:06.383 Multics was a trailblazing[br]interactive time-sharing system. 0:02:06.860,0:02:10.036 Have you heard of the Linux[br]and Unix operating systems? 0:02:10.060,0:02:11.300 They came from Multics. 0:02:11.820,0:02:14.116 I worked on the Multics versions 0:02:14.140,0:02:17.956 of what are known[br]as interpreted computer languages, 0:02:17.980,0:02:20.436 that are used by people[br]in noncomputer fields 0:02:20.460,0:02:23.652 to do their calculations[br]while seated at a computer terminal. 0:02:24.860,0:02:27.116 After I graduated from MIT, 0:02:27.140,0:02:30.414 I went to work for[br]Digital Equipment Corporation. 0:02:31.320,0:02:34.821 At DEC, I worked on software 0:02:34.845,0:02:37.939 for the new area[br]of computerized typesetting. 0:02:38.300,0:02:42.636 I helped newspapers[br]replace their reporters' typewriters 0:02:43.060,0:02:44.260 with computer terminals. 0:02:44.780,0:02:45.996 I'd write software 0:02:46.020,0:02:49.716 and then I'd go out in the field[br]to places like the Kansas City Star, 0:02:49.740,0:02:52.156 where I would train users[br]and get feedback. 0:02:52.180,0:02:54.036 This was real-world experience 0:02:54.060,0:02:57.300 that is quite different[br]than what I saw in the lab at MIT. 0:02:58.780,0:03:01.396 After that, I was project leader 0:03:01.420,0:03:06.220 of the software for DEC's first[br]word processor, again a new field. 0:03:06.620,0:03:12.116 Like with typesetting, the important thing[br]was crafting a user interface 0:03:12.140,0:03:16.220 that was both natural and efficient[br]for noncomputer people to use. 0:03:18.260,0:03:22.236 After I was at DEC, I went[br]to work for a small company 0:03:22.260,0:03:28.380 that made microprocessor-based electronic[br]cash registers for the fast-food industry. 0:03:29.260,0:03:32.956 But I had always wanted to start[br]a company with my friend Bob Frankston 0:03:32.980,0:03:35.356 that I met on the Multics project at MIT. 0:03:35.380,0:03:39.076 So I decided to go back to school to learn[br]as much as I could about business. 0:03:39.100,0:03:41.876 And in the fall of 1977, 0:03:41.900,0:03:44.900 I entered the MBA program[br]at Harvard Business School. 0:03:45.740,0:03:48.236 I was one of the few[br]percentage of students 0:03:48.260,0:03:51.100 who had a background[br]in computer programming. 0:03:51.980,0:03:55.156 There's a picture of me from the yearbook[br]sitting in the front row. 0:03:55.180,0:03:56.196 (Laughter) 0:03:56.220,0:03:58.836 Now, at Harvard,[br]we learned by the case method. 0:03:58.860,0:04:00.796 We'd do about three cases a day. 0:04:00.820,0:04:04.813 Cases consist of up to a few dozen pages 0:04:04.837,0:04:07.144 describing a particular[br]business situation. 0:04:08.140,0:04:13.171 They often have exhibits,[br]and exhibits often have words and numbers 0:04:13.195,0:04:16.355 laid out in ways that make sense[br]for the particular situation. 0:04:16.860,0:04:18.796 They're usually all somewhat different. 0:04:18.820,0:04:20.036 Here's my homework. 0:04:20.060,0:04:23.236 Again, numbers, words,[br]laid out in ways that made sense. 0:04:23.260,0:04:27.340 Lots of calculations --[br]we got really close to our calculators. 0:04:27.740,0:04:29.620 In fact, here's my calculator. 0:04:31.400,0:04:33.976 For Halloween, I went[br]dressed up as a calculator. 0:04:34.000,0:04:35.808 (Laughter) 0:04:36.985,0:04:40.176 At the beginning of each class,[br]the professor would call on somebody 0:04:40.200,0:04:41.479 to present the case. 0:04:42.279,0:04:45.056 What they would do is[br]they would explain what was going on 0:04:45.080,0:04:48.816 and then dictate information[br]that the professor would transcribe 0:04:48.840,0:04:51.745 onto the many motorized blackboards[br]in the front of the class, 0:04:51.769,0:04:53.296 and then we'd have a discussion. 0:04:53.320,0:04:57.776 One of the really frustrating things[br]is when you've done all your homework, 0:04:57.800,0:05:00.816 you come in the next day[br]only to find out that you made an error 0:05:00.840,0:05:03.376 and all of the other numbers[br]you did were wrong. 0:05:03.400,0:05:05.176 And you couldn't participate as well. 0:05:05.200,0:05:07.440 And we were marked by class participation. 0:05:08.520,0:05:13.440 So, sitting there with 87 other people[br]in the class, I got to daydream a lot. 0:05:14.480,0:05:18.336 Most programmers in those days[br]worked on mainframes, 0:05:18.360,0:05:24.696 building things like inventory systems,[br]payroll systems and bill-paying systems. 0:05:24.720,0:05:27.216 But I had worked[br]on interactive word processing 0:05:27.240,0:05:29.336 and on-demand personal computation. 0:05:29.360,0:05:34.056 Instead of thinking[br]about paper printouts and punch cards, 0:05:34.080,0:05:36.856 I imagined a magic blackboard 0:05:36.880,0:05:40.256 that if you erased one number[br]and wrote a new thing in, 0:05:40.280,0:05:43.136 all of the other numbers[br]would automatically change, 0:05:43.160,0:05:44.920 like word processing with numbers. 0:05:45.800,0:05:50.040 I imagined that my calculator[br]had mouse hardware on the bottom of it 0:05:50.440,0:05:53.400 and a head-up display,[br]like in a fighter plane. 0:05:53.920,0:05:58.056 And I could type some numbers in,[br]and circle it, and press the sum button. 0:05:58.080,0:06:01.816 And right in the middle of a negotiation[br]I'd be able to get the answer. 0:06:01.840,0:06:04.840 Now I just had to take my fantasy[br]and turn it into reality. 0:06:05.840,0:06:08.280 My father taught me about prototyping. 0:06:08.760,0:06:10.376 He showed me mock-ups 0:06:10.400,0:06:13.736 that he'd make to figure out[br]the placement on the page 0:06:13.760,0:06:16.296 for the things for brochures[br]that he was printing. 0:06:16.320,0:06:19.256 And he'd use it[br]to get feedback from customers 0:06:19.280,0:06:22.880 and OKs before he sent the job[br]off to the presses. 0:06:23.640,0:06:28.736 The act of making a simple, working[br]version of what you're trying to build 0:06:28.760,0:06:31.080 forces you to uncover key problems. 0:06:31.920,0:06:36.320 And it lets you find solutions[br]to those problems much less expensively. 0:06:36.920,0:06:39.160 So I decided to build a prototype. 0:06:39.960,0:06:44.536 I went to a video terminal[br]connected to Harvard's time-sharing system 0:06:44.560,0:06:46.056 and got to work. 0:06:46.080,0:06:49.336 One of the first problems[br]that I ran into was: 0:06:49.360,0:06:52.040 How do you represent values in formulas? 0:06:52.536,0:06:53.896 Let me show you what I mean. 0:06:55.200,0:06:58.376 I thought that you would point somewhere, 0:06:58.400,0:07:01.496 type in some words,[br]then type in some somewhere else, 0:07:01.520,0:07:05.044 put in some numbers and some more numbers,[br]point where you want the answer. 0:07:05.432,0:07:08.656 And then point to the first, press minus,[br]point to the second, 0:07:08.680,0:07:09.880 and get the result. 0:07:10.560,0:07:13.661 The problem was:[br]What should I put in the formula? 0:07:14.000,0:07:16.620 It had to be something[br]the computer knew what to put in. 0:07:16.644,0:07:18.336 And if you looked at the formula, 0:07:18.360,0:07:21.360 you needed to know[br]where on the screen it referred to. 0:07:22.040,0:07:25.136 So the first thing I thought[br]was the programmer way of doing it. 0:07:25.160,0:07:27.066 The first time you pointed to somewhere, 0:07:27.090,0:07:29.770 the computer would ask you[br]to type in a unique name. 0:07:30.960,0:07:34.736 It became pretty clear pretty fast[br]that that was going to be too tedious. 0:07:34.760,0:07:38.000 The computer had to automatically[br]make up the name and put it inside. 0:07:38.800,0:07:43.160 So I thought, why not make it be[br]the order in which you create them? 0:07:43.680,0:07:46.176 I tried that. Value 1, value 2. 0:07:46.200,0:07:48.962 Pretty quickly I saw[br]that if you had more than a few values 0:07:48.986,0:07:51.496 you'd never remember[br]on the screen where things were. 0:07:51.520,0:07:56.816 Then I said, why not instead[br]of allowing you to put values anywhere, 0:07:56.840,0:07:58.440 I'll restrict you to a grid? 0:07:58.920,0:08:01.318 Then when you pointed to a cell, 0:08:01.342,0:08:04.062 the computer could put[br]the row and column in as a name. 0:08:05.040,0:08:11.216 And, if I did it like a map and put ABC[br]across the top and numbers along the side, 0:08:11.240,0:08:14.136 if you saw B7 in a formula, 0:08:14.160,0:08:16.360 you'd know exactly[br]where it was on the screen. 0:08:17.040,0:08:20.464 And if you had to type the formula[br]in yourself, you'd know what to do. 0:08:21.110,0:08:24.190 Restricting you to a grid[br]helped solve my problem. 0:08:24.870,0:08:30.470 It also opened up new capabilities,[br]like the ability to have ranges of cells. 0:08:31.030,0:08:32.606 But it wasn't too restrictive -- 0:08:32.630,0:08:36.950 you could still put any value,[br]any formula, in any cell. 0:08:37.789,0:08:41.630 And that's the way we do it to this day,[br]almost 40 years later. 0:08:42.779,0:08:46.446 My friend Bob and I decided that we were[br]going to build this product together. 0:08:46.890,0:08:51.306 I did more work figuring out exactly[br]how the program was supposed to behave. 0:08:51.530,0:08:54.786 I wrote a reference card[br]to act as documentation. 0:08:54.810,0:08:59.586 It also helped me ensure[br]that the user interface I was defining 0:08:59.610,0:09:03.089 could be explained concisely[br]and clearly to regular people. 0:09:03.810,0:09:09.226 Bob worked in the attic of the apartment[br]he rented in Arlington, Massachusetts. 0:09:09.250,0:09:10.970 This is the inside of the attic. 0:09:12.530,0:09:15.306 Bob bought time on the MIT Multics System 0:09:15.330,0:09:18.050 to write computer code[br]on a terminal like this. 0:09:18.690,0:09:22.186 And then he would download test versions[br]to a borrowed Apple II 0:09:22.210,0:09:25.466 over a phone line[br]using an acoustic coupler, 0:09:25.490,0:09:26.650 and then we would test. 0:09:27.210,0:09:31.930 For one of these tests I prepared[br]for this case about the Pepsi Challenge. 0:09:33.010,0:09:35.930 Print wasn't working yet,[br]so I had to copy everything down. 0:09:36.770,0:09:39.186 Save wasn't working,[br]so every time it crashed, 0:09:39.210,0:09:42.210 I had to type in all of the formulas[br]again, over and over again. 0:09:42.530,0:09:46.506 The next day in class, I raised my hand;[br]I got called on, and I presented the case. 0:09:46.530,0:09:50.106 I did five-year projections.[br]I did all sorts of different scenarios. 0:09:50.130,0:09:53.810 I aced the case.[br]VisiCalc was already useful. 0:09:54.450,0:09:57.050 The professor said, "How did you do it?" 0:09:57.759,0:10:00.426 Well, I didn't want to tell him[br]about our secret program. 0:10:00.450,0:10:01.970 (Laughter) 0:10:02.490,0:10:04.346 So I said, "I took this and added this 0:10:04.370,0:10:06.466 and multiplied by this[br]and subtracted that." 0:10:06.490,0:10:08.586 He said, "Well,[br]why didn't you use a ratio?" 0:10:08.610,0:10:11.626 I said, "Hah! A ratio --[br]that wouldn't have been as exact!" 0:10:11.650,0:10:14.226 What I didn't say was,[br]"Divide isn't working yet." 0:10:14.250,0:10:17.346 (Laughter) 0:10:17.370,0:10:21.226 Eventually, though,[br]we did finish enough of VisiCalc 0:10:21.250,0:10:23.090 to be able to show it to the public. 0:10:23.730,0:10:25.706 My dad printed up a sample reference card 0:10:25.730,0:10:27.730 that we could use as marketing material. 0:10:28.570,0:10:34.346 In June of 1979, our publisher[br]announced VisiCalc to the world, 0:10:34.370,0:10:38.490 in a small booth at the giant National[br]Computer Conference in New York City. 0:10:39.090,0:10:43.250 The New York Times had[br]a humorous article about the conference. 0:10:43.770,0:10:46.226 "The machines perform[br]what seem religious rites ... 0:10:46.250,0:10:49.811 Even as the believers gather, 0:10:49.835,0:10:52.931 the painters in the Coliseum sign room[br]are adding to the pantheon, 0:10:52.955,0:10:56.126 carefully lettering 'VISICALC'[br]in giant black on yellow. 0:10:56.150,0:10:57.966 All hail VISICALC!" 0:10:57.990,0:11:01.566 (Gasp) New York Times:[br]"All hail VISICALC." 0:11:01.590,0:11:03.086 (Laughter) 0:11:03.110,0:11:07.206 That was the last mention[br]of the electronic spreadsheet 0:11:07.230,0:11:11.127 in the popular business press[br]for about two years. 0:11:11.151,0:11:12.881 Most people didn't get it yet. 0:11:13.370,0:11:14.570 But some did. 0:11:15.178,0:11:19.378 In October of 1979, we shipped VisiCalc. 0:11:20.250,0:11:22.488 It came in packaging[br]that looked like this. 0:11:23.090,0:11:25.570 And it looked like this,[br]running on the Apple II. 0:11:26.370,0:11:28.330 And the rest, as they say, is history. 0:11:28.730,0:11:30.826 Now, there's an awful lot[br]more to this story, 0:11:30.850,0:11:32.906 but that'll have to wait for another day. 0:11:32.930,0:11:35.170 One thing, though, Harvard remembers. 0:11:35.770,0:11:36.970 Here's that classroom. 0:11:37.610,0:11:41.050 They put up a plaque[br]to commemorate what happened there. 0:11:42.010,0:11:49.010 (Applause) 0:11:50.770,0:11:53.706 But it also serves as a reminder 0:11:53.730,0:12:00.426 that you, too, should take[br]your unique backgrounds, skills and needs 0:12:00.450,0:12:05.706 and build prototypes to discover[br]and work out the key problems, 0:12:05.730,0:12:07.850 and through that, change the world. 0:12:08.610,0:12:09.826 Thank you. 0:12:09.850,0:12:14.611 (Applause)