Over on Twitter, that endless source of distraction, Matt Asay asked: “Do developers care about open source?” Apparently, he is asking in response to an interview he had with a vendor who claimed that developers don’t care whether their service is available as open source (it is not). According to the vendor, developers just want to use a reliable service (and pay).
There is already some discussion on Twitter, so I want to answer this question from a researcher’s perspective, which also involves some direct answers, but mostly sets context. Here is the full question that I’m hearing:
Do software developers care that the code they are building on is available to them as open source software?
A sampling model for developers
We know what open source (software) is, but developer and (software) code are undefined terms here. A bit of informal thinking will immediately tell you that there are lots of different developers and lots of different forms of software. You could go to people (developers) or code repositories (software). Lets start with developers. As a researcher now, to build a first theory in response to the question, you have to create a (sampling) model of what constitutes a developer and gather materials for analysis there.
The sampling models could get big, so you have to choose where to go. For example, one aspect of a developer is likely to be whether they believe “all software shall be free”. My suspicion is that Matt was asking not about open source enthusiasts but about pragmatic developers for who open source is just one aspect of many when they make a decision.
A model of costs and benefits
Another aspect may be seniority. I suspect, for example, that junior developers will choose something that looks fancy and glitzy and that they can jak about with their friends, while more senior developers will weigh costs and benefits of using some piece of software. In a reasonable company that rational way of making decisions should prevail.
Had I answered Matt’s question directly, I would have gone over the costs and benefits of different choices, for example, how important ability to change the code was or how worried I was about the vendor behind the code.
A model of code components
From first developer interviews, it should become apparent that not all software is born equal. There are significant differences between a code snippet from StackOverflow (oh no!!), some code component from the Eclipse Foundation (oh yeah!!), and a stand-alone service like a cloud database that you use. These distinctions should come out as a result of interviewing developers and the way senior devs weigh costs and benefits.
At the end of this research there should be a theory where, for a given situation (what type of software for what context) you should have a list of potential costs and benefits. As you apply this research to answer your specific question, you would work through that list, make your individual assessments, and tally them. In theory. As in practice. 😉