WEBVTT 00:00:01.030 --> 00:00:03.859 How many of you have used an electronic spreadsheet, 00:00:04.033 --> 00:00:05.433 like Microsoft Excel? 00:00:06.443 --> 00:00:07.425 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.531 --> 00:00:15.996 like my dad did for his small printing business in Philadelphia? 00:00:16.396 --> 00:00:17.701 A lot less. 00:00:18.231 --> 00:00:21.141 Well, that's the way it was done for hundreds of years. 00:00:21.851 --> 00:00:24.614 In early 1978, I started working on an idea 00:00:24.814 --> 00:00:27.434 that eventually became VisiCalc. 00:00:28.014 --> 00:00:30.538 And the next year it shipped running on something new 00:00:30.618 --> 00:00:32.883 called an Apple II Personal Computer. 00:00:33.316 --> 00:00:37.180 You could tell that things had really changed when six years later, 00:00:37.383 --> 00:00:39.670 the Wall Street Journal ran an editorial 00:00:39.850 --> 00:00:43.650 that assumed you knew what VisiCalc was and maybe even were using it. 00:00:44.080 --> 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:50.958 --> 00:00:54.868 "VisiCalc propelled the success of Apple more than any other single event." 00:00:55.423 --> 00:00:57.009 On a more personal note, 00:00:57.830 --> 00:01:01.131 Steve said that if VisiCalc had been written for some other computer, 00:01:01.220 --> 00:01:03.726 you'd be interviewing somebody else right now. 00:01:04.020 --> 00:01:08.974 So, VisiCalc was instrumental in getting personal computers on business desks. 00:01:09.773 --> 00:01:12.370 How did it come about? What was it? 00:01:12.652 --> 00:01:15.617 What did I go through to make it be what it was? 00:01:16.129 --> 00:01:20.821 Well, I first learned to program back in 1966, when I was 15 -- 00:01:21.323 --> 00:01:24.090 just a couple months after this photo was taken. 00:01:24.461 --> 00:01:27.175 Few high schoolers had access to computers in those days 00:01:27.570 --> 00:01:30.762 but through luck and an awful lot of perseverance, 00:01:31.192 --> 00:01:33.738 I was able to get computer time around the city. 00:01:34.345 --> 00:01:38.552 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.760 --> 00:01:53.057 They came from Multics. 00:01:53.267 --> 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.618 --> 00:02:02.212 that are used by people in non-computer fields 00:02:02.283 --> 00:02:05.394 to do their calculations while seated at a computer terminal. 00:02:05.647 --> 00:02:07.609 After I graduated from MIT, 00:02:07.883 --> 00:02:10.445 I went to work for Digital Equipment Corporation. 00:02:11.340 --> 00:02:14.580 At DEC, I worked on software 00:02:14.670 --> 00:02:17.610 for the new area of computerized typesetting. 00:02:17.930 --> 00:02:21.948 I helped newspapers replace their reporters' typewriters 00:02:22.284 --> 00:02:23.856 with computer terminals. 00:02:24.095 --> 00:02:26.559 I'd write software and then I'd go out in the field 00:02:26.651 --> 00:02:30.595 to places like the Kansas City Star where I would train users and get feedback. 00:02:31.167 --> 00:02:34.319 Now this was real world experience that is quite different 00:02:34.459 --> 00:02:36.991 than what I saw in the lab at MIT. 00:02:38.071 --> 00:02:40.741 After that, I was project leader 00:02:40.921 --> 00:02:45.015 of the software for DEC's first word processor, again a new field. 00:02:45.949 --> 00:02:51.158 Like with typesetting, the important thing was crafting a user interface 00:02:51.258 --> 00:02:55.475 that was both natural and efficient for non-computer people to use. 00:02:56.460 --> 00:03:00.581 After I was at DEC, I went to work for a small company 00:03:00.675 --> 00:03:05.981 that made microprocessor based electronic cash registers for the fast food industry. 00:03:07.391 --> 00:03:11.058 But, I had always wanted to start a company with my friend Bob Frankston 00:03:11.129 --> 00:03:13.511 that I met on the Multics project at MIT. 00:03:13.639 --> 00:03:17.283 So I decided to go back to school to learn as much as I could about business. 00:03:17.525 --> 00:03:22.560 And in the Fall of 1977, I entered the MBA program at Harvard Business School. 00:03:23.833 --> 00:03:28.657 I was one of a few students who had a background in computer programming. 00:03:30.156 --> 00:03:33.517 There's a picture of me from the yearbook sitting in the front row. 00:03:33.930 --> 00:03:36.630 Now at Harvard, we learned by the case method. 00:03:36.920 --> 00:03:38.980 We do about three cases a day. 00:03:39.290 --> 00:03:44.431 Cases consist of up to a few dozen pages describing particular business situations. 00:03:45.833 --> 00:03:50.220 They often have exhibits, and exhibits often have words and numbers 00:03:50.330 --> 00:03:53.662 laid out in ways that make sense for the particular situation. 00:03:53.859 --> 00:03:55.669 There usually all somewhat different. 00:03:55.739 --> 00:03:57.543 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.694 --> 00:04:04.153 Lots of calculations -- we got really close to our calculators. 00:04:04.948 --> 00:04:07.904 In fact, here's my calculator. 00:04:08.344 --> 00:04:11.676 For Halloween, I went dressed up as a calculator. 00:04:13.682 --> 00:04:17.051 At the beginning of each class, the professor would call on somebody 00:04:17.086 --> 00:04:18.810 to present the case. 00:04:19.199 --> 00:04:22.323 What they would do is they would explain what was going on 00:04:22.401 --> 00:04:25.728 and then dictate information that the professor would transcribe 00:04:25.818 --> 00:04:28.682 onto the many motorized blackboards in the front of the class 00:04:28.755 --> 00:04:30.777 and then we'd have a discussion. 00:04:31.303 --> 00:04:34.693 The frustrating thing is when you've done all of your homework, 00:04:34.802 --> 00:04:37.800 you come in the next day only to find out that you made an error 00:04:37.922 --> 00:04:40.333 and all of the other numbers you did were wrong, 00:04:40.343 --> 00:04:42.363 and you couldn't participate as well. 00:04:42.363 --> 00:04:44.980 And we were marked by class participation. 00:04:45.528 --> 00:04:49.781 So, sitting there with 87 other people in the class, I got to daydream a lot. 00:04:51.596 --> 00:04:55.279 Most programmers in those days worked on mainframes, 00:04:55.399 --> 00:05:00.653 building things like inventory systems, payroll systems and bill paying systems. 00:05:01.593 --> 00:05:04.324 But I had worked on interactive word processing 00:05:04.324 --> 00:05:06.544 and on-demand personal computation. 00:05:06.654 --> 00:05:10.529 Instead of thinking about paper print outs and punch cards, 00:05:10.997 --> 00:05:13.685 I imagined a magic blackboard 00:05:13.928 --> 00:05:17.348 that if you erased one number and wrote a new thing in, 00:05:17.428 --> 00:05:19.951 all of the other numbers would automatically change, 00:05:20.141 --> 00:05:22.461 like word processing with numbers. 00:05:22.711 --> 00:05:26.768 I imagined that my calculator had mouse hardware on the bottom of it 00:05:27.221 --> 00:05:30.742 and a head-up display like in a fighter plane. 00:05:31.010 --> 00:05:34.536 And I could type some numbers in and circle it and press the sum button. 00:05:34.990 --> 00:05:38.606 And right in the middle of a negotiation, I'd be able to get the answer. 00:05:38.853 --> 00:05:42.396 Now I just had to take my fantasy and turn it into reality. 00:05:42.893 --> 00:05:45.723 My father taught me about prototyping. 00:05:45.934 --> 00:05:48.249 He showed me mock-ups that he'd make 00:05:48.249 --> 00:05:50.429 to figure out the placement on the page 00:05:50.626 --> 00:05:53.324 for the things for the brochures he was printing. 00:05:53.554 --> 00:05:56.055 And he'd use it to get feedback from customers 00:05:56.195 --> 00:05:59.028 and OKs before he sent the job off to the presses. 00:06:00.610 --> 00:06:05.095 The act of making a simple, working version of what you're trying to build, 00:06:05.692 --> 00:06:08.144 forces you to uncover key problems. 00:06:08.722 --> 00:06:12.750 And it lets you find solutions to those problems much less expensively. 00:06:13.985 --> 00:06:16.465 So I decided to build a prototype. 00:06:16.774 --> 00:06:21.564 I went to a video terminal connected to Harvard's time-sharing system, 00:06:21.564 --> 00:06:23.102 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.238 --> 00:06:29.199 how do you represent values in formulas? 00:06:29.446 --> 00:06:31.358 Let me show you what I mean. 00:06:32.065 --> 00:06:35.185 I thought that you would point somewhere, type in some words, 00:06:35.321 --> 00:06:38.647 then type in somewhere else, and put in some numbers 00:06:38.770 --> 00:06:41.583 and some more numbers, point where you want the answer. 00:06:41.762 --> 00:06:45.934 And then point to the first, press minus; point to the second, and get the result. 00:06:46.558 --> 00:06:49.381 The problem was, what should I put in the formula? 00:06:49.875 --> 00:06:52.649 It had to be something the computer what knew to put in, 00:06:52.769 --> 00:06:54.815 and if you looked at the formula, 00:06:54.905 --> 00:06:57.552 you needed to know where on the screen it referred to. 00:06:57.857 --> 00:07:00.792 The first thing I thought was the programmer way of doing it, 00:07:00.952 --> 00:07:03.102 the first time you pointed to somewhere, 00:07:03.238 --> 00:07:05.736 the computer would ask you to type in a unique name. 00:07:06.878 --> 00:07:10.759 It became pretty clear, pretty fast that that was going to be too tedious. 00:07:11.166 --> 00:07:14.519 The computer had to automatically make up the name and put it inside. 00:07:14.911 --> 00:07:18.706 So I thought, why not make it be the order in which you create them. 00:07:19.598 --> 00:07:21.498 I tried that. Value 1, Value 2. 00:07:21.888 --> 00:07:24.706 Pretty quickly I saw that if you had more than a few values 00:07:24.726 --> 00:07:27.199 you'd never remember on the screen where things were. 00:07:27.219 --> 00:07:31.870 Then I said, why not instead of allowing you to put values anywhere, 00:07:32.467 --> 00:07:36.258 I'll restrict you to a grid? Then when you pointed to a cell, 00:07:36.685 --> 00:07:40.237 the computer could put the row and column in as a name. 00:07:40.762 --> 00:07:46.069 And, if I did it like a map and put ABC across the top and numbers along the side, 00:07:46.626 --> 00:07:51.529 if you saw B7 in a formula, you'd know exactly where it was on the screen. 00:07:54.012 --> 00:07:57.419 If you had to type the formula yourself, you'd know what to do. 00:07:57.754 --> 00:08:00.979 Restricting you to a grid helped solve my problem. 00:08:01.317 --> 00:08:06.412 It also opened up new capabilities, like the ability to have ranges of cells. 00:08:07.378 --> 00:08:09.125 But it wasn't too restrictive -- 00:08:09.281 --> 00:08:13.026 you could still put any value, any formula, in any cell. 00:08:14.197 --> 00:08:17.574 And that's the way we do it to this day, almost 40 years later. 00:08:19.151 --> 00:08:23.087 My friend Bob and I decided that we were going to build this product together. 00:08:23.267 --> 00:08:27.055 I did more work figuring out exactly how the program was supposed to behave. 00:08:27.231 --> 00:08:30.583 I wrote a reference card to act as documentation. 00:08:30.755 --> 00:08:35.341 It also helped me ensure that the user interface I was defining 00:08:35.509 --> 00:08:39.305 could be explained concisely and clearly to regular people. 00:08:39.507 --> 00:08:44.795 Bob worked in the attic of the apartment he rented in Arlington, Massachusettes. 00:08:45.137 --> 00:08:46.941 This is the inside of the attic. 00:08:48.420 --> 00:08:51.274 Bob bought time on the MIT Multics System 00:08:51.342 --> 00:08:54.057 to write computer code on a terminal like this. 00:08:54.488 --> 00:08:59.022 And then he would download test versions to a borrowed Apple II over a phone line 00:08:59.343 --> 00:09:02.593 using an acoustic coupler and then we would test. 00:09:03.008 --> 00:09:07.648 Now, for one of these tests I prepared for this case about the Pepsi challenge. 00:09:08.627 --> 00:09:11.910 Print wasn't working yet, so I had to copy everything down. 00:09:12.568 --> 00:09:15.030 Save wasn't working, so every time it crashed, 00:09:15.030 --> 00:09:18.107 I had to type in all of the formulas again, over and over again. 00:09:18.445 --> 00:09:22.281 The next day in class, I raised my hand. I got called on and I presented the case. 00:09:22.377 --> 00:09:25.969 I did five-year projections. I did all sorts of different scenarios. 00:09:26.265 --> 00:09:29.264 I aced the case. VisiCalc was already useful. 00:09:30.134 --> 00:09:33.241 The professor said, how did you do it? 00:09:33.590 --> 00:09:36.425 Well, I didn't want to tell him about our secret program, 00:09:36.545 --> 00:09:38.705 so I said, 00:09:38.805 --> 00:09:42.153 I took this and added this and multiplied by this and subtracted that. 00:09:42.192 --> 00:09:44.194 He said, well, why didn't you use a ratio? 00:09:44.526 --> 00:09:47.191 Hah! A ratio -- that wouldn't have been as exact. 00:09:47.411 --> 00:09:50.387 What I didn't say was, divide isn't working yet. 00:09:50.507 --> 00:09:53.157 (Laughter) 00:09:53.507 --> 00:09:56.868 Eventually, though, we did finish enough of VisiCalc 00:09:56.978 --> 00:09:59.053 to be able to show it to the public. 00:09:59.443 --> 00:10:01.783 My dad printed up a sample reference card 00:10:01.783 --> 00:10:04.348 that we could use as marketing material. 00:10:04.555 --> 00:10:10.725 In June of 1979, our publisher announced VisiCalc to the world, in a small booth 00:10:11.115 --> 00:10:14.714 at the giant National Computer Conference in New York City. 00:10:15.044 --> 00:10:18.487 Now The New York Times had a humorous article about the conference. 00:10:19.562 --> 00:10:21.922 "The machines perform what seem religious rites... 00:10:21.973 --> 00:10:25.344 even as the believers gather, the painters in the Colosseum sign room 00:10:25.344 --> 00:10:28.107 are adding to the Pantheon, carefully lettering VisiCalc 00:10:28.107 --> 00:10:29.397 in giant black on yellow. 00:10:29.397 --> 00:10:31.383 All hail VisiCalc! 00:10:31.593 --> 00:10:35.787 (Gasp) New York Times. All Hail VisiCalc. 00:10:36.781 --> 00:10:40.891 That was the last mention of the electronic spreadsheet 00:10:41.032 --> 00:10:44.363 in the popular business press for about two years. 00:10:44.955 --> 00:10:47.880 Most people didn't get it yet. But some did. 00:10:49.129 --> 00:10:53.161 In October of 1979, we shipped VisiCalc. 00:10:54.039 --> 00:10:57.082 It came in a packaging that looked like this, 00:10:57.245 --> 00:10:59.711 and it looked like this running on the Apple II. 00:11:00.150 --> 00:11:02.289 And the rest, as they say, is history. 00:11:02.588 --> 00:11:04.929 Now, there's an awful lot more to this story, 00:11:04.988 --> 00:11:07.036 but that'll have to wait for another day. 00:11:07.141 --> 00:11:10.050 One thing, though, Harvard remembers. Here's that classroom. 00:11:11.261 --> 00:11:15.641 They put up a plaque to commemorate what happened there. 00:11:16.454 --> 00:11:20.654 (Applause) 00:11:24.470 --> 00:11:29.568 But it also serves as a reminder -- that you too should take 00:11:29.646 --> 00:11:35.267 your unique background, skills and needs and build prototypes to discover 00:11:36.027 --> 00:11:39.843 and work out the key problems and through that, change the world. 00:11:41.265 --> 00:11:42.618 Thank you.