First Monday
Read related articles on Computer industry, Internet economics, Linux and Software development

Interview with Linus Torvalds: What motivates free software developers?

Linus Torvalds wrote the core of Linux, a free version of the Unix operating system. Despite being free, with no large software company backing it, Linux now has an estimated installed base comparable to MacOs or Windows NT. Linux is extremely popular among Internet software developers, and the "Linux model" of decentralised development with loose copyright is the topic of three papers in this issue of First Monday. Netscape's decision in January to release source code for its Web browser shows that the commercial software is not immune to the Linux model either.

Over the past two years, Linus Torvalds had an e-mail dialogue with First Monday's Rishab Aiyer Ghosh on what motivates people to work on free software. According to Torvalds, it is not really fame and reputation. Contributing to the "cooking-pot market" of the Internet matters, which is why he doesn't care for shareware. Users are developers too, as they contribute implicitly. And while a passive user base could reduce developers' inclination to write free software, what counts most of all for the best programmers is the fun of programming - they're like artists.

FM: What did you want out of releasing Linux publicly, the first time? Did you get it? Was it money, fame - "reputation" - a nice set of software libraries written by others that helped your other work?

LT: Originally it wasn't any of the above, although I did ask around for other peoples work that I could use (and thus there was a kind of "quid pro quo" there). Originally Linux was just something I had done, and making it available was mostly a "look at what I've done - isn't this neat?" kind of thing. Hoping it would be useful to somebody, but certainly there is some element of "showing off" in there too.

LT: The "fame and reputation" part came later, and never was much of a motivator, although it did of course to some degree enable me to work on it without feeling guilty about neglecting my studies ("Hey, this is much better for me than getting a degree quickly").

LT: A large motivator these days (and this started to happen pretty quickly after making it available) was just that people started using it and it feels good to have done something that other people enjoy using.

FM: How did Linux, as a product, benefit by being released as it was? If you were Bill Gates, would you have been able to make Linux a better product through commercial, in-house development, or is there something unique about the free-for-all developer+user+distributer model - what I call the "cooking-pot market"?

LT: Making Linux freely available is the single best decision I've ever made. There are lots of good technical stuff I'm proud of too in the kernel, but they all pale by comparison.

FM: That makes a lovely quote, and you concisely defined a good "business" model in the following paras that Netscape is trying to steal these days. [This was in October 1996; Netscape has, in fact, stolen the model now]

LT: Essentially, making it free is what made a difference between a system that was something one person was able to write in half a year, and a system that rivals (and surpasses) commercial operating systems.

There are lots of advantages in a free system, the obvious one being that it allows more developers to work on it, and extend it. However, even more important than that is the fact that it in one fell swoop also gave me a lot of people who used it and thus both tested it for bugs and tested it for usability. The "usability" part comes from the fact that a single person (or even a group of persons sharing some technical goal) doesn't even think of all the uses a large user community would have for a general-purpose system.

LT: So the large user-base has actually been a larger bonus than the developer base, although both are obviously needed to create the system that Linux is today. I simply had no idea what features people would want to have, and if I had continued to do Linux on my own it would have been a much less interesting and complete system.

FM: How do Linux users benefit from this model (apart from not having to pay cash)?

LT: Well, the quick development is another and often more important thing. People who are entirely willing to pay for the product and support find that the Linux way of doing things is often superior to "real" commercial support, partly because there is less of a "buffer" between the user and the developer. The user can often be the developer, and even when he doesn't want to do any development himself he still doesn't have to fight the marketing and management layer to get the attention of the developers.

In fact, one of the whole ideas with free software is not so much the price thing and not having to pay cash for it, but the fact that with free software you aren't tied to any one commercial vendor. You might use some commercial software on top of Linux, but you aren't forced to do that or even to run the standard Linux kernel at all if you don't want to. You can mix the different software you have to suit yourself.

(Obviously you can just run a plain standard-install that you bought from one of the commercial Linux vendors if you don't want to customize your sites, but with free software you have the choice of doing whatever you want with your computer).

And with all the development happening on the Internet, and all the tools being found there, if you have a problem with something you have a large community to help you (and ultimately you can even e-mail the primary developers themselves, although for understandable reasons "us developers" tend to be pretty busy doing other things and sometimes insensitive to a single users needs ;)

FM: If you have been "paid" for Linux, in terms of reputation capital and a better library of tools to choose from, can you trade this for stuff to live on? Do you want to? If you can't buy pizzas with reputation capital and freeware code, what do you eat?

LT: Well, I've been employed by the University of Helsinki [in October 1996 - Ed.], and they've been perfectly happy to keep me employed and doing Linux. Doing Linux hasn't officially been part of my job description, but that's what I've been doing, and they obviously know and support that. So in a sense I do get my pizzas paid for by Linux indirectly.

LT: Also, I don't exactly expect to go hungry if I decide to leave the University. "Resume: Linux" looks pretty good in many places. [Torvalds is now with Transmeta Corporation; see later in this interview]

LT: So yes, you can trade in your reputation for money. And the good thing about reputations (and intellectual property) is that you still have them even though you traded it in. Have your cake and it it too...

FM: Does the brickspace-cyberspace currency barrier matter? Don't most of your "earnings" from information products such as Linux go into "purchasing" other information products (also freeware)?

LT: It doesn't work that way. I get the other informational products for free regardless of whether I do Linux or not. The cyberspace "earnings" I get from Linux come in the format of having a Network of people that know me and trust me, and that I can depend on in return. And that kind of Network of trust comes in very handy not only in cyberspace..

FM: Actually I include such informal (but valuable) things as "trusted Networks of people" in the term "product" - so most of your cyberspace "earnings" remain "banked" in cyberspatial reputation capital, and only small amounts need to be converted to dollars and markkas.

Incidentally in my "cooking-pot market" model, where implicit transactions count, you are not getting other informational products - from USENET posts to source code - free. If nobody produced free stuff on the Net, if everyone charged, I expect you would probably not have given Linux away.

LT: Sure. There has been a reasonably strong "academic and open" community on USENET, and in fact in the UNIX world in general. It's a lot different from the shareware mentality in the DOS/Mac world. And that obviously makes a huge difference for people who would potentially join the community. So the act of making Linux freely available wasn't some agonizing decision that I took from thinking long and hard on it: it was a natural decision within the community that I felt I wanted to be a part of.

FM: In the old days of CompuServe, there was shareware, never freeware, certainly never free source code.

LT: Shareware was never an option for me: I really prefer to call the whole concept "guiltware", because I feel that that name is much more representative of what the thing is all about. The "share" in shareware would imply a sense of altruism that is much lacking in the real thing. And I never want to create that kind of software.

I much prefer software that is out-and-out commercial, and admits it up front. And commercial software can have demo versions that are available for free on the Internet, but that's a totally different thing from "share"ware (the demo versions are usually crippled some way, but there is no guilt associated with using the demo version - you just don't get all the features you'd get from the commercial "real" version).

LT: Originally Linux was just something I had done, and making it available was mostly a "look at what I've done - isn't this neat?" kind of thing.

FM: So you clearly didn't think you would lose some 'intellectual property' by releasing it.

LT: Well, I obviously kept a copyright on the code, and the initial copyright was pretty strict. It essentially said something like: "You cannot distribute this for money, and you may not make any changes without sending those changes to me for potential future inclusion in my sources".

So I did want to protect myself from people who would use my code to create something that I couldn't use myself, or to sell it onwards..

The copyright changed within just half a year: it didn't take long before people started asking for permission to make floppy distributions for people who didn't have Internet access, and they obviously didn't want to do this at a loss (the original copyright didn't even allow copying charges).

As I was heavily dependent on the GNU C compiler to actually do any work on Linux, I changed the copyright to the GNU "Copyleft", the GNU Public License. That one allows you to sell it freely and do whatever you want with it, but obviously still requires that any modifications will have to be made available too.

FM: What motivates you to work on Linux? you said earlier that "The 'fame and reputation' part [was] never was much of a motivator". You also said that a large motivator these days is that "people started using [Linux] and it feels good to have done something that other people enjoy using."

Now that sounds pretty altruistic, and doesn't help to make an economic model! Other than intangible - even emotional - value your work brings you: "fun", "fame", "feeling good", is there anything else?

LT: Sure. There's a lot of tangible indirect value for doing Linux. I may not get paid directly from the Linux project itself, but my current work position is obviously in large part due to Linux: without Linux I would never have gotten the name in the computer industry that I now have, and without Linux I wouldn't have had the same kinds of possibilities open to me as I now have.

So Linux has definitely made a lot of sense even in a purely materialistic sense. Admittedly I could probably have made more money during the seven years I've so far spent with Linux on doing something else, but it's now a lot easier for me to make money doing other things ("other things" do include Linux, obviously, but I want to continue to try to avoid making money directly off Linux - that keeps me focused on purely technical issues with the Linux kernel).

FM: Specifically, are you motivated to "put back" into the Internet, as a sort of payment for all the free benefits - software and services - you get out of it? Putting back into a community, after and while you benefit from it, seems much more tangible to me than "feeling good" - and when you "feel good" about a large user base, it seems to me that you implicitly want to "put back" as a sort of thanks for being able to "take out"?

LT: Well, I've put in a lot of work, and that's really what the thing has been all about: everybody puts in effort into making Linux better, and everybody gets everybody elses effort back. And that's what makes Linux so good: you put in something, and that effort multiplies. Essentially, in game theory terms it's not a "zero-sum game" at all: it's a positive feedback cycle.

Imagine ten people putting in 1 hour each every day on the project. They put in one hour of work, but because they share the end results they get nine hours of "other peoples work" for free. It sounds unfair: get nine hours of work for doing one hour. But it obviously is not.

Note that this isn't true of just the Linux developers who write the kernel code, it's also true of the actual users. Especially in the early days of Linux the users were also acting as guinea-pigs for new features and so on, and they (sometimes unwittingly) put in a lot of effort in determining whether something worked or whether it really should have worked another way. And for that work they put in they got the reward of seeing better and better systems.

What I'm really saying that there is no need for anybody to even try to put back as much as you get from the Linux project - because it doesn't really make sense. The whole project is built on the idea that everybody puts back whatever they can - and that the sum of a lot of small effort is a really good system..

FM: You said that you thought Linux's large user base even more important than the large developer base - because users, in detecting and reporting bugs, are as valuable as developers? In this case, you obviously don't see users as "consumers" of something developers (such as you and others working on Linux's core code) "produce". Users are producing too - bug reports, detecting bugs - and developers are consuming that?

I have written on the value of readers. Usually one assumes that readers (users) should pay writers (developers) but it often works the other way round. With Linux, as with many things, it worked both ways in balance, so nobody gets paid! So it's a fair exchange, perhaps? Collaborative development between a user base and developer base, with the dividing line between them pretty blurred?

LT: The traditional distinction between "consumer" and "producer" really doesn't make all that much sense in software, I think. A "consumer" doesn't actually take anything away: he doesn't actually consume anything. Giving the same thing to a thousand consumers is not really any more expensive than giving it to just one.

And that's why I don't see this as a race of consumers against producers: the users act as another kind of producer: they don't produce the source of the product, but they do produce information about the product and valuable knowledge on how the product can be made better.

Note that I'm not saying that all users do this: there are obviously users out there that don't really contribute anything back. But the thing with software is that it doesn't cost the programmers anything to let those users have the software anyway, it's just important to encourage enough users to do it that you get a good feedback cycle.

FM: What happens if the dividing line becomes sharp - if users stop contributing. If a Windows-95-type Linux became available, with similar levels of "ease of use" and a clear division between end-users - customers - and developer-producers, couldn't the proportion of users active in aiding the development process - by contributing bug-reports, say - become too small to make the Linux development model worthwhile?

LT: Well, the thing with Linux is that the developers themselves are actually customers too: that has always been an important part of Linux. That's not often true of most other software projects: usually commercial software is not actually worked on by people who use that project for their own work. So even without any external end-users there would still exist this kind of relationship between a user and a developer.

The thing that makes "real users" so interesting is that they have so different useage patterns from most developers, which is why a product that is solely targeted to developers usually lacks a certain stability and finish. And I certainly believe that the normal Linux user will continue to be there and help the developer whether he really does so consciously or not..

FM: [If the contributing userbase were to shrink drastically in proportion to the total] would developers like yourself feel less comfortable giving things away? If you felt that you were "putting back" more than what the (large, diffused, mainly passive) community was giving you?

LT: The thing is that a Linux user has a very hard time not giving things back. He doesn't have to give anything back actively: it is feedback to just know that some person uses Linux for a certain application domain. And usually even a very silent users tells a lot more than that - just by the type of questions he posts to newsgroups and mailing lists.

FM: One explanation for why the Linux model has worked best with developer-type software - Web servers, compilers, the OS itself - seems to be that in these areas, there is much intersection between the developer and user bases. End-users contribute, actively participating in the community. In other areas - office software such as professional wordprocessors - the Linux model has had much less success. (StarOffice doesn't count as a "Linux model" creation, since it is proprietary and backed by completely commercial software.) Isn't this because in such markets end-users tend to be completely passive consumers?

LT: I certainly agree. I think the open development model tends to work best for areas where the developers are themselves users (see above). I don't think that is really anything fundamental, but being a user and a developer adds motivation that would otherwise have been replaced by the normal money-concerns of commercial software.

Note that I don't think this necessarily means that there are problems developing non-technical applications: many programmers are also users of some rather non-technical programs. For example, there are now more and more free applications even in normal "end-user" areas like graphics etc, because many programmers have a very intense interest in such areas.

FM: I mean, a user of [UNIX-based text editors] e-macs or vi may plausibly find a bug, identify it, provide a detailed report, even change the source code. But a user of a wordprocessor in an office environment is unlikely to a) notice obscure bugs; b) identify them; c) clearly describe them; d) fix them, even if source were available.

In this case, isn't the user contributing much less? The value of development is much more concentrated in the core development team? Since the flow of value seems less distributed, more unidirectional, doesn't this reduce the incentive for developers to release free code in such areas of software?

LT: Yes. On the other hand, many programmers also use word processing tools or other tools, and if you can also make the user base more open to discussing their problems or other issues on an open forum like a newsgroup, much of the "closed office" mentality goes away.

That's why you see projects like the GIMP and Wine - which are definitely squarely aimed at end-users - still doing pretty well as open source projects: because they are the kind of end-user applications that programmers find interesting too.

So I think it's mainly a matter of programmers being more inclined to do technical projects like kernels, Web servers, compilers etc, but that there really isn't anything fundamental keeping them from other more "mundane" projects.

FM: What I'm driving at, is that if the flow of value into the community is unbalanced, with some people contributing much much more than most, and the large majority contributing nothing at all, is there anything left to motivate free contributions from that small minority? "Fame and reputation" for most developers matters when they come from the peer group. I.e. reputation is most valued when it results from respect among user-developers who are contributing to the system. You don't want to be famous among parasites! So, while in the present market for Linux, contributors - if you include active users - are fairly widely dispersed, making their respect count to your "fame and reputation", giving your ego a boost and giving you good feelings, if the flow of value was much more unidirectional, would free development work?

In the extreme case, if it was just you doing all the code, and the rest of the world quietly used it, would it make sense to give it away free? Unless you're particularly grateful for other free things you've got off the Net, would the answer be No?

LT: I don't necessarily think so. It might be true in certain niche areas, but almost any project will give a developer that "feel good" feeling when he has users and he feels he is doing something worthwhile. I really don't think you need all that much "quid pro quo" in programming - most of the good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.

FM: We discussed how reputation is "convertible" into dollars, and how much of the value you contribute without payment is "putting back" value into the Internet communities in which you belong. This clearly means, doesn't it, that you only expect part of the value you create to result in material gains? In which case reputation need not be "fully convertible" a currency, and much of the time it would be traded purely in cyberspace...

LT: Note that I do believe that while the reputation I have built up is convertible, it still leaves off a lot of purely personal reasons to program even without any real material gains - be they direct or indirect.

A lot of people enjoy just the interaction on the Internet, and the feeling of belonging to a group that does something interesting: that's how some software projects are born.

So I think that yes, there are issues with "getting value back" from your involvement with any project on the Internet, and I think those should be a consideration, but I don't think it should be the first consideration. The first consideration for anybody should really be whether you'd like to do it even if you got nothing at all back. And if you answer "yes" to that question, then it is probably a project you'd enjoy doing, and one where concerns like how much you'd get out of it personally really are rather secondary.

FM: It has now been over a year since you left the University of Helsinki. Many other Linux developers were not in an academic or government institution when they worked on Linux, but had "day jobs". Now that you have a "day job" too, hopefully the suspicion that Linux is an example of a project subsidised by government or academia will go.

LT: Maybe. I think most of that reputation had started to fade long before I left the University - Linux was simply getting to be too useful at commercial companies to ignore. So I think the fact that I moved to a commercial company really isn't of that big importance.

FM: But how much of your reputation ("Resume: Linux") did you use for the job at Transmeta? I understand that the company is largely a hardware/VLSI firm. You told WIRED that part of your job is Linux, that it's in your contract. Any explanation for this?

Why would a company sponsor someone to work on free software? To "put back" value into the Net? To get a reputation? Neither seem that likely - and I haven't heard plans to change the name of Linux to Transmetux! Or perhaps because this was one of your conditions of acceptance? It would be interesting to know...

LT: Being able to continue to work on Linux without Transmeta in any way holding power over it was definitely one of the requirements for me joining. I actually had several offers, and all of them would have allowed me to continue my work on Linux, so that was really never even an issue for me.

In the case of Transmeta, while we don't actually sell Linux (and don't worry, it's not that kind of company), there is quite a lot of use of Linux internally at the company, so there are obvious direct benefits to letting me continue the work here. And I think it's a PR thing too - it wouldn't look good to be the company that killed off Linux by not allowing me to work on it ;)

LT: What I'm really saying that there is no need for anybody to even try to put back as much as you get from the Linux project - because it doesn't really make sense. The whole project is built on the idea that everybody puts back whatever they can - and that the sum of a lot of small effort is a really good system.

FM: Of course! See my point below on reproduction on the Net. Let me put this another way: once you have Linux, and a big Linux community, then you're working on Linux for many reasons. but before that community exists, what prompts you to give Linux free to a larger community (in this case the Net as a whole), from which a Linux community will form? I.e. what makes someone at the beginning of such a project decide to donate it to a larger community? you said fame and reputation wasn't the draw - obviously, you couldn't have known what a success Linux would become! - so was it the urge to "put back" into the Net?

LT: Ahh.. I misunderstood.

In my specific case, it was really a combination of factors: one was that I was very much disappointed with the problems I had personally had trying to find a UNIX-like system for my own use. I strongly felt that a much more easily available and much cheaper version of UNIX was sorely needed, because I had tried to find one myself and failed.

So when I ended up writing my own, I was motivated by my earlier experience to put it out publicly on the Internet, because that was what I would have wanted six months earlier. "Do unto others as you would like others to do unto you", so to say.

Also, I've never personally been in the position that I felt I had to program for money - programming may be my job, but long before it was my job it was my pleasure. So the concept of making money or even just fame off software was really fairly secondary to the fact that I wanted to program anyway..

It was not really a quesiton of giving anything back to the Internet, although the later change in copyright to the GPL was definitely a gesture towards giving something back to the people who had given me gcc to play with and use.

LT: Imagine ten people putting in 1 hour each every day on the project. They put in one hour of work, but because they share the end results they get nine hours of "other peoples work" for free. It sounds unfair: get nine hours of work for doing one hour. But it obviously is not.

FM: No. And this only works because on the Net (i.e. with software) you can duplicate the output indefinitely, so that many people get the benefits for little or no extra costs. Also, it only works if those people understand this barter-type exchange of value, and put in their one hour each even as they take their nine hours out. After all, these people aren't being coordinated through some central planning agency, or even the invisible hand of a (price-determined) free market: the system depends on the instinctive reaction of these people to put in those single hours, understanding that unless most of them "donate" their hour, those other nine hours would quickly disappear... it's a "cooking-pot market" - barter, without individual transactions.

LT: Right. This is also why it is not surprising that the richest person in the world is somebody selling software - making money off a product that doesn't cost anything to duplicate. You can't beat that combination easily ;)

LT: I really don't think you need all that much "quid pro quo" in programming - most of the good programmers do programming not because they expect to get paid or get adulation by the public, but because it is fun to program.

FM: Yes. so this means, then, that they see it as a form of self-expression, not as production - play, not work - and therefore any sort of value received from others in exchange for their programming is a bonus.

LT: Yes. Kind of the way artists tend to work: artists usually don't make all that much money, and they often keep their artistic hobby despite the money rather than due to it.

Programmers are in the enviable position of not only getting to do what they want to, but because the end result is so important they get paid to do it. There are other professions like that, but not all that many.

FM: Agreed. However, I'd say that it is very subjective, depending from person to person, how much programming people are willing to do just for "fun". The very best programmers may indeed be willing to do all their work for "fun", just as the very best cellists might, say - providing they don't starve, of course. But I'd expect that as you go beyond the apex of the pyramid, programmers want more and more of their work to receive some sort of "quid pro quo" - reputation, even distribution of contributions among user-developers, "taking out" for their "putting in" - with a base of programmers at the bottom working just for money... an art form, one would say!

LT: Maybe. And maybe this is why open source software tends to be so good: the only people who can "afford" to create open source products are the top of the pyramid that do it because they enjoy it, not because they have to. No wonder free software is technically usually in a league of its own.

Contents Index

Copyright © 1998, ƒ ¡ ® s † - m ¤ ñ d @ ¥