0:00:00.760,0:00:03.735 How many of you have used[br]an electronic spreadsheet, 0:00:03.760,0:00:05.240 like Microsoft Excel? 0:00:06.240,0:00:07.496 Very good. 0:00:07.520,0:00:12.096 Now, how many of you have run a business[br]with a spreadsheet by hand, 0:00:12.120,0:00:15.200 like my dad did for his small[br]printing business in Philadelphia? 0:00:16.160,0:00:17.320 A lot less. 0:00:17.920,0:00:20.520 Well, that's the way it was done[br]for hundreds of years. 0:00:21.480,0:00:24.496 In early 1978,[br]I started working on an idea 0:00:24.520,0:00:26.920 that eventually became VisiCalc. 0:00:27.480,0:00:29.136 And the next year it shipped 0:00:29.160,0:00:32.439 running on something new[br]called an Apple II personal computer. 0:00:33.240,0:00:37.296 You could tell that things[br]had really changed when, six years later, 0:00:37.320,0:00:39.496 the Wall Street Journal ran an editorial 0:00:39.520,0:00:42.800 that assumed you knew what VisiCalc was[br]and maybe even were using it. 0:00:43.760,0:00:46.720 Steve Jobs back in 1990 0:00:47.160,0:00:50.400 said that "spreadsheets[br]propelled the industry forward." 0:00:50.880,0:00:54.800 "VisiCalc propelled the success of Apple[br]more than any other single event." 0:00:55.440,0:00:56.600 On a more personal note, 0:00:57.600,0:01:00.736 Steve said, "If VisiCalc had been written[br]for some other computer, 0:01:00.760,0:01:02.960 you'd be interviewing[br]somebody else right now." 0:01:03.360,0:01:09.736 So, VisiCalc was instrumental in getting[br]personal computers on business desks. 0:01:09.760,0:01:10.920 How did it come about? 0:01:11.680,0:01:14.600 What was it? What did I go through[br]to make it be what it was? 0:01:15.920,0:01:21.256 Well, I first learned to program[br]back in 1966, when I was 15 -- 0:01:21.280,0:01:23.520 just a couple months[br]after this photo was taken. 0:01:24.200,0:01:27.160 Few high schoolers had access[br]to computers in those days. 0:01:27.560,0:01:31.056 But through luck[br]and an awful lot of perseverance, 0:01:31.080,0:01:33.320 I was able to get[br]computer time around the city. 0:01:34.200,0:01:39.080 After sleeping in the mud at Woodstock,[br]I went off to MIT to go to college, 0:01:39.520,0:01:42.600 where to make money,[br]I worked on the Multics Project. 0:01:43.320,0:01:48.336 Multics was a trailblazing[br]interactive time-sharing system. 0:01:48.360,0:01:51.536 Have you heard of the Linux[br]and Unix operating systems? 0:01:51.560,0:01:52.800 They came from Multics. 0:01:53.320,0:01:55.616 I worked on the Multics versions 0:01:55.640,0:01:59.456 of what are known[br]as interpreted computer languages, 0:01:59.480,0:02:01.936 that are used by people[br]in noncomputer fields 0:02:01.960,0:02:04.960 to do their calculations[br]while seated at a computer terminal. 0:02:05.560,0:02:07.816 After I graduated from MIT, 0:02:07.840,0:02:10.680 I went to work for[br]Digital Equipment Corporation. 0:02:11.320,0:02:14.496 At DEC, I worked on software 0:02:14.520,0:02:17.360 for the new area[br]of computerized typesetting. 0:02:17.800,0:02:22.136 I helped newspapers[br]replace their reporters' typewriters 0:02:22.160,0:02:23.360 with computer terminals. 0:02:23.880,0:02:25.096 I'd write software 0:02:25.120,0:02:28.816 and then I'd go out in the field[br]to places like the Kansas City Star, 0:02:28.840,0:02:31.256 where I would train users[br]and get feedback. 0:02:31.280,0:02:33.136 This was real-world experience 0:02:33.160,0:02:36.400 that is quite different[br]than what I saw in the lab at MIT. 0:02:37.880,0:02:40.496 After that, I was project leader 0:02:40.520,0:02:45.320 of the software for DEC's first[br]word processor, again a new field. 0:02:45.720,0:02:51.216 Like with typesetting, the important thing[br]was crafting a user interface 0:02:51.240,0:02:55.320 that was both natural and efficient[br]for noncomputer people to use. 0:02:56.360,0:03:00.336 After I was at DEC, I went[br]to work for a small company 0:03:00.360,0:03:06.480 that made microprocessor-based electronic[br]cash registers for the fast-food industry. 0:03:07.360,0:03:11.056 But I had always wanted to start[br]a company with my friend Bob Frankston 0:03:11.080,0:03:13.456 that I met on the Multics project at MIT. 0:03:13.480,0:03:17.176 So I decided to go back to school to learn[br]as much as I could about business. 0:03:17.200,0:03:19.976 And in the fall of 1977, 0:03:20.000,0:03:23.000 I entered the MBA program[br]at Harvard Business School. 0:03:23.840,0:03:26.336 I was one of the few[br]percentage of students 0:03:26.360,0:03:29.200 who had a background[br]in computer programming. 0:03:30.080,0:03:33.256 There's a picture of me from the yearbook[br]sitting in the front row. 0:03:33.280,0:03:34.296 (Laughter) 0:03:34.320,0:03:36.936 Now, at Harvard,[br]we learned by the case method. 0:03:36.960,0:03:38.896 We'd do about three cases a day. 0:03:38.920,0:03:44.640 Cases consist of up to a few dozen pages[br]describing particular business situations. 0:03:45.600,0:03:50.176 They often have exhibits,[br]and exhibits often have words and numbers 0:03:50.200,0:03:53.360 laid out in ways that make sense[br]for the particular situation. 0:03:53.840,0:03:55.776 They're usually all somewhat different. 0:03:55.800,0:03:57.016 Here's my homework. 0:03:57.040,0:04:00.216 Again, numbers, words,[br]laid out in ways that made sense. 0:04:00.240,0:04:04.320 Lots of calculations --[br]we got really close to our calculators. 0:04:04.720,0:04:06.600 In fact, here's my calculator. 0:04:08.200,0:04:10.976 For Halloween, I went[br]dressed up as a calculator. 0:04:11.000,0:04:12.440 (Laughter) 0:04:13.785,0:04:16.976 At the beginning of each class,[br]the professor would call on somebody 0:04:17.000,0:04:18.279 to present the case. 0:04:19.079,0:04:21.856 What they would do is[br]they would explain what was going on 0:04:21.880,0:04:25.616 and then dictate information[br]that the professor would transcribe 0:04:25.640,0:04:28.545 onto the many motorized blackboards[br]in the front of the class, 0:04:28.569,0:04:30.096 and then we'd have a discussion. 0:04:30.120,0:04:34.576 One of the really frustrating things[br]is when you've done all your homework, 0:04:34.600,0:04:37.616 you come in the next day[br]only to find out that you made an error 0:04:37.640,0:04:40.176 and all of the other numbers[br]you did were wrong. 0:04:40.200,0:04:41.976 And you couldn't participate as well. 0:04:42.000,0:04:44.240 And we were marked by class participation. 0:04:45.320,0:04:50.240 So, sitting there with 87 other people[br]in the class, I got to daydream a lot. 0:04:51.280,0:04:55.136 Most programmers in those days[br]worked on mainframes, 0:04:55.160,0:05:01.496 building things like inventory systems,[br]payroll systems and bill-paying systems. 0:05:01.520,0:05:04.016 But I had worked[br]on interactive word processing 0:05:04.040,0:05:06.136 and on-demand personal computation. 0:05:06.160,0:05:10.440 Instead of thinking[br]about paper printouts and punch cards, 0:05:10.880,0:05:13.656 I imagined a magic blackboard 0:05:13.680,0:05:17.056 that if you erased one number[br]and wrote a new thing in, 0:05:17.080,0:05:19.936 all of the other numbers[br]would automatically change, 0:05:19.960,0:05:21.720 like word processing with numbers. 0:05:22.600,0:05:26.840 I imagined that my calculator[br]had mouse hardware on the bottom of it 0:05:27.240,0:05:30.200 and a head-up display,[br]like in a fighter plane. 0:05:30.720,0:05:34.856 And I could type some numbers in,[br]and circle it, and press the sum button. 0:05:34.880,0:05:38.616 And right in the middle of a negotiation[br]I'd be able to get the answer. 0:05:38.640,0:05:41.640 Now I just had to take my fantasy[br]and turn it into reality. 0:05:42.640,0:05:45.080 My father taught me about prototyping. 0:05:45.560,0:05:47.176 He showed me mock-ups 0:05:47.200,0:05:50.536 that he'd make to figure out[br]the placement on the page 0:05:50.560,0:05:53.096 for the things for brochures[br]that he was printing. 0:05:53.120,0:05:56.056 And he'd use it[br]to get feedback from customers 0:05:56.080,0:05:59.680 and OKs before he sent the job[br]off to the presses. 0:06:00.440,0:06:05.536 The act of making a simple, working[br]version of what you're trying to build 0:06:05.560,0:06:07.880 forces you to uncover key problems. 0:06:08.720,0:06:13.120 And it lets you find solutions[br]to those problems much less expensively. 0:06:13.720,0:06:15.960 So I decided to build a prototype. 0:06:16.760,0:06:21.336 I went to a video terminal connected to[br]Harvard's time-sharing system 0:06:21.360,0:06:22.856 and got to work. 0:06:22.880,0:06:26.136 One of the first problems[br]that I ran into was: 0:06:26.160,0:06:28.840 How do you represent values in formulas? 0:06:29.280,0:06:30.640 Let me show you what I mean. 0:06:32.000,0:06:34.176 I thought that you would point somewhere, 0:06:34.200,0:06:37.296 type in some words,[br]then type in some somewhere else, 0:06:37.320,0:06:40.844 put in some numbers and some more numbers,[br]point where you want the answer. 0:06:41.240,0:06:44.456 And then point to the first, press minus,[br]point to the second, 0:06:44.480,0:06:45.680 and get the result. 0:06:46.360,0:06:49.776 The problem was:[br]What should I put in the formula? 0:06:49.800,0:06:52.420 It had to be something[br]the computer knew what to put in. 0:06:52.444,0:06:54.136 And if you looked at the formula, 0:06:54.160,0:06:57.160 you needed to know[br]where on the screen it referred to. 0:06:57.840,0:07:00.736 The first thing I thought was[br]the programmer way of doing it. 0:07:00.760,0:07:02.665 The first time you pointed to somewhere, 0:07:02.689,0:07:05.369 the computer would ask you[br]to type in a unique name. 0:07:06.760,0:07:10.536 It became pretty clear pretty fast that[br]that was going to be too tedious. 0:07:10.560,0:07:13.800 The computer had to automatically[br]make up the name and put it inside. 0:07:14.600,0:07:18.960 So I thought, why not make it be[br]the order in which you create them? 0:07:19.480,0:07:21.976 I tried that. Value 1, value 2. 0:07:22.000,0:07:24.762 Pretty quickly I saw[br]that if you had more than a few values 0:07:24.786,0:07:27.296 you'd never remember[br]on the screen where things were. 0:07:27.320,0:07:32.616 Then I said, why not instead of[br]allowing you to put values anywhere, 0:07:32.640,0:07:34.240 I'll restrict you to a grid? 0:07:34.720,0:07:36.936 Then when you pointed to a cell, 0:07:36.960,0:07:39.680 the computer could put[br]the row and column in as a name. 0:07:40.640,0:07:46.816 And, if I did it like a map and put ABC[br]across the top and numbers along the side, 0:07:46.840,0:07:49.736 if you saw B7 in a formula, 0:07:49.760,0:07:51.960 you'd know exactly[br]where it was on the screen. 0:07:52.640,0:07:56.880 And if you had to type the formula[br]in yourself, you'd know what to do. 0:07:57.440,0:08:00.520 Restricting you to a grid[br]helped solve my problem. 0:08:01.200,0:08:06.800 It also opened up new capabilities,[br]like the ability to have ranges of cells. 0:08:07.360,0:08:08.936 But it wasn't too restrictive -- 0:08:08.960,0:08:13.280 you could still put any value,[br]any formula, in any cell. 0:08:14.120,0:08:17.960 And that's the way we do it to this day,[br]almost 40 years later. 0:08:19.109,0:08:22.776 My friend Bob and I decided that we were[br]going to build this product together. 0:08:22.800,0:08:27.216 I did more work figuring out exactly[br]how the program was supposed to behave. 0:08:27.240,0:08:30.496 I wrote a reference card[br]to act as documentation. 0:08:30.520,0:08:35.296 It also helped me ensure[br]that the user interface I was defining 0:08:35.320,0:08:38.799 could be explained concisely[br]and clearly to regular people. 0:08:39.520,0:08:44.936 Bob worked in the attic of the apartment[br]he rented in Arlington, Massachusetts. 0:08:44.960,0:08:46.680 This is the inside of the attic. 0:08:48.240,0:08:51.016 Bob bought time on the MIT Multics System 0:08:51.040,0:08:53.760 to write computer code[br]on a terminal like this. 0:08:54.400,0:08:57.896 And then he would download test versions[br]to a borrowed Apple II 0:08:57.920,0:09:01.176 over a phone line[br]using an acoustic coupler, 0:09:01.200,0:09:02.360 and then we would test. 0:09:02.920,0:09:07.640 For one of these tests I prepared[br]for this case about the Pepsi Challenge. 0:09:08.720,0:09:11.640 Print wasn't working yet,[br]so I had to copy everything down. 0:09:12.480,0:09:14.896 Save wasn't working,[br]so every time it crashed, 0:09:14.920,0:09:17.920 I had to type in all of the formulas[br]again, over and over again. 0:09:18.240,0:09:22.216 The next day in class, I raised my hand;[br]I got called on, and I presented the case. 0:09:22.240,0:09:25.816 I did five-year projections.[br]I did all sorts of different scenarios. 0:09:25.840,0:09:29.520 I aced the case.[br]VisiCalc was already useful. 0:09:30.160,0:09:32.760 The professor said, "How did you do it?" 0:09:33.469,0:09:36.136 Well, I didn't want to tell him[br]about our secret program. 0:09:36.160,0:09:37.680 (Laughter) 0:09:38.200,0:09:40.056 So I said, "I took this and added this 0:09:40.080,0:09:42.176 and multiplied by this[br]and subtracted that." 0:09:42.200,0:09:44.296 He said, "Well,[br]why didn't you use a ratio?" 0:09:44.320,0:09:47.336 I said, "Hah! A ratio --[br]that wouldn't have been as exact!" 0:09:47.360,0:09:49.936 What I didn't say was,[br]"Divide isn't working yet." 0:09:49.960,0:09:53.056 (Laughter) 0:09:53.080,0:09:56.936 Eventually, though,[br]we did finish enough of VisiCalc 0:09:56.960,0:09:58.800 to be able to show it to the public. 0:09:59.440,0:10:01.416 My dad printed up a sample reference card 0:10:01.440,0:10:03.440 that we could use as marketing material. 0:10:04.280,0:10:10.056 In June of 1979, our publisher[br]announced VisiCalc to the world, 0:10:10.080,0:10:14.200 in a small booth at the giant National[br]Computer Conference in New York City. 0:10:14.800,0:10:18.960 The New York Times had[br]a humorous article about the conference. 0:10:19.480,0:10:21.936 "The machines perform[br]what seem religious rites ... 0:10:21.960,0:10:23.341 Even as the believers gather, 0:10:23.365,0:10:26.461 the painters in the Coliseum sign room[br]are adding to the pantheon, 0:10:26.485,0:10:29.656 carefully lettering 'VISICALC'[br]in giant black on yellow. 0:10:29.680,0:10:31.496 All hail VISICALC!" 0:10:31.520,0:10:35.096 (Gasp) New York Times:[br]"All hail VISICALC." 0:10:35.120,0:10:36.616 (Laughter) 0:10:36.640,0:10:40.896 That was the last mention[br]of the electronic spreadsheet 0:10:40.920,0:10:44.816 in the popular business press[br]for about two years. 0:10:44.840,0:10:46.976 Most people didn't get it yet. 0:10:47.000,0:10:48.200 But some did. 0:10:48.920,0:10:53.120 In October of 1979, we shipped VisiCalc. 0:10:53.880,0:10:56.696 It came in packaging[br]that looked like this. 0:10:56.720,0:10:59.200 And it looked like this[br]running on the Apple II. 0:11:00.000,0:11:01.960 And the rest, as they say, is history. 0:11:02.360,0:11:04.456 Now, there's an awful lot[br]more to this story, 0:11:04.480,0:11:06.536 but that'll have to wait for another day. 0:11:06.560,0:11:08.800 One thing, though, Harvard remembers. 0:11:09.400,0:11:10.600 Here's that classroom. 0:11:11.240,0:11:14.680 They put up a plaque[br]to commemorate what happened there. 0:11:15.640,0:11:18.040 (Applause) 0:11:24.400,0:11:27.336 But it also serves as a reminder 0:11:27.360,0:11:32.856 that you, too, should take[br]your unique backgrounds, skills and needs 0:11:32.880,0:11:38.136 and build prototypes to discover[br]and work out the key problems, 0:11:38.160,0:11:40.280 and through that, change the world. 0:11:41.040,0:11:42.256 Thank you. 0:11:42.280,0:11:46.880 (Applause)