WEBVTT 00:00:01.120 --> 00:00:04.069 How many of you have used an electronic spreadsheet, 00:00:04.553 --> 00:00:07.173 like Microsoft Excel? Very good. 00:00:07.875 --> 00:00:12.379 Now how many of you have run a business with a spreadsheet by hand, 00:00:12.711 --> 00:00:16.426 like my dad did for his small printing business in Philadelphia? 00:00:16.686 --> 00:00:18.371 A lot less. 00:00:18.721 --> 00:00:21.791 Well, that's the way it was done for hundreds of years. 00:00:22.041 --> 00:00:26.849 In early 1978, I started working on an idea that eventually became VisiCalc. 00:00:28.234 --> 00:00:30.758 And the next year it shipped running on something new 00:00:31.258 --> 00:00:33.523 called an Apple II Personal Computer. 00:00:34.316 --> 00:00:37.090 You could tell that things had really changed when six years later, 00:00:37.663 --> 00:00:38.950 the Wall Street Journal ran an editorial 00:00:38.950 --> 00:00:41.950 that assumed you knew what VisiCalc was and maybe even were using it. 00:00:41.950 --> 00:00:47.735 Steve Jobs back in 1990 said that 00:00:48.158 --> 00:00:50.512 spreadsheets propelled the industry forward. 00:00:51.308 --> 00:00:54.688 VisiCalc propelled the success of Apple more than any other single event. 00:00:55.873 --> 00:00:59.239 On a more personal note, 00:00:59.810 --> 00:01:01.711 Steve said that if VisiCalc had been written for some other computer, 00:01:02.140 --> 00:01:03.996 you'd be interviewing somebody else right now. 00:01:04.530 --> 00:01:09.484 So, VisiCalc was instrumental in getting personal computers on business desks. 00:01:10.093 --> 00:01:12.690 How did it come about? What was it? 00:01:12.952 --> 00:01:15.917 What did I go through to make it be what it was? 00:01:16.529 --> 00:01:21.221 Well, I first learned to program back in 1966, when I was 15 -- 00:01:21.583 --> 00:01:24.350 just a couple months after this photo was taken. 00:01:24.751 --> 00:01:27.465 Few high schoolers had access to computers in those days 00:01:27.940 --> 00:01:31.132 but through luck and an awful lot of perseverance, 00:01:31.442 --> 00:01:33.988 I was able to get computer time around the city. 00:01:34.505 --> 00:01:38.712 After sleeping in the mud at Woodstock, I went off the MIT to go to college, 00:01:39.470 --> 00:01:42.490 where to make money, I worked on the Multics Project. 00:01:43.652 --> 00:01:48.068 Now Multics was a trailblazing interactive time-sharing system. 00:01:48.594 --> 00:01:51.411 Have you heard of the Lenix ad Unix operating systems? 00:01:51.940 --> 00:01:53.007 They came from Multics. 00:01:53.007 --> 00:01:56.007 I worked on the Multics versions 00:01:56.007 --> 00:01:59.076 of what are known as interpreted computer languages, 00:01:59.678 --> 00:02:02.792 that are used by people in non-computer fields 00:02:03.063 --> 00:02:05.904 to do their calculations while seated at a computer terminal. 00:02:06.187 --> 00:02:08.809 After I graduated from MIT, 00:02:09.443 --> 00:02:11.615 I went to work for Digital Equipment Corporation. 00:02:12.150 --> 00:02:17.296 At DEC, I worked on software for the new area of computerized typesetting. 00:02:18.040 --> 00:02:22.058 I helped newspapers replace their reporters' typewriters 00:02:22.494 --> 00:02:24.166 with computer terminals. 00:02:24.545 --> 00:02:26.349 I'd write software and then I'd go out in the field 00:02:26.971 --> 00:02:30.825 to places like the Kansas City Star where I would train users and get feedback. 00:02:31.577 --> 00:02:34.729 Now this was real world experience that is quite different 00:02:35.189 --> 00:02:38.071 than what I saw in the lab at MIT. 00:02:38.071 --> 00:02:41.071 After that, I was project leader 00:02:41.071 --> 00:02:45.165 of the software for DEC's first word processor, again a new field. 00:02:45.949 --> 00:02:51.408 Like with typesetting, the important thing was crafting a user interface 00:02:52.098 --> 00:02:56.315 that was both natural and efficient for non-computer people to use. 00:02:57.080 --> 00:03:01.351 After I was at DEC, I went to work for a small company 00:03:01.975 --> 00:03:06.221 that made microprocessor based electronic cash registers for the fast food industry. 00:03:07.391 --> 00:03:11.408 But, I had always wanted to start a company with my friend Bob Frankston 00:03:11.969 --> 00:03:14.711 that I met on the Multics project at MIT. 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. 00:03:18.185 --> 00:03:23.000 And in the Fall of 1977, I entered the MBA program at Harvard Business School. 00:03:24.383 --> 00:03:28.967 I was one of a few students who had a background in computer programming. 00:03:30.336 --> 00:03:34.267 There's a picture of me from the yearbook sitting in the front row. 00:03:35.850 --> 00:03:36.850 Now at Harvard, we learned by the case method. 00:03:36.850 --> 00:03:39.500 We do about three cases a day. 00:03:39.500 --> 00:03:44.641 Cases consist of up to a few dozen pages describing particular business situations. 00:03:45.553 --> 00:03:50.270 They often have exhibits, and exhibits often have words and numbers 00:03:50.757 --> 00:03:54.169 laid out in ways that make sense for the particular situation. 00:03:54.739 --> 00:03:55.739 There usually all somewhat different. 00:03:55.739 --> 00:03:57.643 Here's my homework. 00:03:57.643 --> 00:04:00.301 Again, numbers, words, laid out in ways that made sense. 00:04:00.814 --> 00:04:04.273 Lots of calculations -- we got really close to our calculators. 00:04:05.008 --> 00:04:08.294 In fact, here's my calculator. 00:04:09.104 --> 00:04:12.436 For Halloween, I went dressed up as a calculator. 00:04:14.082 --> 00:04:17.451 At the beginning of each class, the professor would call on somebody 00:04:18.016 --> 00:04:19.450 to present the case. 00:04:19.909 --> 00:04:23.213 What they would do is they would explain what was going on 00:04:23.811 --> 00:04:27.358 and then dictate information that the professor would transcribe 00:04:27.358 --> 00:04:29.012 onto the many motorized blackboards in the front of the class 00:04:29.145 --> 00:04:30.777 and then we'd have a discussion. 00:04:31.573 --> 00:04:34.793 The frustrating thing is when you've done all of your homework, 00:04:35.222 --> 00:04:37.800 you come in the next day only to find out that you made an error 00:04:38.212 --> 00:04:39.363 and all of the other numbers you did were wrong, 00:04:39.363 --> 00:04:42.363 and you couldn't participate as well. 00:04:42.363 --> 00:04:45.620 And we were marked by class participation. 00:04:46.538 --> 00:04:50.541 So, sitting there with 87 other people in the class, I got to daydream a lot. 00:04:51.836 --> 00:04:56.269 Most programmers in those days worked on mainframes, 00:04:57.129 --> 00:05:00.383 building things like inventory systems, payroll systems and bill paying systems. 00:05:01.723 --> 00:05:04.594 But I had worked on interactive word processing 00:05:04.594 --> 00:05:07.594 and on-demand personal computation. 00:05:07.594 --> 00:05:11.469 Instead of thinking about paper print outs and punch cards, 00:05:11.907 --> 00:05:15.525 I imagined a magic blackboard 00:05:16.018 --> 00:05:18.455 that if you erased one number and wrote a new thing in, 00:05:19.108 --> 00:05:20.141 all of the other numbers would automatically change, 00:05:20.141 --> 00:05:23.141 like word processing with numbers. 00:05:23.141 --> 00:05:27.198 I imagined that my calculator had mouse hardware on the bottom of it 00:05:27.731 --> 00:05:31.252 and a head-up display like in a fighter plane. 00:05:31.820 --> 00:05:33.836 And I could type some numbers in and circle it and press the sum button. 00:05:35.200 --> 00:05:38.546 And right in the middle of a negotiation, I'd be able to get the answer. 00:05:39.093 --> 00:05:42.636 Now I just had to take my fantasy and turn it into reality. 00:05:43.103 --> 00:05:45.833 My father taught me about prototyping. 00:05:46.234 --> 00:05:49.479 He showed me mock-ups that he'd make 00:05:49.856 --> 00:05:50.856 to figure out the placement on the page 00:05:50.856 --> 00:05:53.554 for the things for the brochures he was printing. 00:05:53.554 --> 00:05:55.395 And he'd use it to get feedback from customers 00:05:58.395 --> 00:06:00.798 and OKs before he sent the job off to the presses. 00:06:01.150 --> 00:06:05.635 The act of making a simple, working version of what you're trying to build, 00:06:06.172 --> 00:06:08.624 forces you to uncover key problems. 00:06:09.122 --> 00:06:12.980 And it lets you find solutions to those problems much less expensively. 00:06:14.145 --> 00:06:19.765 So I decided to build a prototype. 00:06:20.184 --> 00:06:21.184 I went to a video terminal connected to Harvard's time-sharing system 00:06:21.184 --> 00:06:23.252 and got to work. 00:06:23.252 --> 00:06:25.759 One of the first problems that I ran into was: 00:06:26.408 --> 00:06:29.369 how do you represent values in formulas? 00:06:29.806 --> 00:06:31.428 Let me show you what I mean. 00:06:32.385 --> 00:06:35.505 I thought that you would point somewhere, type in some words, 00:06:36.151 --> 00:06:38.567 then type in somewhere else, and put in some numbers 00:06:38.900 --> 00:06:41.583 and some more numbers, point where you want the answer. 00:06:42.202 --> 00:06:46.374 And then point to the first, press minus; point to the second, and get the result. 00:06:46.858 --> 00:06:49.461 The problem was, what should I put in the formula? 00:06:50.005 --> 00:06:52.569 It had to be something the computer what knew to put in, 00:06:52.989 --> 00:06:56.215 and if you looked at the formula, 00:06:56.875 --> 00:06:58.492 you needed to know where on the screen it referred to. 00:06:58.807 --> 00:07:01.242 So the first thing I thought was the programmer way of doing it, 00:07:01.742 --> 00:07:03.942 the first time you pointed to somewhere, 00:07:04.338 --> 00:07:08.756 the computer would ask you to type in a unique name. 00:07:09.178 --> 00:07:11.049 It became pretty clear, pretty fast that that was going to be too tedious. 00:07:11.746 --> 00:07:15.099 The computer had to automatically make up the name and put it inside. 00:07:15.531 --> 00:07:19.056 So I thought, why not make it be the order in which you create them. 00:07:19.818 --> 00:07:23.786 I tried that. Value 1, Value 2. Pretty quickly I saw that if you had more 00:07:24.383 --> 00:07:27.431 than a few values, you'd never remember on the screen where things were. 00:07:28.209 --> 00:07:32.380 Then I said, why not instead of allowing you to put values anywhere, 00:07:32.907 --> 00:07:36.078 I'll restrict you to a grid? Then when you pointed to a cell, 00:07:36.505 --> 00:07:40.457 the computer could put the row and column in as a name. 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, 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. 00:07:53.542 --> 00:07:56.949 If you had to type the formula yourself, you'd know what to do. 00:07:57.754 --> 00:08:01.179 Restricting you to a grid helped solve my problem. 00:08:01.947 --> 00:08:06.742 It also opened up new capabilities, like the ability to have ranges of cells. 00:08:07.658 --> 00:08:09.535 But it wasn't too restrictive -- 00:08:10.061 --> 00:08:13.806 you could still put any value, any formula, in any cell. 00:08:14.417 --> 00:08:17.794 And that's the way we do it to this day, almost 40 years later. 00:08:18.511 --> 00:08:21.717 My friend Bob and I decided that we were going to build this product together. 00:08:22.227 --> 00:08:26.825 I did more work figuring out exactly how the program was supposed to behave. 00:08:27.231 --> 00:08:30.683 I wrote a reference card to act as documentation. 00:08:31.085 --> 00:08:35.341 It also helped me ensure that the user interface I was defining 00:08:35.779 --> 00:08:39.305 could be explained concisely and clearly to regular people. 00:08:39.817 --> 00:08:45.055 Bob worked in the attic of the apartment he rented in Arlington, Massachusettes. 00:08:45.567 --> 00:08:48.091 This is the inside of the attic. 00:08:48.840 --> 00:08:51.944 Bob bought time on the MIT Multics System 00:08:52.552 --> 00:08:54.097 to write computer code on a terminal like this. 00:08:54.888 --> 00:08:59.152 And then he would download test versions to a borrowed Apple II over a phone line 00:08:59.723 --> 00:09:02.593 using an acoustic coupler and then we would test. 00:09:03.408 --> 00:09:07.538 Now, for one of these tests I prepared for this case about the Pepsi challenge. 00:09:08.827 --> 00:09:11.910 Print wasn't working yet, so I had to copy everything down. 00:09:12.718 --> 00:09:15.294 Save wasn't working, so every time it crashed, 00:09:15.880 --> 00:09:18.567 I had to type in all of the formulas again, over and over again. 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. 00:09:22.637 --> 00:09:26.229 I did five-year projections. I did all sorts of different scenarios. 00:09:26.695 --> 00:09:29.694 I aced the case. VisiCalc was already useful. 00:09:30.484 --> 00:09:33.591 The professor said, how did you do it? 00:09:33.990 --> 00:09:38.930 Well, I didn't want to tell him about our secret program, so I said, 00:09:39.345 --> 00:09:42.073 well I took this and added this and multiplied by this and subtracted that. 00:09:42.502 --> 00:09:44.504 He said, well, why didn't you use a ratio? 00:09:44.946 --> 00:09:47.121 Hah! A ratio that wouldn't have been as exact. 00:09:47.571 --> 00:09:51.246 What I didn't say was, divide isn't working yet. 00:09:53.507 --> 00:09:57.888 Eventually, though, we did finish enough of VisiCalc to be able 00:09:58.278 --> 00:10:01.538 to show it to the public. My dad printed up a sample reference card 00:10:01.993 --> 00:10:04.698 that we could use as marketing material. 00:10:05.065 --> 00:10:11.115 In June of 1979, our publisher announced VisiCalc to the world, in a small booth 00:10:11.513 --> 00:10:15.112 at the giant National Computer Conference in New York City. 00:10:15.614 --> 00:10:19.057 Now The New York Times had a humorous article about the conference. 00:10:19.732 --> 00:10:22.172 "The machines perform what seem religious rites... 00:10:22.563 --> 00:10:25.194 even as the believers gather, the painters in the Colosseum sign room 00:10:26.079 --> 00:10:28.297 are adding to the Pantheon, carefully lettering VisiCalc 00:10:28.665 --> 00:10:31.212 in giant black on yellow. All Hail Visicalc. 00:10:31.753 --> 00:10:35.947 (Gasp) New York Times. All Hail VisiCalc. 00:10:37.191 --> 00:10:41.181 That was the last mention of the electronic spreadsheet in 00:10:41.552 --> 00:10:44.883 the popular business press for about two years. 00:10:45.325 --> 00:10:48.050 Most people didn't get it yet. But some did. 00:10:49.509 --> 00:10:53.541 In October of 1979, we shipped VisiCalc. 00:10:54.159 --> 00:10:57.342 It came in a packaging that looked like this, 00:10:57.935 --> 00:11:00.401 and it looked like this running on the Apple II. 00:11:00.830 --> 00:11:02.379 And the rest, as they say, is history. 00:11:03.048 --> 00:11:04.729 Now, there's an awful lot more to this story, 00:11:05.208 --> 00:11:07.176 but that'll have to wait for another day. 00:11:07.611 --> 00:11:10.520 One thing, though, Harvard remembers. Here's that classroom. 00:11:11.111 --> 00:11:16.251 They put up a plaque to commemorate what happened there. (Applause) 00:11:23.840 --> 00:11:30.388 But it also serves as a reminder -- that you too should take 00:11:30.746 --> 00:11:34.827 your unique background, skills and needs and build prototypes to discover 00:11:36.727 --> 00:11:40.543 and work out the key problems and through that change the world. 00:11:41.265 --> 00:11:42.618 Thank you.