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