WEBVTT 99:59:59.999 --> 99:59:59.999 How many of you have used an electronic spreadsheet, 99:59:59.999 --> 99:59:59.999 like Microsoft Excel? Very good. 99:59:59.999 --> 99:59:59.999 Now how many of you have run a business with a spreadsheet by hand, 99:59:59.999 --> 99:59:59.999 like my dad did for his small printing business in Philadelphia? 99:59:59.999 --> 99:59:59.999 A lot less. Well, that's the way it was done for hundreds of years. 99:59:59.999 --> 99:59:59.999 In early 1978, I started working on an idea that eventually became VisiCalc. 99:59:59.999 --> 99:59:59.999 And the next year it shipped running on something new 99:59:59.999 --> 99:59:59.999 called an Apple II Personal Computer. 99:59:59.999 --> 99:59:59.999 You could tell that things had really changed when six years later, 99:59:59.999 --> 99:59:59.999 the Wall Street Journal ran an editorial that assumed you knew what VisiCalc was 99:59:59.999 --> 99:59:59.999 and maybe even were using it. Steve Jobs back in 1990 said that 99:59:59.999 --> 99:59:59.999 spreadsheets propelled the industry forward. 99:59:59.999 --> 99:59:59.999 VisiCalc propelled the success of Apple more than any other single event. 99:59:59.999 --> 99:59:59.999 On a more personal note, Steve said that if VisiCalc had been written 99:59:59.999 --> 99:59:59.999 for some other computer, you'd be interviewing 99:59:59.999 --> 99:59:59.999 somebody else right now. 99:59:59.999 --> 99:59:59.999 So, VisiCalc was instrumental in getting personal computers on business desks. 99:59:59.999 --> 99:59:59.999 How did it come about? What was it? 99:59:59.999 --> 99:59:59.999 What did I go through to make it be what it was? 99:59:59.999 --> 99:59:59.999 Well, I first learned to program back in 1966, when I was 15 -- 99:59:59.999 --> 99:59:59.999 just a couple months after this photo was taken. 99:59:59.999 --> 99:59:59.999 Few high schoolers had access to computers in those days 99:59:59.999 --> 99:59:59.999 but through luck and an awful lot of perseverance, 99:59:59.999 --> 99:59:59.999 I was able to get computer time around the city. 99:59:59.999 --> 99:59:59.999 After sleeping in the mud at Woodstock, I went off the MIT to go to college, 99:59:59.999 --> 99:59:59.999 where to make money, I worked on the Multics Project. 99:59:59.999 --> 99:59:59.999 Now Multics was a trailblazing interactive time-sharing system. 99:59:59.999 --> 99:59:59.999 Have you heard of the Lenix ad Unix operating systems? 99:59:59.999 --> 99:59:59.999 They came from Multics. I worked on the Multics versions 99:59:59.999 --> 99:59:59.999 of what are known as interpreted computer languages, 99:59:59.999 --> 99:59:59.999 that are used by people in non-computer fields 99:59:59.999 --> 99:59:59.999 to do their calculations while seated at a computer terminal. 99:59:59.999 --> 99:59:59.999 After I graduated from MIT, 99:59:59.999 --> 99:59:59.999 I went to work for Digital Equipment Corporation. 99:59:59.999 --> 99:59:59.999 At DEC, I worked on software for the new area of computerized typesetting. 99:59:59.999 --> 99:59:59.999 I helped newspapers replace their reporters' typewriters 99:59:59.999 --> 99:59:59.999 with computer terminals. 99:59:59.999 --> 99:59:59.999 I'd write software and then I'd go out in the field 99:59:59.999 --> 99:59:59.999 to places like the Kansas City Star where I would train users and get feedback. 99:59:59.999 --> 99:59:59.999 Now this was real world experience that is quite different 99:59:59.999 --> 99:59:59.999 than what I saw in the lab at MIT. After that, I was project leader 99:59:59.999 --> 99:59:59.999 of the software for DEC's first word processor, again a new field. 99:59:59.999 --> 99:59:59.999 Like with typesetting, the important thing was crafting a user interface that was 99:59:59.999 --> 99:59:59.999 both natural and efficient for non-computer people to use. 99:59:59.999 --> 99:59:59.999 After I was at DEC, I went to work for a small company that made 99:59:59.999 --> 99:59:59.999 microprocessor based electronic cash registers for the fast food industry. 99:59:59.999 --> 99:59:59.999 But, I had always wanted to start a company with my friend Bob Frankston 99:59:59.999 --> 99:59:59.999 that I met on the Multics project at MIT. 99:59:59.999 --> 99:59:59.999 So I decided to go back to school to learn as much as I could about business. 99:59:59.999 --> 99:59:59.999 And in the Fall of 1977, I entered the MBA program at Harvard Business School. 99:59:59.999 --> 99:59:59.999 I was one of a few students who had a background in computer programming. 99:59:59.999 --> 99:59:59.999 There's a picture of me from the yearbook sitting in the front row. Now at Harvard, 99:59:59.999 --> 99:59:59.999 we learned by the case method. we do about three cases a day. 99:59:59.999 --> 99:59:59.999 Cases consist of up to a few dozen pages describing a particular business situation. 99:59:59.999 --> 99:59:59.999 They often have exhibits, and exhibits often have words and numbers 99:59:59.999 --> 99:59:59.999 laid out in ways that make sense for the particular situation. 99:59:59.999 --> 99:59:59.999 There usually all somewhat different. Here's my homework. 99:59:59.999 --> 99:59:59.999 Again, numbers, words, laid out in ways that made sense. 99:59:59.999 --> 99:59:59.999 Lots of calculations. We got really close to our calculators. 99:59:59.999 --> 99:59:59.999 In fact, here's my calculator. 99:59:59.999 --> 99:59:59.999 For Halloween, I went dressed up as a calculator. 99:59:59.999 --> 99:59:59.999 At the beginning of each class, the professor would call on somebody 99:59:59.999 --> 99:59:59.999 to present the case. 99:59:59.999 --> 99:59:59.999 What they would do, is they would explain what was going on and then dictate 99:59:59.999 --> 99:59:59.999 information that the professor would transcribe onto the mini 99:59:59.999 --> 99:59:59.999 motorized blackboard in the front of the class 99:59:59.999 --> 99:59:59.999 and then we'd have a discussion. 99:59:59.999 --> 99:59:59.999 The frustrating thing is when you've done all of your homework, 99:59:59.999 --> 99:59:59.999 you come in the next day only to find out that you made an error and all 99:59:59.999 --> 99:59:59.999 of the other numbers you did were wrong, and you couldn't participate as well. 99:59:59.999 --> 99:59:59.999 And we were marked by class participation. 99:59:59.999 --> 99:59:59.999 So, sitting there with 87 other people in the class, I got to daydream a lot. 99:59:59.999 --> 99:59:59.999 Most programmers in those days worked on mainframes, building things like 99:59:59.999 --> 99:59:59.999 inventory systems and payroll systems and bill paying systems, but I had worked 99:59:59.999 --> 99:59:59.999 on interactive word processing and on-demand personal computation. 99:59:59.999 --> 99:59:59.999 Instead of thinking about paper print outs and punch cards, 99:59:59.999 --> 99:59:59.999 I imagined a magic blackboard that if you erased one number 99:59:59.999 --> 99:59:59.999 and wrote a new thing in, all of the other numbers 99:59:59.999 --> 99:59:59.999 would automatically change, like word processing with numbers. 99:59:59.999 --> 99:59:59.999 I imagined that my calculator had mouse hardware on the bottom of it 99:59:59.999 --> 99:59:59.999 and a head-up display like in a fighter plane. 99:59:59.999 --> 99:59:59.999 And I could type some numbers in and circle it, and press the sum button. 99:59:59.999 --> 99:59:59.999 And right in the middle of a negotiation, I'd be able to get the answer. 99:59:59.999 --> 99:59:59.999 Now I just had to take my fantasy and turn it into reality. 99:59:59.999 --> 99:59:59.999 My father taught me about prototyping. 99:59:59.999 --> 99:59:59.999 He showed me mock-ups that he'd make to figure out the placement 99:59:59.999 --> 99:59:59.999 on the page for the things for brochures that he was printing. 99:59:59.999 --> 99:59:59.999 And he'd use it to get feedback from customers and okays before 99:59:59.999 --> 99:59:59.999 he sent the job off to the presses. 99:59:59.999 --> 99:59:59.999 The act of making a simple, working version of what you're trying to build, 99:59:59.999 --> 99:59:59.999 forces you to uncover key problems. 99:59:59.999 --> 99:59:59.999 And it lets you find solutions to those problems much less expensively. 99:59:59.999 --> 99:59:59.999 So I decided to build a prototype. I went to a video terminal connected to 99:59:59.999 --> 99:59:59.999 Harvard's time-sharing system and got to work. 99:59:59.999 --> 99:59:59.999 One of the first problems that I ran into was: 99:59:59.999 --> 99:59:59.999 how do you represent values in formulas? 99:59:59.999 --> 99:59:59.999 Let me show you what I mean. 99:59:59.999 --> 99:59:59.999 I thought that you would point somewhere, type in some words, 99:59:59.999 --> 99:59:59.999 then type in somewhere else, and put in some numbers 99:59:59.999 --> 99:59:59.999 and some more numbers, point where you want the answer. 99:59:59.999 --> 99:59:59.999 And then point to the first, press minus; point to the second, and get the result. 99:59:59.999 --> 99:59:59.999 The problem was: what should I put in the formula? 99:59:59.999 --> 99:59:59.999 It had to be something the computer what knew to put in 99:59:59.999 --> 99:59:59.999 and if you looked at the formula, you needed to know 99:59:59.999 --> 99:59:59.999 where on the screen it referred to. 99:59:59.999 --> 99:59:59.999 So the first thing I thought was the programmer way of doing it, 99:59:59.999 --> 99:59:59.999 the first time you pointed to somewhere, the computer would ask you 99:59:59.999 --> 99:59:59.999 to type in a unique name. It became pretty clear, pretty fast that 99:59:59.999 --> 99:59:59.999 that was going to be too tedious. 99:59:59.999 --> 99:59:59.999 The computer had to automatically make up the name and put it inside. 99:59:59.999 --> 99:59:59.999 So I thought, why not make it be the order in which you create them. 99:59:59.999 --> 99:59:59.999 I tried that. Value 1, Value 2. Pretty quickly I saw that if you had more 99:59:59.999 --> 99:59:59.999 than a few values, you'd never remember on the screen where things were. 99:59:59.999 --> 99:59:59.999 Then I said, why not instead of allowing you to put values anywhere, 99:59:59.999 --> 99:59:59.999 I'll restrict you to a grid? Then when you pointed to a cell, 99:59:59.999 --> 99:59:59.999 the computer could put the row and column in as a name. 99:59:59.999 --> 99:59:59.999 And, if I did it like a map and put ABC across the top and numbers along the side, 99:59:59.999 --> 99:59:59.999 if you saw B7 in a formula, you'd know exactly where it was on the screen. 99:59:59.999 --> 99:59:59.999 If you had to type the formula yourself, you'd know what to do. 99:59:59.999 --> 99:59:59.999 Restricting you to a grid helped solve my problem.: 99:59:59.999 --> 99:59:59.999 It also opened up new capabilities, like the ability to have ranges of cells. 99:59:59.999 --> 99:59:59.999 But it wasn't too restrictive -- 99:59:59.999 --> 99:59:59.999 you could still put any value, any formula, in any cell. 99:59:59.999 --> 99:59:59.999 And that's the way we do it to this day, almost 40 years later. 99:59:59.999 --> 99:59:59.999 My friend Bob and I decided that we were going to build this product together. 99:59:59.999 --> 99:59:59.999 I did more work figuring out exactly how the program was supposed to behave. 99:59:59.999 --> 99:59:59.999 I wrote a reference card to act as documentation. 99:59:59.999 --> 99:59:59.999 It also helped me ensure that the user interface I was defining 99:59:59.999 --> 99:59:59.999 could be explained concisely and clearly to regular people. 99:59:59.999 --> 99:59:59.999 Bob worked in the attic of the apartment he rented in Arlington, Massachusettes. 99:59:59.999 --> 99:59:59.999 This is the inside of the attic. 99:59:59.999 --> 99:59:59.999 Bob bought time on the MIT Multics System 99:59:59.999 --> 99:59:59.999 to write computer code on a terminal like this: