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