Sunday, 23 May 2021

The Open Source model vs the Open Exploitation model

It's interesting to stand still by the big changes in the software we are running on our computers today versus back in the 1990s and early 2000s. When I bought my boxed copy of SuSE Linux 6.3 in 1999, that year was hailed by the computer rags which I read at the time as the 'year of the Linux desktop'. The evil closed-source Mac and Windows operating systems would be banished and replaced by an operating system produced by the honest hands of the working classes.

None of that really happened, of course, but today it's hard to imagine a world that is not built upon the plentiful availability of freely available software. Whereas in the 90s you'd be paying for the operating system and any software for it - aside from freeware & shareware applications - today you could theoretically spend money only on the hardware and nothing on the operating system and even professional tools.


An example of these tools is for example compilers. In the 90s you'd generally have to pay to get a copy of Borland, Visual Studio or any of the other major players in that space. The open source GCC compiler only became a good option for general development by the late 90s, and today GCC along with LLVM are solid options for software development that have essentially obsoleted pay-to-play compilers like Visual Studio (MSVC) and Intel's ICC.

Similarly, for office suits LibreOffice and Google Docs have made the proposition of paying for Microsoft Office or similar a quaint idea unless one needs some of the rare features offered by the latter. For 3D modelling there is Blender 3D. Basic audio editing? Audacity and others. Need to design a PCB for a new electronics device? KiCad or some of the new-and-upcoming open source options have your back.

Of course, the one question that is always true with 'free' is who ends up holding the bill in the end.


First, one preconception about closed source is that it is necessarily something commercial, NDA-ed and for-profit, with open source always community-driven and following an open collaboration strategy. This ignores the many free tools that are released by hobbyists but who do not feel comfortable sharing the source code to these. It also glosses over the realisation that open source projects can be equally as abusive as the worst commercial office setting.

There have been a few high-profile situations in the world of open source so far where essentially all of the primary (volunteer) developers packed up and left to resume the project on their own terms. XFree86 is one such example, where the fallout from an inflexible project owner resulted in the Xorg fork. Similarly with OpenOffice's developers disagreeing with Oracle's harsh management of the project and resuming the project on their terms in the form of LibreOffice.

This shows clearly how open source projects are not immune to the worst traits of human nature. From oversized egos, to poor or lacking communication and so on, open source projects are nothing magical. In the end they are still software projects, with the same management challenges as a commercial or closed source project. Just generally with the dirty laundry being put out more clearly in sight of the world to see.


Then there's the more concerning aspect of free/open software: the exploitation of 'free' labour. It has happened a number of times now that a small hobby project got absorbed into the global ecosystem that has sprouted on this fertile soil, only for the maintainer of said hobby project to get inundated with support requests. A few years ago this led to the demise of the WiringPi project [1] that had become essential to countless Raspberry Pi (Python) projects. More recently the Babel transpiler project on which countless large web frameworks and companies depend announced that it'll likely be shutting down soon unless it can obtain more funding [2].

This shows the immense pressures that project owners are put under when their project suddenly takes off in ways they had likely not imagined. Balancing what likely was 'just a hobby project' with their day to day obligations and job becomes increasingly more complicated. As the author behind WiringPi makes clear, some people who contacted him for support got rather violent and aggressive when they didn't get the help they felt they deserved.


Clearly the open source movement that began in the 90s has spawned a massive ecosystem, but one has to wonder just how sustainable it truly is. There are disconcerting signs that at least a section of it is built on what is essentially exploitative (unpaid) labour. This is not just something that concerns small project owners who get overwhelmed by sudden attention, but also within larger projects. As mentioned, it's easy for a large open source project to feature the same abusive behaviour seen elsewhere.

Ideally a project uses an open collaboration model [3], where there is no strong hierarchy and yet there's a clear progress towards to a common goal. Yet, much like the economical/social model of Communism which has similar goals, there is a significant risk that at some point a hierarchy is established, with a dictator establishing absolute rule along with a number of lackeys.

If one is lucky, said dictator is of the more benevolent type (though possibly potty-mouthed, like Linus Torvalds) and helps with herding the developer-shaped cats. If not, then as one saw with the XFree86 and OpenOffice projects it can spell the end of the project. When those who seek to contribute to a project do not feel valued or appreciated, they will likely abandon that project forever. The more often this happens, the worse off a project becomes.


In this light one also has to consider what drives someone to contribute to an open source project when they can expect no monetary compensation for this. For many it is because they use the software in question, and wish to improve it. Either by suggesting improvements or by directly contributing code, bug reports or patches. There's a significant time investment involved in these activities, which is for the individual contributor the investment they are willing or capable of contributing.

This leads to the expectation of some level of return. Much like with any other type of investment, a lack of return negatively affects the desire to invest again in that particular project. With my own open source projects this is something which I had to work on with e.g. the communication when someone files a ticket. It's easy to assume that the person who filed the ticket is doing this as a hostile act, but it's much more likely that they genuinely like the project and are doing their little bit of investing into the project to see whether it will make the project better. If so, then the project owner and the person filing the ticket will win out.


In this regard it saddens me to see project like e.g. KiCad steering in a direction that's clearly not optimal. Most recently in the run-up to the 6.0 release a new icon set for the user interface was 'decided upon', which seems to have been one of those 'upper management has decrees' level of decisions. As the new icons are hideous violations of UX rules and based on the KiCad forum communication on the topic, it's clear that this was not a decision made in consensus, but rather on a whim. This is just one example there of many small details of a similar nature.

A similar lack of consideration is present with the Audacy project, whose management recently had to backpedal heavily after previously announcing telemetry that would be enabled by default [4]. At best this showed incredibly poor judgement on the side of the project owners, at worst it shows that every major open source project can just as easily become the next BonziBuddy [5] if one isn't careful.


With all of that said, I too happen to be the author of a range of smaller and larger open source projects (BSD 3-clause licence). Some of these get more attention than others, but when looking at other projects, it does make me reflect on what my response would be if any of them suddenly got really popular. After I had attention for my NymphCast [6] project explode with over 51,000 views on the original blog post [7] last year, I felt the rush and pressure to 'do something' with that project.

Since then the attention has died down a lot, and I have since regained the appreciation for NymphCast and my other projects as 'just hobby projects'. Since I'm not making money off them, the only compensation that I seek from them is to get the satisfaction of having accomplished something for myself. That's after all the point of a hobby project.

That also then shows the counter point to open source as a hobby: open source as part of a business model, or paid projects involving open source software. In my view open source project is nothing special and adheres to the same basic rules as any other project: either it's a hobby or it's work. If one doesn't receive monetary compensation for work, it's exploitation.


Or to cue the (in)famous line that artists hear too often when asked to create something: "You'll be paid in exposure!".


Maya


[1] https://hackaday.com/2019/09/18/wiringpi-library-to-be-deprecated/
[2] https://www.theregister.com/2021/05/12/babel_money_woes/
[3] https://en.wikipedia.org/wiki/Open_collaboration
[4] https://www.theregister.com/2021/05/14/audacity_telemetry/
[5] https://en.wikipedia.org/wiki/BonziBuddy
[6] https://github.com/MayaPosch/NymphCast/
[7] https://mayaposch.blogspot.com/2020/03/nymphcast-casual-attempt-at-open.html

1 comment:

Crunchysteve said...

I recently discovered the concept of "OPEN open source" where anybody who makes a significant commit to a project gets, or is vetted for, full commit privileges. While I'm a retired non-programmer and arduino hobbyist, also with green, social anarchist left leanings, I do take an interest in the the politics of code.

It strikes me that in a mobile connected world, open source is social collectivism. There was also a recent headline I saw, can't remember where, that github is a social network where one's actions, not their words, are what speak for them. So, maybe apps, web or mobile binaries, that have a fair fee (or subscription, but I don't like subscriptions much), can be a way of rewarding programmers who have proven themselves on an accepted commit - via a share of the net income of the project.

And yeah, an anarchist who sees value in money? Weird, I know, but any complex society still needs a value exchange system beyond barter, maybe not money, but in the 21st century, we are possibly coming as close as ever for potential for "from each's ability, to each, their needs" overtaking the greedy lording it over the needy, especially in well constituted open source project collectives.