Around Open Source projects and especially this one which are driven by team work many myth are told. It seems, that nobody can define exactly how this work in reality. What is explained in the literature is only the technical aspect. That means, the a typical Open Source project is programmed in the C language, is using a git version control system and that the sourcecode is for free. That is all true, but the workflow contains a lot more.
I’ve found a good practical example to explain what the motivation behind open source is. The Lyx textprocessor is well known for it’s capabilities to format academic papers. The user can enter text, insert figure and can reference to an external bibtex-file. A button “generate pdf” creates the final document which was formatted internally with LaTeX. This is in short the idea behind the project. Let us focus on a single feature, which was add recently. The ability of the software to do a contentious spellchecking.
What we have at a starting point is a successful open source project, a functional bugtracker, a mailing list and a wiki. But how gets the new feature into the project. Who is the person, who programs the code, who invests his time to make a spellchecker possible? The good news is, that the workflow can be traced back, because it is all public. According to the website the on-the-fly spelling was sponsored with 1000 EUR https://www.lyx.org/Donate Another URL provides the ticket for the case https://www.lyx.org/trac/ticket/718 It was created in the year 2009. Let us explain what the chronological order was.
At first, somebody created the ticket. He writes down, that Lyx is a nice software but he misses a contentious spellchecking. Writing such a bug ticket is not a big deal. It is usually done by customers who are using the software. Such a description can be interpreted as a feature request. Now, there are two options for the Lyx team. They can either ignore the feature-request or they can obey and implement the spellchecker. They have decided to work hard and in a group to make the wish possible. They reason why they are motivated was perhaps a combination of:
– the feature made sense
– the customer paid 1000 EUR
That money was in the game, is described in the donate-section of Lyx. The sponsors are named and also the amount they spend. What would happen without donation? Would the Lyx software has today a spellchecker? I would guess no, because programming such a module takes time, and why should somebody who is able in doing so, invest his freetime? Yes, there is no good answer.
In reality, Open Source means, that somebody pays for programming works. Without a salary, the open source programmers wouldn’t create a single line of code. This aspect of the Open Source movement is not researched in detail, but at least from the beginning of the GNU movement it is known, that in the 1980s such a role model was discussed. The idea was, to pay programmers, that they create Open Source software. That means, it is a combination of a business model plus a new license model which is called GPL (General public license). This was also the way, the Lyx spellchecking feature was implemented. The added code is available as open source. Everybody can download the software and also the sourcecode. But, the code wasn’t inserted for free as some kind of hobby project, it was sponsored code, created by professionals.
From an abstract perspective, it is ok to call this workflow a “sponsored agile development”. That means, a customer creates a bugticket, pays for the feature, and the software team is answering with sourcecode which fixes the problem. The speed how fast the project is developed, depends on the amount of money the customer want’s to spend. I would guess, that the following situation is possible:
Suppose a customer is very interested in the Lyx software. He creates a long list of features he would like to see. For example, a better translation in other languages, no error message during startup, unicode support, better support for Luatex, integration with jabref and so on. As a motivational help the customer offers 1 million US$ for all the feature. What would happen? The result is, that his feature requests get the top priority and the Lyx team will work very hard to implement each feature perfectly in the software. And if they have not the right programmers for the job, they will hire more from the market. The reason why is because somebody in the Lyx team is aware of the wanted features and he is especially aware of the amount of sponsoring. This forces him to motivate their teammates.
What i want to make clear is, that the inner working of Open Source projects is surprisingly easy. We have to observe the customer of an open source project and the amount of money he spends and this allows a prediction how efficient the code will be generated. If an open source project has no customers, because it is created from scratch by a single person, nothing will happen. The owner of the project will add some lines to the github repository and that’s it. No teamwork will happen, and the project will be a dead end. In contrast, if a project has a customer, and if the customer spends money to implement the features, the project will work much better. Teamwork will be visible and the number of added codelines is high.