WEBVTT FILE

00:00:00.818 --> 00:00:08.297
Interviewer: Alright so you said when I met you before you knew the Altair was coming before the Popular Electronics hit the news stand. 
00:00:08.297 --> 00:00:15.233
Interviewer: But still what did you think when you saw it in Harvard Square? Did it, did it sort of mark a new era in computing?
00:00:15.233 --> 00:00:18.478
Gates: The key event was the microprocessor itself. 
00:00:18.478 --> 00:00:32.395
Gates: The availability of a chip that included all the elements of a computer and we saw that in Electronics Magazine when I was still in tenth grade in high school and we discussed what that meant. 
00:00:32.395 --> 00:00:42.563
Gates: And that's when we got excited about the fact that this meant computers could be purchased by individuals and used in a, in a different way. 
00:00:42.563 --> 00:00:50.062
Gates: And we, we were surprised other people weren't expecting that and seeing that there was so much change. 
00:00:50.062 --> 00:01:22.510
Gates: But it wasn't until three years later that the first ah, product came out using microprocessor and that was when I was a student at Harvard University and Paul Allen and I were walking through Harvard Square and saw the cover of Popular Electronics Magazine and even though it was nice because what we had predicted was happening our main reaction was that we better get going and get involved or else our whole vision was going to happen without us.
00:01:22.510 --> 00:01:32.861
Interviewer: So did you have any sense when you decided okay we're going write software for this machine did you have any sense how big this industry would get?
00:01:32.861 --> 00:01:41.624
Gates: Paul and I wrote down when we started the company that we felt there'd be a personal computer on every desk and in every home. 
00:01:41.624 --> 00:01:48.109
Gates: So we thought of it even from the beginning as a very pervasive tool, as an information tool. 
00:01:48.109 --> 00:02:02.667
Gates: And we felt that more and more software would just increase the number of tasks that the computer would help solve and so that we were at the most exciting part of, of this revolution that would be taking place.
00:02:02.667 --> 00:02:13.560
Interviewer: So what was it like back then different from now let's say being a programmer? Were they sort of a different breed of people writing software for those machines?
00:02:15.034 --> 00:02:25.088
Gates: The early personal computers were not very powerful so the idea of feeding their program into a small amount of memory requires immense skill. 
00:02:25.088 --> 00:02:38.728
Gates: Our job was to put into a, a computer with only 4K of memory an entire basic full blown, floating point Basic and that's one of the greatest programming feats I've ever had a chance to work on. 
00:02:38.728 --> 00:02:45.337
Gates: We had so much fun just squeezing it down and amazing people that such a thing could be done. 
00:02:45.337 --> 00:02:48.571
Gates: The industry was very small in the seventies. 
00:02:48.571 --> 00:03:11.140
Gates: People tended to know each other and I spent a lot of my time evangelizing that is going to large companies and convincing them they should make computers like this and then going around and helping user groups get started so that people who like the stuff could all get together and share their ideas and work together. 
00:03:11.140 --> 00:03:21.897
Gates: So we had a feeling as an industry that we were, we knew something that other people didn't knew, know, and that it was very exciting and very important.
00:03:21.896 --> 00:03:24.377
Interviewer: And time has proved you right.
00:03:24.377 --> 00:03:27.756
Gates: Well the industry, the industry's changed a lot now. 
00:03:27.756 --> 00:03:33.365
Gates: Most of the people who I worked with in those earlier days are, are no longer involved. 
00:03:33.365 --> 00:03:41.270
Gates: Certainly the things we felt about the pervasiveness of the tool and the importance tool and all that has proven to be true.
00:03:41.270 --> 00:03:52.435
Interviewer: What about who sort of has the power in the industry now? I mean you said back then you were going around evangelizing and asking different hardware makers make this hardware for me please. 
00:03:52.435 --> 00:03:58.900
Interviewer: Do you think it's changed a little now? Are the people who are writing the software more in the driver's seat?
00:03:58.900 --> 00:04:09.168
Gates: Well, from the beginning we felt that software was the key element that would determine how useable and how broadly applicable the machine was. 
00:04:09.168 --> 00:04:12.163
Gates: So we focused on, on software from day 1. 
00:04:12.163 --> 00:04:16.656
Gates: And we were actually the first microcomputer software company. 
00:04:16.656 --> 00:04:24.001
Gates: In terms of revenue even today a higher percentage of the dollars are spent on hardware then software. 
00:04:24.001 --> 00:04:31.061
Gates: Although that's been shifting, today's software sometimes as much as a third of what people spend. 
00:04:31.061 --> 00:04:44.681
Gates: That greatly understates though the importance of software when it comes to opening up new things or deciding even which hardware you ought to buy, the software's the most important element. 
00:04:44.681 --> 00:04:51.456
Gates: And some software companies including our own, Microsoft, have ended up being very profitable. 
00:04:51.456 --> 00:04:54.808
Gates: They've created high volume hit type products. 
00:04:54.808 --> 00:05:04.150
Gates: And so the focus of attention is shifted very much to the software industry not nearly as much as it will over the next ten years. 
00:05:04.150 --> 00:05:05.148
Gates: I mean the... 
00:05:05.148 --> 00:05:10.781
Gates: the center of, of exciting advances will be more and more on the software side.
00:05:10.781 --> 00:05:19.565
Interviewer: But why is it more and more on the software side? Why is hardware being left behind?
00:05:19.565 --> 00:06:03.752
Gates: The analogies that try and explain the role of software and hardware aren't perfect but the idea of TV industry versus TV programming is, is a good one or the printing industry versus the book industry and in those examples you can see that the richness of what software provides by making the machine valuable to, to different people, that's what's new, it's what people pay attention to and once they see a piece of software that can help them in business or home then they ask what hardware do they need to buy? And so the hardware's is almost like a record player. 
00:06:03.752 --> 00:06:26.039
Gates: The one difference though is that hardware is continuing to improve so it's not, not static in that way and so we have to have close cooperation between the hardware manufacturer and the software developers so that we take advantage of the new things that are done on the hardware side. 
00:06:26.039 --> 00:06:26.971
Gates: So it'll... 
00:06:26.971 --> 00:06:32.950
Gates: it'll never be as extreme as say a record player but it's, it's the content. 
00:06:32.950 --> 00:06:37.377
Gates: It's the experience is all defined by the software piece.
00:06:37.377 --> 00:06:45.521
Interviewer: You're enabled by hardware that can run itself enough to, to give you to allow you to create a user illusion?
00:06:45.521 --> 00:06:50.753
Gates: When you write a piece of software you assume a certain type of hardware. 
00:06:50.753 --> 00:06:53.016
Gates: That's always a tough question. 
00:06:53.016 --> 00:07:01.218
Gates: If you assume hardware that's too powerful then you can't sell many copies cause very few people have that machine. 
00:07:01.218 --> 00:07:06.309
Gates: If you assume hardware that's too simple your product can't do as much. 
00:07:06.309 --> 00:07:13.097
Gates: And so making that choice is one of the most important decisions that a software company makes. 
00:07:13.097 --> 00:07:16.845
Gates: What hardware are the software packages targeted for?
00:07:17.185 --> 00:07:27.353
Interviewer: We are interested in the comparison how is the software industry different from another industry, like Boeing or something where you create something physical. 
00:07:27.353 --> 00:07:37.012
Interviewer: The differences between physical media and digital media? So for example how would you measure the size of the job creating a certain software product. 
00:07:37.012 --> 00:07:46.734
Interviewer: What units do you use to quantify when it’s not a number of widgets or something like that? How do you guess how long it’s going to take to do a project?
00:07:46.735 --> 00:07:47.650
Gates: Creating a... 
00:07:47.650 --> 00:07:52.751
Gates: a piece of software is always complicated because you're doing something new. 
00:07:52.751 --> 00:07:59.160
Gates: If you just wanted something that had been done before you'd just use that old piece of software. 
00:07:59.160 --> 00:08:01.384
Gates: So there are no repetitive tasks. 
00:08:01.384 --> 00:08:24.208
Gates: It means that it's very hard to estimate how hard it will be, and it's extremely difficult to add new people to a project because you don't get any benefit from the new people if you're having to explain to them what's going on and if their pieces don't fit in with the other pieces and so often our very small teams are by far the most productive. 
00:08:24.208 --> 00:08:31.925
Gates: You don't want to impose external measures on on on the team because they, it's up to them how enthusiastic they are. 
00:08:31.925 --> 00:08:42.323
Gates: If one piece is easier, one piece harder or they want to shift the design around you have to give them total flexibility if you want to get the right results. 
00:08:42.323 --> 00:08:45.266
Gates: And yet you want to measure what's going on. 
00:08:45.266 --> 00:08:59.000
Gates: Certainly you can, you can judge if you put smart people onto the task, are they working hard, but you still want to know when will they get done, should you cut back in terms of what you're asking them to do. 
00:08:59.000 --> 00:09:01.027
Gates: And there is no science to it. 
00:09:01.027 --> 00:09:08.287
Gates: It's ended up that some companies pull the right pieces together and, and succeed and a lot of companies don't.
00:09:08.287 --> 00:09:12.246
Interviewer: So what accounts for the success when the projects do go well?
00:09:12.246 --> 00:09:20.519
Gates: Most of the success of great software projects you can assign to picking great people to work on the project. 
00:09:20.519 --> 00:09:29.843
Gates: People who are very smart, in a scientific sense, and who have a lot of energy and interest in what it is they're creating. 
00:09:29.843 --> 00:09:35.859
Gates: And in any project review I can tell if people are tuned in to what's going on. 
00:09:35.859 --> 00:09:46.989
Gates: If they've thought through the alternatives, if they're making the right choices, they've thought through what the problems are going to be or not. 
00:09:46.989 --> 00:09:59.923
Gates: You can get a feeling whether it's a, ah, even say within Microsoft a relatively great project team or a, a team that needs to be livened up or given a less ambitious task.
00:09:59.923 --> 00:10:08.595
Interviewer: What about the team I met with this morning, Chris Peter’s team? Are they unusual, they are getting a product out pretty much on schedule, is that a first?
00:10:08.595 --> 00:10:10.731
Gates: Remind me when this airs, this stuff.
00:10:10.731 --> 00:10:12.011
Interviewer: This airs next fall.
00:10:12.011 --> 00:10:12.858
Gates: Next fall. 
00:10:12.858 --> 00:10:17.015
Gates: That product will have been shipped long before that. 
00:10:17.015 --> 00:10:26.176
Gates: Our Excel team, headed by Chris Peters is a fine example of a group where everything's come together in a perfect way. 
00:10:26.176 --> 00:10:34.721
Gates: The team is smart, they're excited, the specification that we wrote has a lot of very new innovative features. 
00:10:34.721 --> 00:11:06.667
Gates: Ones that we thought maybe we could do but there were breakthroughs along the way and new ideas came along and we were enough on top of things we could add those into the schedule and plus which these developers look at the competitive atmosphere and they can see that our graphical interface that that they're betting on is getting to be popular and Lotus is not getting its competitive product done very quickly. 
00:11:06.667 --> 00:11:16.752
Gates: And so they sense the opportunity and it builds ah, even more excitement in that group that that they should get their thing done. 
00:11:16.752 --> 00:11:33.687
Gates: The fact that we were able to pick the completion date several years in advance, ah, it's partly because we're, we put enough buffers in for a surprise but it's also a real milestone in the way we manage these projects. 
00:11:33.687 --> 00:11:40.307
Gates: That's it's quite unusual even for us to know when something will get done in advance.
00:11:40.307 --> 00:11:46.788
Interviewer: So I mean what did you do? Did you engineer it differently or you just lucked out with a good team?
00:11:46.788 --> 00:11:47.419
Gates: No it's…
00:11:47.419 --> 00:11:49.250
Interviewer: Is it more complicated?
00:11:49.250 --> 00:11:52.292
Gates: Writing software, that's our, our life. 
00:11:52.292 --> 00:12:08.409
Gates: I mean this — everyday we think about could we use a different tool? Could we organize things differently and there's a variety of things that we're doing in our projects now that are making it more predictable. 
00:12:08.409 --> 00:12:17.761
Gates: One of those is that we have phases where we get a certain set of pieces done and test them before we move on to the next. 
00:12:17.761 --> 00:12:34.867
Gates: The idea that you think you've got something done but ah, when you go to test it, certain problems of speed, or interactions come up, can often make you have to go back to work that you haven't looked at for quite some time. 
00:12:34.867 --> 00:12:37.908
Gates: And so using this phased approach as... 
00:12:37.908 --> 00:12:42.241
Gates: is one of the smart things we did with the Excel project.
00:12:42.241 --> 00:12:47.947
Interviewer: Now they’re, I guess, in the last week of debugging, getting ready to finish it up. 
00:12:47.947 --> 00:13:01.734
Interviewer: They’re having people play games and not play actually with the software I guess because they don’t, there’s sort of a risk with code, with the project, because it’s just code you can add a new feature. 
00:13:01.734 --> 00:13:09.817
Interviewer: There’s no physical constraint that keeping you from adding a new feature, it’s not like the cement won’t dry in time. 
00:13:09.817 --> 00:13:18.510
Interviewer: Is this a risk that you have to avoid, be careful to not have people play with the software product toward the end of a project?
00:13:18.510 --> 00:13:30.007
Gates: When you develop software, the people who write the software, the developers are the key group but the testers also play an absolutely critical role. 
00:13:30.007 --> 00:13:47.636
Gates: They're the ones who ah, write thousands and thousands of examples and make sure that it's going to work on all the different computers and printers and the different amounts of memory or networks that the software'11 be used in. 
00:13:47.636 --> 00:13:49.476
Gates: That's a very hard job. 
00:13:49.476 --> 00:14:01.586
Gates: As you get to the end of the project you want to run all the tests cases against one version and make sure that you know that that version passed everything. 
00:14:01.586 --> 00:14:26.419
Gates: And so as you get late in the project you get a little more conservative about making radical changes to the software and finally in the last month where we are now you make sure that every change is examined by lots of the programmers so you don't get what we call a regression going backwards in terms of the reliability. 
00:14:26.419 --> 00:14:32.167
Gates: This means that the, at the very end the testers are on the critical path. 
00:14:32.167 --> 00:14:47.726
Gates: It's their testing that's hard because they're not finding enough bugs to keep the developers busy all the time and the developer's already thinking about the next version that they're going to get done.
00:14:47.726 --> 00:14:52.743
Interviewer: And wanting to incorporate their new ideas in the current product. 
00:14:52.743 --> 00:14:53.267
Interviewer: Right. 
00:14:53.267 --> 00:14:58.134
Interviewer: I mean they're sort of itching to write to write in new features?
00:14:58.134 --> 00:15:04.774
Gates: No they understand, I mean everybody's part of the same process.
00:15:04.774 --> 00:15:24.274
Interviewer: Is this something that has been the result of some experiment, say here at Microsoft, where maybe in the early days it wasn’t as clear that when you make changes at the last minute they’re going to have unforeseen repercussions so you have to discipline people to not tinker with it at the end?
00:15:24.274 --> 00:15:27.957
Gates: No I mean everybody always follows the rules. 
00:15:27.957 --> 00:15:32.840
Gates: There's no, every project towards the end you do less stuff. 
00:15:32.840 --> 00:15:35.722
Gates: I mean that's always been the case. 
00:15:35.722 --> 00:15:46.208
Gates: The need for testing has gone up as the size of the products go up and as the, the number of machines you're going to run them on. 
00:15:46.208 --> 00:15:52.612
Gates: So the scale, the scale of things changes but the basic principle, I mean is... 
00:15:52.612 --> 00:15:53.653
Gates: is the same. 
00:15:53.653 --> 00:16:02.138
Gates: Even when I wrote Basic myself the day before I burned it into a computer I wasn't making design changes. 
00:16:02.138 --> 00:16:04.539
Gates: I didn't have a testing team. 
00:16:04.539 --> 00:16:06.941
Gates: I did all the testing myself. 
00:16:06.941 --> 00:16:19.428
Gates: And there was no project methodology or schedule that, there was the notion of coming to a close means testing a lot at the end and making very few changes.
00:16:19.428 --> 00:16:23.833
Interviewer: Still sort of interested in the differences between physical and digital media. 
00:16:23.833 --> 00:16:34.182
Interviewer: I mean with debugging, if you’re building something and you’ve got a leaky roof you know exactly where to look because the problems going to located near where it’s physically manifested. 
00:16:34.182 --> 00:16:36.825
Interviewer: What about with software, how is that different?
00:16:36.825 --> 00:16:46.578
Gates: Software is different than other products um, partly because it's, it's not physical and, and partly because of its complexity. 
00:16:46.578 --> 00:16:56.788
Gates: You can express in software millions of different cases and making sure that you handle all of them correctly is extremely difficult. 
00:16:56.788 --> 00:17:02.351
Gates: There are more inputs then you could possibly have time to step through. 
00:17:02.351 --> 00:17:10.809
Gates: And knowing which test cases are worth going through and when you're ready to ship the thing is not a science. 
00:17:10.809 --> 00:17:13.018
Gates: It's more of an art to that. 
00:17:13.018 --> 00:17:16.904
Gates: Certain teams are more careful in what they write. 
00:17:16.904 --> 00:17:18.809
Gates: They generate less bugs. 
00:17:18.809 --> 00:17:28.715
Gates: You can know that but it still doesn't mean there might be there might not be one bug that would be bad to ship the product with. 
00:17:28.715 --> 00:17:46.621
Gates: And so there's a whole body of knowledge being developed about how you do testing and some optimism that maybe the computer itself will be able to help in the testing process but not, not much going on practically with that right now. 
00:17:46.621 --> 00:17:56.756
Gates: The other great thing about, about software though is that you can you can pick exactly when you want to come out with new versions. 
00:17:56.756 --> 00:18:00.108
Gates: So you decide how ambitious you want to be. 
00:18:00.108 --> 00:18:27.463
Gates: If you want to ship a new version in two years you're coming up with a specification that matches that that time schedule based on your experience of how long does it take to write it and test it and how good of a team do you have involved with the thing? And it's certainly exciting to have a product where you can update all of your users at very low cost. 
00:18:27.463 --> 00:18:31.502
Gates: They don't have to go and buy a new car or anything. 
00:18:31.502 --> 00:18:40.798
Gates: They can just substitute in the new disks or even just download it into their network and boom they have the new version. 
00:18:40.798 --> 00:18:45.141
Gates: And so the old users get the benefits of your new ideas. 
00:18:45.141 --> 00:19:01.676
Gates: That means that literally within a few weeks of shipping a new product you can have say a million people who are enjoying using it, getting onto bulletin boards and saying what they like, saying what they don't like. 
00:19:01.676 --> 00:19:04.952
Gates: Sending in reports, building on top of it. 
00:19:04.952 --> 00:19:15.010
Gates: Maybe enjoying their job more because of it and we get all that feedback and then we use that to decide how to do the next version. 
00:19:15.010 --> 00:19:31.698
Gates: So it's possible to get closer to your users with this kind of product than, than with most other products and if you decide you wanted to get a new version out you know three or four months later you could do that too.
00:19:31.698 --> 00:19:47.857
Interviewer: What about debugging as programs get increasingly long and more complex? Is it possible to ever really fully debug a program?
00:19:47.857 --> 00:19:54.944
Gates: There's a famous debate about whether programs of a certain complexity can be debugged. 
00:19:54.944 --> 00:20:20.231
Gates: This came up in the Strategic Defense Initiative where some people are saying that maybe the program that would control all the sensors looking at incoming missiles and then control the reaction of the missiles going up that even if the hardware was great that the software part you might not be able to trust it. 
00:20:20.231 --> 00:20:33.277
Gates: /In the software industry people like myself are optimistic that by using the right tools and breaking things down into pieces that that problem could be solved. 
00:20:33.277 --> 00:20:50.752
Gates: But it sort of suggests the state of the art that very smart people in the software field disagreed about whether that could be done or not./ So there's certainly some scale at which our current tools are inadequate. 
00:20:50.752 --> 00:21:08.710
Gates: The trick generally is to break programs into pieces and have those pieces be individually testable and so then when you move on to the other pieces you treat it as a black box knowing that it either works or doesn't work. 
00:21:08.710 --> 00:21:33.271
Gates: The same ideas apply in any type of engineering area, it's just that the interface, the boundary between one piece of the program and another keeping that simple, so you can think of it as a black box is very, very hard, it's part of doing very intelligent design is breaking things down in the right way.
00:21:33.271 --> 00:21:49.307
Interviewer: So it's a matter of trying to make it less like the sort of virtual infinitely flexible media right? You want to try to emulate physical things you can wrap your mind around and think about how they would interact together. 
00:21:49.307 --> 00:21:54.317
Interviewer: Trying to avoid too much complexity around it, for one mind to handle.
00:21:54.317 --> 00:21:56.556
Gates: I don't know about the... 
00:21:56.556 --> 00:21:58.451
Gates: the physical analogy. 
00:21:58.451 --> 00:22:14.812
Gates: People, people are building the software and so having the pieces be such that a single person understands all the tradeoffs and everything that's going on in a piece is extremely valuable. 
00:22:14.812 --> 00:22:21.787
Gates: It avoids getting into an experimental mode where you're just trying things out. 
00:22:21.787 --> 00:22:23.337
Gates: That never works. 
00:22:23.337 --> 00:22:47.276
Gates: And in any of our projects even though we may have as many as twenty or twenty-five people involved, for the major pieces we have one person we really trust who understands the speed and what it would take to do changes and who can look over all the changes made to that piece. 
00:22:47.276 --> 00:23:04.240
Gates: So the idea of dividing it down so that people understand it really has to do with now what can you keep in your mind? What can you have a total understanding of? So it's almost a human limitation.
00:23:04.240 --> 00:23:09.537
Interviewer: Are you talking about object oriented programming languages, are you talking about software modules?
00:23:09.537 --> 00:23:18.526
Gates: There are a variety of techniques for breaking software down into pieces and making software development more efficient. 
00:23:18.526 --> 00:23:30.338
Gates: Many of these techniques have been sort of… and everybody got excited about but very little benefit was actually derived once the thing was put into practice. 
00:23:30.338 --> 00:23:33.013
Gates: Software is inherently complicated. 
00:23:33.013 --> 00:23:49.060
Gates: If you say to somebody I want an airline reservation system, to really say what you want in terms of overbooking and fares, and different airlines communicating with each or schedule changes, it's immensely complex. 
00:23:49.060 --> 00:23:55.152
Gates: And so you can't write a program that's any simpler than that full specification. 
00:23:55.152 --> 00:24:03.919
Gates: In software what we're trying to do is make it so that just by describing that specification then that's the program. 
00:24:03.919 --> 00:24:10.902
Gates: You don't have to do any special things besides state the problem in a very, very exact form. 
00:24:10.902 --> 00:24:16.846
Gates: And there are ah, advances that are pushing us in that direction fairly slowly. 
00:24:16.846 --> 00:24:38.762
Gates: Another trick in software is to avoid rewriting the software by using a piece that's already been written, so called component approach which the latest term for this in the most advanced form is what's called Object Oriented Programming and the strongest analogy is to think of writing a book. 
00:24:38.762 --> 00:25:06.176
Gates: You don't go to other books and take little pieces because although say a romantic scene may have been many times before all the details of who it is, where it is, are so intertwined in that text that it's easier to write it from scratch and that's the way programming has been to date even though something like searching the table has been written millions of times. 
00:25:06.176 --> 00:25:14.571
Gates: When we have a new program that involves searching the table, there are reasons why we don't grab that old code. 
00:25:14.571 --> 00:25:20.960
Gates: Very, very similar to this idea of trying to take something from someone else's book. 
00:25:20.960 --> 00:25:35.818
Gates: And the type of breakthrough we're looking for is where you separate out those details from the basic idea and so the basic pieces can be used again, and again and this is Object Oriented Programming.
00:25:35.818 --> 00:25:40.676
Interviewer: … And Chris said that too. 
00:25:40.676 --> 00:25:55.248
Interviewer: And I wonder why is it that programmers share that trait, why are they optimists?
00:25:35.818 --> 00:25:55.248
Interviewer: So why are programmers optimists, or are they?
00:25:59.807 --> 00:26:22.386
Gates: I think if you talk to the experts in any field where you have to take on a unknown challenge, where you're going to be working on it for a long time you'd find that to work themselves up to their best performance and really throw themselves into it, you know, spend all these hours in there and ah, give it their... 
00:26:22.386 --> 00:26:25.734
Gates: give it their best that optimism plays a role. 
00:26:25.734 --> 00:26:26.660
Gates: I mean if... 
00:26:26.660 --> 00:26:40.692
Gates: if you had a group that was about to climb Everest and you said, do you guys think you'll make it to the top, and they said, well, we have to be realistic, you know, there's a good chance we'll... 
00:26:40.692 --> 00:26:44.538
Gates: we'll buy, you might not ah, expect them to be the... 
00:26:44.538 --> 00:26:47.530
Gates: the most energetic at pursuing the thing. 
00:26:47.530 --> 00:26:56.362
Gates: So I think it's partly when you're world class and there is this level of uncertainty ah, you don't want to worry about it. 
00:26:56.362 --> 00:27:12.032
Gates: You want to plunge ahead and have the probability of seeing breakthrough ideas, ah, that you hadn't anticipated, have yourself be as open-minded to that as possible, not just counting on the fact that you won't see a... 
00:27:12.032 --> 00:27:13.884
Gates: a short-cut along the way.
00:27:13.884 --> 00:27:25.997
Interviewer: But is there something also about the idea that you could, in theory, do anything in code, right? You're not limited by the tensile strength of the metal or what have you. 
00:27:25.997 --> 00:27:27.336
Interviewer: Is that part of it?
00:27:32.846 --> 00:27:33.476
Gates: When... 
00:27:33.476 --> 00:27:40.404
Gates: when you program, you want to think you're writing the best possible program for the... 
00:27:40.404 --> 00:27:43.317
Gates: for the task you're trying to solve. 
00:27:43.317 --> 00:27:56.779
Gates: And even for the very best programmers ah, sometimes you'll see someone else's program or somebody will come along and they'll show you what can be done in a simpler way. 
00:27:56.779 --> 00:28:05.439
Gates: And it kind of blows your mind to recognize, gosh, the possibilities of clever programming are so incredible. 
00:28:05.439 --> 00:28:09.218
Gates: Ah, there are often ah, neat ways to do things. 
00:28:09.218 --> 00:28:18.587
Gates: And good programmers stay open minded to that even though there is no obvious way to improve what they've done they... 
00:28:18.587 --> 00:28:23.940
Gates: they keep looking and they listen to what other people have to say. 
00:28:23.940 --> 00:28:34.647
Gates: That's why we have this concept of a lot of people looking at the code, reviewing the code to see if they have a better approach to it. 
00:28:34.647 --> 00:28:37.717
Gates: And open-mindedness is very important. 
00:28:37.717 --> 00:28:38.505
Gates: Ah, we... 
00:28:38.505 --> 00:28:44.331
Gates: we can't mathematically ever prove ah, that we've gotten the best program.
00:28:44.330 --> 00:28:56.249
Interviewer: So how do you motivate your software developers to get a project done? How do you make them optimistic about it or are they just born that way?
00:28:56.249 --> 00:28:57.068
Gates: The most... 
00:28:57.068 --> 00:29:03.491
Gates: the most important people is to pick people who like to write software and who are good at... 
00:29:03.491 --> 00:29:06.634
Gates: good developers like working with each other. 
00:29:06.634 --> 00:29:07.454
Gates: And they... 
00:29:07.454 --> 00:29:09.914
Gates: they reinforce each other's skills. 
00:29:09.914 --> 00:29:14.902
Gates: Ah, good developers like seeing their products sell in large quantities. 
00:29:14.902 --> 00:29:31.027
Gates: They enjoy the competition of doing a better job than the other company, especially if the other company has more people on the project and they're entrenched and people are saying that we don't have a chance of getting in there and... 
00:29:31.027 --> 00:29:32.120
Gates: and doing well. 
00:29:32.120 --> 00:29:34.443
Gates: You have to view it as a mission. 
00:29:34.443 --> 00:29:37.586
Gates: And build up a very high level of excitement. 
00:29:37.586 --> 00:29:40.729
Gates: Make sure they know all the pieces of what... 
00:29:40.729 --> 00:29:45.375
Gates: what you're doing and assign them a very ah, tough part of the job. 
00:29:45.375 --> 00:29:58.220
Gates: For us that's meant you know, groups of about 15 people, who, early in the project go off, really talk through what's going to happen and spend an intense period of time working together. 
00:29:58.220 --> 00:30:09.084
Gates: Ah, we try to set that to be around two years because anything more than that ah, you know, it's hard to see the end and if you have to course correct it's... 
00:30:09.084 --> 00:30:10.792
Gates: it's a bit of a problem. 
00:30:10.792 --> 00:30:18.582
Gates: But we need about that much time to do something that's so significant that users actually want to change what... 
00:30:18.582 --> 00:30:19.606
Gates: what they have.
00:30:19.606 --> 00:30:25.145
Interviewer: So it sounds like your most valuable resource is smart people who work together well. 
00:30:25.145 --> 00:30:33.840
Interviewer: Is that a concern for you that someday you might not have enough people to write software? I mean Microsoft is growing pretty quickly. 
00:30:33.840 --> 00:30:36.352
Interviewer: How do you get people into the company?
00:30:52.008 --> 00:31:03.570
Gates: From the day Microsoft was started, the only constraint to our growth has been attracting ah, more great programmers, very smart, committed, ah, people. 
00:31:03.570 --> 00:31:05.535
Gates: And so we're always on... 
00:31:05.535 --> 00:31:08.634
Gates: on the look for ah, that kind of person. 
00:31:08.634 --> 00:31:27.754
Gates: And over the years, you know, we've gotten to know the various college campuses, we've gone outside the United States, and pushed the immigration department absolutely to its limits in terms of letting us bring in ah, smart people from other countries. 
00:31:27.754 --> 00:31:36.143
Gates: It's ah, of considerable interest to us, you know, where can we find ah, more of these world class developers. 
00:31:36.143 --> 00:31:42.718
Gates: And it's been the key to our success that we've found ah, far more than our fair share.
00:31:42.718 --> 00:31:57.242
Interviewer: If you were going to try to convince someone who you thought would be a good programmer, let's say someone who had never seen a computer, which is kind of hard to believe, but what would you tell them about writing software, to make them want to do that?
00:31:57.242 --> 00:32:04.055
Gates: If you're smart, you often want a feedback loop so you know if what you've done is... 
00:32:04.055 --> 00:32:04.847
Gates: is right. 
00:32:04.847 --> 00:32:07.540
Gates: And ah, you know, you can adjust. 
00:32:07.540 --> 00:32:18.392
Gates: In the pure sciences, of course, there is a concrete test of whether theories work or not, but ah, the frontiers are very far out there. 
00:32:18.392 --> 00:32:18.947
Gates: The... 
00:32:18.947 --> 00:32:23.383
Gates: the practical impact of those things is fairly limited. 
00:32:23.383 --> 00:32:44.691
Gates: Urn, and so we can often attract people who were in a pure science, at least in school, to an area that requires the same precise thinking, and yet ah, has this impact that you can meet people who are using the software and they can tell you what's good or what's bad. 
00:32:44.691 --> 00:32:52.612
Gates: And you can work with other very smart people and you know, show them, you know, do you have the... 
00:32:52.612 --> 00:32:56.335
Gates: the right stuff to ah, do incredible software. 
00:32:56.335 --> 00:33:10.911
Gates: And it's often somebody who's been involved in the sciences and likes the idea of a concrete test of ah, excellence, rather than just, you know, a very soft definition of what's right.
00:33:10.911 --> 00:33:17.283
Interviewer: I just wanted to ask you in a different way about the project, the people on a project. 
00:33:17.283 --> 00:33:24.525
Interviewer: If you're building an airplane and you're running behind schedule you put more people on a project. 
00:33:24.525 --> 00:33:31.477
Interviewer: What would happen to you if you did that on a software product that was running behind schedule?
00:33:31.477 --> 00:33:52.769
Gates: In software you can't really add people and expect to get more done, because their ability to understand the program and what's going on it would require so much investment and all their work would require so much review that you'd be more likely to slow things down. 
00:33:52.769 --> 00:34:06.831
Gates: Ah, in...in programming when you're making a change you have to know all the affected places, and you have to be able to model in your head what the performance impact will be. 
00:34:06.831 --> 00:34:07.864
Gates: And so we... 
00:34:07.864 --> 00:34:17.318
Gates: when we start out with a team of a certain size, we can only increase it a small amount during the course of a project.
00:34:22.704 --> 00:34:26.486
Interviewer: I read your speech that you gave at Convex. 
00:34:26.486 --> 00:34:33.965
Interviewer: The buzzword for Microsoft is information at your fingertips, what do you mean by that?
00:34:33.965 --> 00:34:42.933
Gates: The term, information at your fingertips, is to remind people what a broad role the personal computer will be playing. 
00:34:42.933 --> 00:34:49.188
Gates: It's not a computation device, it's not a word processing or a spreadsheet device. 
00:34:49.188 --> 00:34:52.579
Gates: It's a window onto the world of information. 
00:34:52.579 --> 00:34:59.512
Gates: Anything that someone's interested in should be very, very easy to call up onto the screen. 
00:34:59.512 --> 00:35:11.419
Gates: And in fact the computer over time will see what you're interested in and make that immediately available without your having to be give any commands at all. 
00:35:11.419 --> 00:35:14.508
Gates: This includes not just text and numbers. 
00:35:14.508 --> 00:35:16.392
Gates: Also pictures and sound. 
00:35:16.392 --> 00:35:22.722
Gates: Um, information from outside a company like the news data or other people's prices. 
00:35:22.722 --> 00:35:31.162
Gates: Or data of an educational nature, learning about the human body or movies or sports, should all be right there. 
00:35:31.162 --> 00:35:32.293
Gates: And so that... 
00:35:32.293 --> 00:35:45.481
Gates: that phrase is a challenge to the people in the industry ah, to come up with the software and data and networks um, that will make this a valuable tool literally for everyone.
00:35:45.481 --> 00:35:47.469
Interviewer: That's a hardware problem too, though. 
00:35:47.469 --> 00:35:52.008
Interviewer: I mean people have to have access — there are going to be lines between the information. 
00:35:52.008 --> 00:35:53.945
Interviewer: How do you see that getting organized?
00:35:53.945 --> 00:35:57.865
Gates: Lines? Oh, connections.
00:35:57.865 --> 00:35:58.302
Interviewer: Yeah.
00:35:58.302 --> 00:36:01.067
Gates: In order to fulfill this idea of... 
00:36:01.067 --> 00:36:20.650
Gates: of information at your fingertips, we have to have not only a lot better software but also portable computers that you can write on, ah, big flat screens so that the wall of an office could display data and you could just point to it and see more detail. 
00:36:20.650 --> 00:36:28.483
Gates: We need motion video and sound which current computers have very limited capabilities in those areas. 
00:36:28.483 --> 00:36:31.017
Gates: The machines need to get faster. 
00:36:31.017 --> 00:36:33.014
Gates: They need to get cheaper. 
00:36:33.014 --> 00:36:41.999
Gates: One reason that we don't dwell on this though is that ah, those advances are predictable, they will absolutely come. 
00:36:41.999 --> 00:36:52.443
Gates: Ah, just because chips get more powerful and the key technologies like storage and screen display, there's so much great work going on. 
00:36:52.443 --> 00:37:04.270
Gates: The most open area is ah, how available will the information be? That is, how easy will it be for people to reach out and find what they're interested in?
00:37:04.269 --> 00:37:06.726
Interviewer: And that's a software question?
00:37:08.838 --> 00:37:10.086
Gates: Yeah, finding... 
00:37:10.086 --> 00:37:17.352
Gates: finding information is either a software question or a question of how much information is online. 
00:37:17.352 --> 00:37:33.940
Gates: For example in teaching students about all of history, you've got to make sure that you've found somebody who understands it very well, who put in the pictures and text and was financially motivated or somehow motivated to... 
00:37:33.940 --> 00:37:36.289
Gates: to make all that data available.
00:37:36.289 --> 00:37:43.390
Interviewer: We're looking at artificial reality as sort of the step from the 2D to the 3D interface. 
00:37:43.390 --> 00:37:47.220
Interviewer: And in a way it seems like it's at the stage... 
00:37:47.220 --> 00:37:56.875
Interviewer: the hardware right now is still not right there for it and it's still incredibly expensive to put on one of these demos. 
00:37:56.875 --> 00:38:09.641
Interviewer: Is it analogous to where say someone like Englebart was back in the 1960s when he was trying to demonstrate the power of a 2D interface? Is that a fair analogy?
00:38:19.661 --> 00:38:20.107
Gates: Yeah. 
00:38:20.107 --> 00:38:24.782
Gates: What term are you using, virtual reality or artificial reality?
00:38:24.782 --> 00:38:25.813
Interviewer: Virtual reality.
00:38:25.813 --> 00:38:26.712
Gates: Virtual... 
00:38:26.712 --> 00:38:30.549
Gates: virtual reality is at...at a very early stage. 
00:38:30.549 --> 00:38:33.488
Gates: The demonstrations people do are... 
00:38:33.488 --> 00:38:40.754
Gates: are very simple ah, scenes and the equipment is kind of unwieldy and a little expensive. 
00:38:40.754 --> 00:38:41.978
Gates: However, it... 
00:38:41.978 --> 00:38:44.591
Gates: it will develop fairly quickly. 
00:38:44.591 --> 00:38:53.489
Gates: I don't think it will take the same, oh, 20 to 25 year period that using graphics on a computer screen took. 
00:38:53.489 --> 00:38:56.102
Gates: Because we have the foundation. 
00:38:56.102 --> 00:39:07.368
Gates: We have all these personal computers and software companies and ah, companies that build inexpensive chips that will attack this problem. 
00:39:07.368 --> 00:39:08.103
Gates: So it... 
00:39:08.103 --> 00:39:22.798
Gates: it might be ten years or maybe even fifteen years, but a lot of the things that you see in very specialized applications now, like flight simulation will become broadly available. 
00:39:22.798 --> 00:39:32.350
Gates: Even if the hardware's expensive you can imagine an arcade that you go into and get to use ah, the equipment on a... 
00:39:32.350 --> 00:39:34.146
Gates: on a temporary basis. 
00:39:34.146 --> 00:39:38.473
Gates: The toughest problems are also software 'I problems. 
00:39:38.473 --> 00:39:44.759
Gates: The idea of making it realistic, that you're walking around on the desert... 
00:39:44.759 --> 00:39:53.005
Gates: See right now we're, it's so new to us the idea of walking around the 3D scene and just hitting a... 
00:39:53.005 --> 00:39:59.454
Gates: a ball or something that very simple representations of what's going on are... 
00:39:59.454 --> 00:40:02.883
Gates: are fascinating and they kind of grab us. 
00:40:02.883 --> 00:40:13.496
Gates: But to make it an enduring phenomenon where you'd really find it fun, you'll have to have a lot of ah, physical things happening. 
00:40:13.496 --> 00:40:22.967
Gates: And the software to make those things happen quickly and appear realistic, it's quite complex although there are... 
00:40:22.967 --> 00:40:26.395
Gates: there are very smart people working on it.
00:40:26.396 --> 00:40:29.181
Interviewer: Is that a field that you see Microsoft getting into?
00:40:29.181 --> 00:40:30.966
Gates: Microsoft's role in... 
00:40:30.966 --> 00:40:33.759
Gates: in this ah, will be fairly limited. 
00:40:33.759 --> 00:40:36.631
Gates: Ah, we sell a flight simulator game. 
00:40:36.631 --> 00:40:40.201
Gates: And as it becomes pervasive we may do some... 
00:40:40.201 --> 00:40:42.297
Gates: some entertainment titles. 
00:40:42.297 --> 00:40:52.619
Gates: But the ah, most of the interest comes from people thinking of walking through architectural models or travelling on the moon, or... 
00:40:52.619 --> 00:40:54.326
Gates: or flight simulation. 
00:40:54.326 --> 00:41:03.018
Gates: So our focus on improving access to information and work in the office doesn't directly overlap virtual reality.
00:41:03.018 --> 00:41:10.152
Interviewer: What's the most important thing that you think has happened in personal computing since you joined the industry?
00:41:10.152 --> 00:41:11.914
Gates: Well, there wasn't... 
00:41:11.914 --> 00:41:16.077
Gates: there wasn't a personal computer industry before... 
00:41:16.077 --> 00:41:17.678
Gates: I mean we didn't... 
00:41:17.678 --> 00:41:19.119
Gates: it didn't happen. 
00:41:19.119 --> 00:41:20.400
Gates: There wasn't... 
00:41:20.400 --> 00:41:21.681
Gates: there wasn't... 
00:41:21.681 --> 00:41:23.603
Gates: ah, wasn't an industry. 
00:41:23.603 --> 00:41:27.606
Gates: The most important thing was the creation of a... 
00:41:27.606 --> 00:41:34.891
Gates: a standard, where hundreds of companies build hardware that can all run the same software. 
00:41:34.891 --> 00:41:49.062
Gates: The effect that's had on allowing software companies to write even obscure applications and be able to sell them in high volume and therefore, make money, is really incredible. 
00:41:49.062 --> 00:41:58.349
Gates: It's a level of openness that allows people to switch their hardware without any change in the software whatsoever. 
00:41:58.349 --> 00:42:09.157
Gates: And now we have over 60 million machines that can take the same diskette, plug it in and immediately ah, that that software's working. 
00:42:09.157 --> 00:42:13.960
Gates: And so it's created the worldwide software industry that... 
00:42:13.960 --> 00:42:17.963
Gates: that is so very competitive and moving so quickly.
00:41:10.152 --> 00:42:17.963
Interviewer: Do you have any last thoughts for me on software engineering is other kinds of engineering?
00:42:29.586 --> 00:42:30.569
Gates: No, soft... 
00:42:30.569 --> 00:42:33.516
Gates: software is definitely engineering. 
00:42:33.516 --> 00:42:38.264
Gates: It's different in that we take on novel tasks every time. 
00:42:38.264 --> 00:42:48.006
Gates: It's not like building a certain bridge that is virtually identical to some previous bridge or some previous building. 
00:42:48.006 --> 00:42:53.409
Gates: And the number of times those people make mistakes is very small. 
00:42:53.409 --> 00:43:11.420
Gates: And first you think, well, what's wrong with us? Why you we miss our dates and sometimes it's too slow? It's because it's like we're building the first ah, skyscraper every time, or the first Verisano Bridge every time. 
00:43:11.420 --> 00:43:21.571
Gates: And so we're having to invent the whole approaches of how pieces work together and see ah, limitations that you wouldn't... 
00:43:21.571 --> 00:43:27.056
Gates: you wouldn't have expected because nobody has worked there before. 
00:43:27.056 --> 00:43:28.857
Gates: So in the sense of... 
00:43:28.857 --> 00:43:34.179
Gates: of doing very novel things ah, it's a tough area of engineering. 
00:43:34.179 --> 00:43:40.482
Gates: Almost like the engineers work on space missions or creating all new things. 
00:43:40.482 --> 00:43:52.844
Gates: They have certain approach ah, that they do duplicate systems and they test the systems, and a lot of that got ah, pioneered in the early space shots. 
00:43:52.844 --> 00:44:02.259
Gates: Software will get to be somewhat more mature, ah, but it will never be as predictable as most areas of engineering.
