Open source theory is rooted in evolutionary psychology

Yesterday I realized, quite a few years after I should have, that I have never identified in public where I got the seed of the idea that I developed into the modern economic theory of open-source software – that is, how open-source “altruism” could be explained as an emergent result of selfish incentives felt by individuals. So here is some credit where credit is due.

Now, in general it should be obvious that I owed a huge debt to thinkers in the classical-liberal tradition, from Adam Smith down to F. A. Hayek and Ayn Rand. The really clueful might also notice some connection to Robert Trivers’s theory of reciprocal altruism under natural selection and Robert Axelrod’s work on tit-for-tat interactions and the evolution of cooperation.

These were all significant; they gave me the conceptual toolkit I could apply successfully once I’d had my initial insight. But there’s a missing piece – where my initial breakthrough insight came from, the moment when I realized I could apply all those tools.

The seed was in the seminal 1992 anthology The Adapted Mind: Evolutionary Psychology and the Generation of Culture. That was full of brilliant work; it laid the foundations of evolutionary psychology and is still worth a read.

(I note as an interesting aside that reading science fiction did an excellent job of preparing me for the central ideas of evolutionary psychology. What we might call “hard adaptationism” – the search for explanations of social behavior in evolution under selection – has been a central theme in SF since the 1940s, well before even the first wave of academic sociobiological thinking in the early 1970s and, I suspect, strongly influencing that wave. It is implicit in, as a leading example, much of Robert Heinlein’s work.)

The specific paper that changed my life was this one: Two Nonhuman Primate Models for the Evolution of Human Food Sharing: Chimpanzees and Callitrichids by W.C.McGrew and Anna T.C.Feistner.

In it, the authors explained food sharing as a hedge against variance. Basically, foods that can be gathered reliably were not shared; high-value food that could only be obtained unreliably was shared.

The authors went on to observe that in human hunter-gatherer cultures a similar pattern obtains: gathered foods (for which the calorie/nutrient value is a smooth function of effort invested) are not typically shared, whereas hunted foods (high variance of outcome in relation to effort) are shared. Reciprocal altruism is a hedge against uncertainty of outcomes.

I think I read this in 1993 or 1994. When I was casting about for a generative explanation of open-source commons behavior a few years later, what came to mind is that coding is like hunting rather than gathering – a high-variance activity (sometimes you succeed, sometimes you fail spectacularly, and outcomes are uncertain) which thus evokes instinctive reciprocal gifting.

That idea – software cooperation as risk-hedging – would drive every other central theme in my analysis. Rapid release cycles? Process transparency? Open source itself? Check, check, and check – all ways to maximize the effectiveness of reciprocal altruism as a hedge against risk.

By the time I got this far, I realized that I already knew how to reason about the resulting cooperative equilibria. I could bring in the entire apparatus of neoclassical and Austrian economics! Applying it was a little tricky because the relevant markets weren’t monetized, but my long history as a libertarian helped – it meant I had actually been paying attention when people like Gary Becker and David D. Friedman explored reciprocal altruism in non-monetized markets.

Of course, the fact that I developed a model that made sense in the language of economics later became tremendously important. It made the pitch to the business mainstream intellectually almost trivial. Took a lot of hard work and propaganda to get the message across, but almost no serious thinking.

Part of the point of this explanation, though, is that the evolutionary-psych insight actually came first and the economics second. I never lost sight of the fact that none of the market mechanisms supporting open-source behavior would work quite the way they do if we weren’t genetically pre-adapted to feel reciprocally altruistic in the presence of high variance of outcomes.

There you have it, intellectual historians. You no longer have to speculate about the effect of evolutionary psych on my thinking. The connection was short, straight, and solid. I’ve sent email to McGrew (I couldn’t find an email address for Feistner) because he deserves to know too.

UPDATE: Dr. McGrew has sent me a surprised and pleased reply.

Published
Categorized as General

89 comments

    1. >have you seen the recent crowdfunding drive for snowdrift.coop

      I’ve been pointed at it, but too busy recently to give it the kind of concentrated ttention it probably deserves. On my to-do list.

  1. I’ve often explained the draw of open source as a sweat equity version of capital investments in early trade corporations. Just as the Dutch and then British would invest part of their money in many shared-risk ships for part of the return on each, we invest our time and effort into many shared-risk software projects and share the returns. Software is such that we can easily share also with those who didn’t invest up front.

  2. RE: snowdrift.coop

    After reading that screed I’m almost tempted to go out and buy a brand spanking new copy of MS Windows .

    1. >After reading that [snowdrift.coop] screed I’m almost tempted to go out and buy a brand spanking new copy of MS Windows.

      Why the allergic reaction?

    1. >Mixing of causes. For example, they claim that if you are an ethical person, you won’t eat meat.

      Oh, for fuck’s sake. OK, they’re too stupid to be competent. Shall ignore.

  3. Evolution proceeds without regard for the origin of mutations that active its functioning. What persists is what works (on long time scales). Open source isn’t right or wrong, it’s simply working to advance the species. No small matter, that.

  4. One thing I’m not getting:

    Some kinds of software development have higher variance than other. For some types of tool or application, a good programmer will know how to implement it and will be able to estimate fairly accurately how much time it will take. For others, there will be a lot of uncertainty involved no matter how good you are – you won’t know in advance how much work it will be, and there’s a large risk that after months or years you will end up with not much to show for it. Examples of the second kind would be things like speech recognition tools, novel audio/video compression algorithms, advanced optimizing compilers, etc.

    Per the analogy with hunting and gathering, your model would suggest that the second kind of software would be more likely to be open-sourced. But reality seems to be the other way around.

    If I want a mail client, a text editor or even a programming language (large and complex to develop perhaps, but not really unpredictable for those who have the basic skills required), I have dozens of open-source options to choose from. But someone who develops, for instance, a speech recognition algorithm or a video codec which is superior to anything else on the market, will very often choose to keep it proprietary so that they can obtain monopoly rents.

    Wouldn’t your model predict the opposite?

    1. >Wouldn’t your model predict the opposite?

      No, my model implies that the risk isn’t distributed in quite the way you assume. Instead of starting from a set of assumptions about where the risks are, you should look at open-source behavior and ask what kind of variance is this hedging against?

      Some of my work implies an answer. But I think you’ll benefit from working it out yourself.

  5. @ESR:
    >Me:
    > > After reading that [snowdrift.coop] screed I’m almost tempted to go out and buy a brand spanking new copy of MS Windows.

    > Why the allergic reaction?

    Not so much allergic as irritated. Kinda like when PETA does…anything…I want a double bacon cheese burger with a side order of chicken strips and some veal. And even I’m not so neanderthal as to eat real veal.

    The second, third and fourth paragraphs were just full of the sorts of buzzwords that cause a flareup of that itch in the third crease on the pointer finger of my right hand.

    Thing is, I kinda agree with some of it, but it smacks of someone Doing Something Important rather than seeing a problem and fixing it.

    Oh, and I answered his question back in 1996–using recursive auctions and software bounties. I wasn’t talented or focused enough make it work, but Ian Griggs wrote a paper “Using Electronic Markets to Achieve Efficient Task Distribution” in 1997 about it.

  6. RE: That Snowdrift thing

    I may not know much about art, history, biology, science, or the French I took; but I can see bullshit coming from a country mile away!

    There’s a deep, seedy, and nasty stench of AstroTurf coming off of that sucker! Can’t say where or who, but it’s more than meets the eye.

  7. There’s a deep, seedy, and nasty stench of AstroTurf coming off of that sucker!

    I don’t think that invoking astroturf is necessary; that babble is sufficiently explained by presuming the authors to be engaged in the same vapid Aristotelean air-castle building that so definitively characterizes the SJWs.

  8. >> Aristotelean air-castle building that so definitively characterizes the SJWs.

    “Who’s on first?”

  9. I’m not sure where your AstroTurf impression comes from. I think they have developed an interesting variation on assurance contracts that could find use in funding ‘continuous’ services like, say, hosting. It may even be especially appropriate for FLOSS and free culture, if (per the OP) trust dynamics make these sorts of developments inherently dependent on recurring, short release cycles (quite unlike most crowd-funded projects). And, more speculatively, it could be used as a way of providing general public goods (including ones that would otherwise be funded by taxes) in a way that’s both voluntary and open to competitive forces. (You could even imagine a world where most businesses raise revenue through these sorts of continuous assurance contracts, but sell their actual products at marginal cost.)

  10. Perhaps the most common risk that open-source developers want to hedge against is the risk that their efforts will be wasted.

    The odds are strongly against a single developer writing proprietary software that is financially successful. At the opposite end of the spectrum, effort on an existing, successful open-source project has a good chance of being appreciated and possibly being respected.

    In between, you have individuals and small groups starting new open-source projects that have a risk of not attracting new developers and users. However, the odds are better than proprietary development because open-source projects compete for the interest of developers rather than competing for the money of customers – getting people to part with money is always a tough one.

  11. The risk of some start-up open source projects is low because the initial developer(s) will build the functionality that they wanted in the first place – the reason they started the project at all.

  12. “The odds are strongly against a single developer writing proprietary software that is financially successful. At the opposite end of the spectrum, effort on an existing, successful open-source project has a good chance of being appreciated and possibly being respected.”

    Wouldn’t the optimum point be somewhere in the middle? The odds of a new developer making submissions to the LInux kernel team that are recognized as a significant contribution seem small. The odds seem better if you join a younger (but still widely recognized) Open Source project that is not as mature and has not attracted as many regular developers.

  13. @ Cathy

    Wouldn’t the optimum point be somewhere in the middle? The odds of a new developer making submissions to the LInux kernel team that are recognized as a significant contribution seem small.

    Note that I have no idea what esr is looking for – I haven’t worked anything out; I am guessing.

    The kernel is an extreme case in a variety of ways – not the least of which is the strong feelings about what it should include.

    There are a vast number of open source projects that would accept a patch for a new feature. There are different ways of contributing to a project in addition to writing all new code, including testing and bug fixing.

    I agree with you. The best chance of making a big splash are in established projects with demand for new features.

    Work on a less established project might provide a better opportunity for a reputation-enhancing patch, but there is more risk that the project won’t become more established and probably more political risk dealing with the founding developers.

  14. @ esr

    Some of my work implies an answer. But I think you’ll benefit from working it out yourself.

    This is about what led to CatB, isn’t it?

    This post is about what went through your mind. It isn’t clear to me how someone can work that out.

    1. >This post is about what went through your mind. It isn’t clear to me how someone can work that out.

      Actually, I just told the person I was responding to exactly how to do that! Given: Primates, including humans, use reciprocal altruism for risk hedging. Observed: Hackers engage in reciprocal altruism. The first check on whether this could mean anything is whether programming has a high variance in outcomes. Well, hell yes – along lots of axes we can measure and others we only understand in a vague qualitative way.

      This suggests that the question “What risk is their behavior optimized for hedging against?” might be productive.

      If you start from a-prioristic assumptions about what the risks of programming are, you’ll never ask that question, because you’ll think you already know what risks they need to hedge against. You then wind up haring off in a useless direction if either (a) your risk set doesn’t intersect much – or at all – with the kinds of risks that reciprocal altruism hedges against, or (b) your risk assessment is wrong – that is, you are over-focusing on failure modes that aren’t actually very important.

      Lambert’s panchreston detector going off was a subtler version of this same getting it-backwards mistake. He mistook a heuristic for a flawed proof attempt. The process by which you generate potentially interesting questions in the search for a generative theory is not the same process by which you check your generative theory for correctness.

      I think a major reason more people don’t have insights like I do is that they fear failure. They fear being wrong. So they choke up on their creative process, applying proof criteria too early when they should still be playfully searching for odd angles on the problem.

  15. My guess would be that the variance to hedge against as an OS developer is maintenance and debugging. These are long term costs that I find difficult to predict and plan.

    Writing a program is relatively straightforward. I do not need outside developers for that. The time consuming thing is debugging, porting, and general maintenance. I see value of an existing code base largely in the fact that is has been tested and debugged.

    I would prefer adding functionality to an existing project to coding everything myself, as it allows me to share the chores in a predictable manner. And I would invite others to add to my own projects for the same reason.

    1. >My guess would be that the variance to hedge against as an OS developer is maintenance and debugging. These are long term costs that I find difficult to predict and plan.

      That is correct but not complete.

  16. @ Winter

    I think your ideas are good too, better than my suggestions above. There are lots of good things about open source development.

    I would prefer adding functionality to an existing project to coding everything myself

    This is particularly good – the ability to write significant software at a scope smaller than a whole application, whether one is doing it for the functionality or the reputation/recognition. This does not, however, seem to have anything to do with hedging risk….

    How ’bout: the risk of building cathedrals is high; open source development almost ensures a bazaar approach, hedging against the risk of doing a huge amount of work that fails for one reason or another.

    Or… um….. if a project has people following it, “release early, release often” hedges against the risk of discovering that a large investment turned out to be foolish.

    I think most people will agree that, regardless of whatever other problems I may have, a fear of failure is not one of them.

  17. One of the fundamental benefits of using open-source software is that it avoids various problems that you get with software vendors – data-jail, rising prices, not getting desired new functionality, having the software turn into something horrid. Gnome 3 is horrid, so fuck ’em, Xfce is great.

    All the open-source projects that exist, and could exist, provide assurance that using o-s software is safe.

    Perhaps the “variance” to which esr refers is the question of Is there software that does what I need?” The reciprocal altruism of open-source developers hedges against the risk that the answer would be “no”.

    1. >the “variance” to which esr refers

      Do not assume the hedge is against only one kind of variance. I certainly don’t.

      Many years ago I learned from primatologists that “All interesting behavior is overdetermined.” It took me a long time to understand why this is true; it’s because behaviors which serve multiple adaptive purposes are efficient, therefore under selection they will outcompete and dominate behaviors which serve only one purpose.

      Accordingly, we should not be surprised when reciprocal altruism in this context as well as others turns out to be a strategy which hedges against multiple different kinds of uncertainty of outcomes. In fact, the more persistent and tenacious the instinctive ground of the behavior is, the more we should expect this kind of polymorphism.

  18. >My guess would be that the variance to hedge against as an OS developer is maintenance and debugging. These are long term costs that I find difficult to predict and plan.

    And do. You may not be able to do everything that you (and hopefully others) want done.

  19. “the ability to write significant software at a scope smaller than a whole application, whether one is doing it for the functionality or the reputation/recognition. This does not, however, seem to have anything to do with hedging risk….”

    I believe it does. This sort of thing leads naturally to incremental development, which is inherently less risky than trying to put something together all at once.

  20. All interesting behavior is overdetermined.

    I’m having a little trouble with “All”, but I get the picture; example: sex.

    Do not assume the hedge is against only one kind of variance.

    There are so many benefits of open source, and many of them can be cast as a hedge against risk(s). Some are subtle. Although a project can reject a patch, no one has to stand for being ordered to do something stupid (there are aspects, like the kernel – we don’t want to fork html and to a lesser degree, we don’t want to fork the kernel).

    More generally, a subtle benefit (which I could cast as a hedge) arises from the way the reciprocal altruism works: Developers select themselves. Work proceeds in a (hopefully) massively parallel fashion – not just lots of developers, but lots of different ideas, goals, knowledge, resources, etc. From a macro perspective, this self-selection is how resources are “allocated” to projects, and it works very well.

  21. @Brian:
    >Gnome 3 is horrid, so fuck ‘em, Xfce is great.

    MATE is also great. GNOME is dead, long live GNOME!

  22. In re “all interesting behavior is overdetermined”: I’ve been interpreting it to mean that people can invent more theories to explain a behavior than they can check for accuracy. I still think that’s true, but it also makes sense that behaviors which serve multiple purposes will be more useful than single-purpose behaviors.

    One other possibly fishy thing about Snowdrift– Patreon is a method of crowd-funding which would serve most if not all of what they’re trying to do, but they don’t mention it. There are also crowd-funding sites like Gofundme and YoucaringK/a> which aren’t time-limited.

    In re hunter-gatherer food-sharing: Do they share small game which can be hunted or trapped by one person?

    Any thoughts about open source and Dunbar’s number?

    1. >In re hunter-gatherer food-sharing: Do they share small game which can be hunted or trapped by one person?

      Interesting edge case. I don’t know the answer.

  23. An addendum to my previous comment:

    Many of the regressions in GNOME 3 (such as loss of flexibility in theming) are actually toolkit regressions between GTK2 and GTK3 (it is my considered opinion that, despite its historical continuity with GTK+, using “GTK+” to refer to GTK3 constitutes a sign error).

    These regressions cannot be dealt with by boycotting GNOME 3 and using MATE or XFCE, because not every GTK3 application is part of GNOME, and, in the case of MATE, GNOME applications aren’t always completely replaced by their MATE fork (Pluma, for example, doesn’t have access to gedit’s full plugin library). What’s really needed to deal with these cases is a compatibility layer to intercept GTK3 calls and translate them to unregressed GTK2.

  24. TomA on 2014-12-19 at 16:19:13 said:
    What persists is what works (on long time scales).
    =====================================
    In evolution, what is selected for is what works right now, not what works in the future. If what works in the now persists, then it also works on long time scales. Millions of extinct species give proof that what used to work no longer does work. When species specialize, they are able to optimize their particular solution and adaptations for maximum efficiency but eventually the dependencies fail and they decamp this mortal coil ;>)

  25. esr on 2014-12-20 at 19:49:43 said:
    behaviors which serve multiple adaptive purposes are efficient, therefore under selection they will outcompete and dominate behaviors which serve only one purpose.
    =======================================
    It helps to think in statistical terms as well. There is always somebody slipping a joker in the deck. With large populations the process you describe results in stronger selective pressure and therefore more rapid genetic change that can help overwhelm the random noise in the process where selection is not especially abundant.

    We would all be angels if altruism was especially important.

  26. Nancy Lebovitz, most of the sites you mention lack the assurace-contract mechanism that actually makes donating a feasible equilibrium. Even for GoFundme, it’s only an option among many, and the more interesting options of personal- or charity-support don’t allow for it.

  27. For OSS, I assume we will have to look at the users too, who have to make a choice between spending money on proprietary software and investing equivalent amounts of resources on OSS.

    Their risk variance is the risk of having to migrate after abandonment or (future) missing necessary features. With OSS, these risks are spread and can be insured against.

    Lock-in is a derivative where the cost of this risk is monetized by the vendor.

  28. @esr
    “>In re hunter-gatherer food-sharing: Do they share small game which can be hunted or trapped by one person?

    Interesting edge case. I don’t know the answer.”

    Maybe here it is the old proverb: The best place to storage excess food is the stomage of your neighbor.

    Which would hold for cases where you either get too much food (large game or carcass) or too little.

  29. Winter, one of my friends would feed his friends when he was low on money. He found that none of them reciprocated, but other friends who saw him being generous would help him out.

  30. >Any thoughts about open source and Dunbar’s number?

    Does Github or Sourceforge give statistics on number of developers on software projects?
    I hypothesise that influence of Dunbar’s number will result in a plateau in the cumulative frequency of projects w.r.t number of users, if that is a factor.

    1. >I hypothesise that influence of Dunbar’s number will result in a plateau in the cumulative frequency of projects w.r.t number of users, if that is a factor.

      I think that’s a shrewd guess, and one that should have occurred to me.

    1. >I’m also guessing that projects which get close to Dunbar’s number are likely to split or die.

      Barring unusually competent leadership, yes, that seems likely.

      It’s worth bearing in mind that most OSS projects, even among relatively old and well-established ones, don’t get within an order of magnitude of the Dunbar limit. While the list of historical contributors can get arbitrarily long, it is quite unusual for there to be more than 15 active contributors at the same time.

  31. I hypothesise that influence of Dunbar’s number will result in a plateau in the cumulative frequency of projects w.r.t number of users, if that is a factor.

    If this post is right, we should in fact see plateaus at the lower numbers the author talks about: 5-8 and 45-50. (Indeed this accords with my experience with tabletop and MMO gaming, as the author says.) The next plateau, at 350-500, is unlikely to be reached by open-source projects, as it requires multiple levels of management (dedicated management, specifically).

    1. >If this post is right, we should in fact see plateaus at the lower numbers the author talks about: 5-8 and 45-50.

      I agree with the referenced post; treating Dunbar’s number as an expected mean size is just silly. And I think I do observe those same plateaux in open-source projects. The projects I run tend to hang in the 5-8 range.

  32. >It’s worth bearing in mind that most OSS projects, even among relatively old and well-established ones, don’t get within an order of magnitude of the Dunbar limit.

    At what kind of percentile of size of OSS projects is Dunbar’s limit? On Github, Linux is at 4495, but I don’t know how many are active developers.

    1. >At what kind of percentile of size of OSS projects is [at] Dunbar’s limit?

      I’ve been curious about that myself for some time.

      Something related that I believe but can’t produce numbers for: if we were able to plot the active-developer size of projects k against number of projects at a given size n, I think we’d see noticeable Dunbar-effect steps composed with an underlying Poisson distribution having a pretty fast exponential fall-off.

  33. @esr
    “if we were able to plot the active-developer size of projects k against number of projects at a given size n, I think we’d see noticeable Dunbar-effect steps composed with an underlying Poisson distribution having a pretty fast exponential fall-off.”

    I guess you will get Zipf’s distribution:
    http://en.m.wikipedia.org/wiki/Zipf%27s_law

  34. @ BioBob – “In evolution, what is selected for is what works right now, not what works in the future.”

    Actually, adaptations that enhance reproduction are largely present-tense working; whereas adaptations that enhance robustness tend to be future-oriented. Ascertaining what works can be done in a number of ways. One is to look at current species’ morphology and view it as a roadmap of past adaptations. Another is to track minor morphological changes over extended time frames and analyze the chain of cause and effect in terms of genetic and environmental factors.

  35. TomA on 2014-12-21 at 14:09:22 said:

    You also need to consider the fact that mutation is generally random but selection takes advantage of a mutation that confers positive effects. Evolution is rife with existing adaptations reused and repurposed for new advantage far different than was previously selected for. A gene that allowed detoxification of DDT chemical pathways in the1960s also allowed populations to detoxify pyrethrins employed decades later simply because it was present at low levels in a population. Serendipity.

    On the other hand, the vast majority of species fit themselves into ever more specialized but highly efficient niches and eventually go extinct because of this tendency. It is extremely difficult to avoid thinking in terms of long term advantage but selection just doesn’t work that way. It’s also hard to avoid thinking in terms of a ‘directed’ influence but worms die when they get stepped on. Random is as random does. And evolution has a very large random component.

  36. To what extent is the set of maintainers in the changelog of projects a good proxy for number of developers?

    1. >To what extent is the set of maintainers in the changelog of projects a good proxy for number of developers?

      That varies a great deal. My projects attract enough one-off patches from people who we never hear from again that if you tried to estimate the number of core developers just by counting names you’d go way too high. I don’t think this is universally true, however.

      What works better as an estimator is to graph number of commits versus committer. Often you’ll see that distribution has a sharp peak and, correspondingly, a sharp distinction between core developers and everyone else.

  37. @esr
    “What works better as an estimator is to graph number of commits versus committer. ”

    These numbers are available for the Linux kernel.
    http://go.linuxfoundation.org/who-writes-linux-2012

    They give two series of 30 top committers. One for the entire git repository since 2.6.12 and one since 2.6.35.

    Plot it on a log-log scale. You roughly see two straight lines. A flat line for the top 10 contributors and a steeper line for the next 20. So there seems to be no single power law responsible.

    And here are slides for a study on FLOSS project growth:
    Comparison between SLOCs and number of files as size metrics for software evolution analysis
    http://herraiz.org/papers/english/slides_csmr2006.pdf

  38. I expect the first step to be found at one developer. There are probably many projects made by a single person. IIRC, The Moon Is a Harsh Mistress has a quote from the Prof about three people being the limit of being able to decide upon anything.

    If my posts start coming up with a website link in the near future, it will probably indicate that I have done some analysis of developer numbers and written about it. (Don’t all go on at once; the server footprint is smaller than a credit card.)

  39. As I recall, the free software movement got started as a hedge against commercial dominance of software. Isn’t that still a major driver of open source software?

  40. Actually, adaptations that enhance reproduction are largely present-tense working; whereas adaptations that enhance robustness tend to be future-oriented.

    Eh?? How could the adaptation process possibly “know” what will last? I find BioBob’s point to work equally well for robustness adaptations – they impose a filter on forms that statistically cause individuals to not last until the next reproduction. So any form you see today is the current end node of a chain of “will it last” features.

  41. The following is from the Gift economy article in Wikipedia. What I think is the most interesting part is sort of orthogonal (at best) to the matter at hand, but I an not trying to be negative about anything; I provide it for its interest value.

    An anthropological study of the Fedora community, as part of a master’s study at the University of North Texas in 2010-11, found that common reasons given by contributors were “learning for the joy of learning and collaborating with interesting and smart people”. Motivation for personal gain, such as career benefits, was more rarely reported. Many of those surveyed said things like, “Mainly I contribute just to make it work for me”, and “programmers develop software to ‘scratch an itch'”.

  42. Actually, in a certrain respect at least, the quote above isn’t orthogonal to the matter at hand. The fact is, open source works for all kinds of reasons. Interestingly, of the four reasons listed, none are hedges against risk (other than, perhaps, “to make it work for me”, which hedges against the risk of having to give money to Microsoft).

    1. >The fact is, open source works for all kinds of reasons. Interestingly, of the four reasons listed, none are hedges against risk (other than, perhaps, “to make it work for me”, which hedges against the risk of having to give money to Microsoft).

      That last is a risk hedge only in a relatively trivial and uninteresting sense.

      On the other hand, if you look at the economics literature around “revealed preferences”, you’ll find that human beings are not very good at either introspecting about their motives or reporting them accurately. The results of the Fedora study gives us a nice picture of what constitutes socially approved motives for cooperation, but doesn’t necessarily tell us much about what is actually driving behavior.

  43. @ Paul Brinkely – ” How could the adaptation process possibly “know” what will last?”

    Adaptions are not sentient beings and cannot know anything. Why you would infer that is odd.

    Evolutionary adaptations are genetically-derived physical and behavioral changes that persist because they enhance a species’ survival, reproductive success, and robustness (which is a catchall for thriving under adverse environmental conditions). The process of adaptive expression is almost always a very slow one, and frequently is only evident in hindsight. Adaptations that enhance birth survival are immediately consequential. Adaptations that enhance robustness (such as sickle cell trait) may be more long term beneficial.

  44. > The results of the Fedora study gives us a nice picture of what constitutes socially approved motives for cooperation, but doesn’t necessarily tell us much about what is actually driving behavior.

    Perhaps the egoboo factor could be measured by artificially inflating or depressing number of people who will know about the hacker’s work (or at least as far as the hacker is concerned).

  45. Or, at any rate, as a preventative of boredom. Perhaps having a wide variety of open projects that I could jump into hedges against the boredom of being locked into contributing to a single project, most likely as an employee. There are other ways to avoid that, however, such as mobility between companies, freelancing/consulting or founding a new project.

  46. @ esr

    We have come up with a variety of reasons that, in different combinations, must at least contribute to why developers participate in open source projects (with the possible exception of the one about robbing gas stations).

    I realize that most of these reasons aren’t about reciprocal altruism to hedge risk. But I haven’t had that insight; in particular, I don’t know what you mean by:

    coding is like hunting rather than gathering – a high-variance activity (sometimes you succeed, sometimes you fail spectacularly, and outcomes are uncertain)

    I have another one that might be more relevant… As per Homesteading the Noosphere, open source developers are not compensated with money, but rather with rep and cred (and, of course, better software). A developer may start an o-s project because he has a great idea. However, it may turn out that to really be useful to the o-s community, it is going to take more than the original developer has to offer (I said something like this above). As Winter suggested, debugging and on-going maintenance take a great deal of time. Many eyes makes for better software. Another aspect is that multiple developers give the project cred, particularly over the longer term – no one want to use or work on software that is going to go nowhere if the original developer loses interest.

    So, the developer is only going to gain the rep and cred if others help. These others may have incentive to help because they can get rep, cred and maybe the software they want. Even if these others aren’t aware of it, they are participating in reciprocal altruism that tends to maximize the new rep and cred.

  47. @Brian Marshall:

    other than, perhaps, “to make it work for me”, which hedges against the risk of having to give money to Microsoft

    This is way too simplistic. For many classes of programs, you can give money to Microsoft (or Adobe or…) and it still won’t work for you, not without a lot of effort.

    The thing to remember is that a lot of (probably most) really serious open source programmers work on open source during their day job. They get paid to produce results, which just happen to be in the form of working software for their employer.

    The apache project is a great canonical example. Most of the employers aren’t selling web server software — they want web pages, and the developers are an expense, not an investment. Half the time the employers don’t even know, understand, or care that their developers are sharing code.

    So you have to look at the avoided risks from the perspective of the developer, not his employer. From the developer’s perspective, there is no direct financial cost associated with giving money to Microsoft, because his employer foots the bill.

    But the developer’s closed-source risks that can be avoided by using apache are indeed, as esr has explained, overdetermined, including at least:

    – The risk of getting crappy stuff that can’t even be diagnosed, never mind fixed

    – The risk of not having the ability even to pay someone to diagnose and fix the software in a timely manner

    – The risk of having stuff that can’t be customized well, or at all

    – The risk of not being able to show a prospective employer the full extent of your resume.

    – The risk of not being able to use the same tools at the next job, without a significant amount of time spent recreating them. (Because the next company gives money to a different closed source vendor.)

    – And finally, of course, the risk of your company giving money to a web server software company that isn’t named Microsoft — if they committed to some backwater third tier vendor who is going out of business, you would actually have been much better off if they had bet on IIS, both from the perspective of supporting your current company, and from the perspective of future employability.

  48. @esr (in a comment on your prior post):

    Are there any common ways in coding to increase both risk and payoff?

    Tackle harder problems.

    Getting back to the theme of employers vs. developers, I don’t know about you guys, but I have to admit that sometimes I tackle hard problems that my employer is only half-cognizant of.

    Doing so does, in fact, increase both risk and payoff for the employer, but the employer’s increased payoff is only slightly reflected in my paycheck, and the employer’s increased risk only slightly increases my immediate risk.

    Now let’s talk long-term. Unless I choose to waste my risky behavior on something that couldn’t possibly interest a future employer, then by taking these short term risks, I am actually reducing my long-term risk, because now I have more interesting stuff on my resume.

    And of course, once I start thinking like that, I start pressuring my employer to let me release stuff that is not directly related to the core business as open source. Smart employers are actually OK with this, because they don’t want their employees to feel trapped.

  49. I agree with everything you said… I think. The bit about the risk of paying Microsoft was just a joke.

    Where you wrote: “The risk of not being able to show a prospective employer the full extent of your resume.”, are you referring to algorithms/techniques?

    I was focusing on developers that voluntarily work on open-source project with out pay. I think it’s pretty much the same for an employee that makes the decision to write open-source software and either convinces the employer to go along with it or doesn’t tell the employer. But what about an employer that specifically pays an employee to write open source software? Is the behavior of the employee driven by a hard-wired propensity to reciprocal altruism?

  50. @ esr

    Re: snowdrift.coop / apparently you like it whether you like it or not

    Interesting to read your TRUE opinions given that the owner of snowdrift.coop (aaron wolf / wolftune) is dropping your name all over the interwebs implying you’re very supportive of his platform. Mind you, he’s also dropping just about everyone else of notes name as endorsing his platform (free software hippies on pumprock.net, open source notables on hackernews, everyone on reddit, etc., etc.).

    I’m relieved there’s a linkable record of how you really feel about it.

    1. >(aaron wolf / wolftune) is dropping your name all over the interwebs implying you’re very supportive of his platform.

      Oh? Tempted am I to publicly flame him to a crisp. I don’t recall endorsing Snowdrift or even having any contact with the guy, though it is possible some email exchange has slipped my mind.

      Mind you, the only opinion I presently have is than anybody who’d try to tie a hacker community service to evangelical veganism or any other utterly irrelevant cause is a bloody idiot.

  51. @Brian Marshall:

    Where you wrote: “The risk of not being able to show a prospective employer the full extent of your resume.”, are you referring to algorithms/techniques?

    Not really. It is extremely unlikely that a prospective employer would do a dive that deep. More the credibility associated with working on stuff that others find useful. In some cases (e.g. LLVM) the employer (e.g. Apple) will hire the employee (e.g. Chris Lattner) based on the totality of contributions to a package that the employer would like to help grow and have a bit more leverage over. But even there, it’s not a single algorithm/technique that Apple was after — it’s the entire system. (Of course, to get to an entire system, you have to be able to incorporate reasonable algorithms and techniques, but whether you come up with them yourself, or are merely good at identifying best of breed available on the web, the employer probably doesn’t care.)

    I was focusing on developers that voluntarily work on open-source project with out pay. I think it’s pretty much the same for an employee that makes the decision to write open-source software and either convinces the employer to go along with it or doesn’t tell the employer.

    I disagree somewhat. If you get even minimal cooperation from others (e.g. bug reports), in one case maybe that’s just a hobby/reputation thing, and in the other case, people are helping you do your job. Yes, you are multiplying your effort in both cases, but the latter case helps you with your actual day job.

    But what about an employer that specifically pays an employee to write open source software?

    Such an employer will typically attract people who like the idea of open source. This may allow the employer to discount the wages (or, practically the same thing, to attract higher quality people for the same wages).

    Is the behavior of the employee driven by a hard-wired propensity to reciprocal altruism?

    If not, and if the employee can’t fake it really well, he’ll probably be found out soon enough — if the employer cares.

  52. @ esr

    re:snowdrift.coop (I was just saying thank you)

    >> Tempted am I to publicly flame him to a crisp.

    Please calm down and don’t give him any more attention and promotion then he’s already leeching off the community (already there are good open source projects believing the hype and lining up to take part in his scam. The best bet is just to stay quiet and wait for the hype train to stop). He’s just going to make you a villain in a ‘snowdrift vs.the old guard’ drama casting himself as a victim to get even more support (pretty obvious from the snowdrift.coop pages). As they say, any press is good press and any attention from you will get the snowdrift.coop name out there.

    He’s a sociopathic marketer who made up a project so he and his hipster friends can draw ‘administrative’ salaries donated by the community instead of getting real jobs (that’s ’bout it and why he’s rebranding open source and everything else as FLO to appeal to anyone and any cause). Not really a threat at all but annoying all the same (especially on my forums!). Just having a linkable source of your true opinion so unknowns can refute his claims of your endorsement quietly when made is enough.
    Thank you.

  53. TomA: “Open source isn’t right or wrong, it’s simply working to advance the species.”

    To me, what you said sounds just as absurd as: “It’s neither right nor wrong; it’s right.”

    You seem oblivious of the existence of an objective, tautological morality. You can ignore it, but it won’t ignore you.

    “You can avoid reality, but you cannot avoid the consequences of avoiding reality.” — Ayn Rand (who for all the wrong that she was, was much righter than all those who deride her lightly.)

  54. Jason Albrict, I’m having trouble substantiating these claims about Wolf (the snowdrift.coop guy), could you share some links/quotes? (His reddit userpage is /user/wolftune, and I have googled his recent comments on pumprock) I’m genuinely curious but also, accusing someone who’s working on solutions for funding FLOSS and free-culture of running a “scam” (even though you don’t mean the term literally) is quite crass and way over the top unless you do have _something_ to back your claims.

  55. @ Fare’ – “You seem oblivious of the existence of an objective, tautological morality.”

    You seem to think that morality exists in the absence of the species homo sapiens, on planet Earth, in a minor solar system, on the fringe of an unremarkable galaxy, adrift within the expanse of the Cosmos. That seems rather arrogant to me, given that we a such an infinitesimal fraction of the Universe.

  56. @TomA Nope, morality exists in the *presence* of Homo Sapiens, and of whatever other purposeful sentient beings there may or may not ever be. Tautologically, whatever objectively works to further one’s purposes objectively works to further one’s purposes. And whatever workable purposes lead to (ir)relevance tautologically lead to (ir)relevance.

    Good luck fighting tautologies.

  57. @ Fare’

    Morality is an invention of our species. Without us, it ceases to exist. You can assert that morality is objective if you like, that’s your prerogative. However, others are not bound to your assertion and it’s not true just because you say so.

    I have no idea why you are so fascinated by the word “tautology”, but your comments are confusing at best and arrogant at worst.

Leave a Reply to Lambert Cancel reply

Your email address will not be published. Required fields are marked *