Why the open source software model is fundamentally broken
There was a very frank question pegged towards Slashdot readers a few months back, which I happened to stumble upon just by chance during some Googling. It was a pretty simple question that merely asked: for the non-coders out there, especially ones taking advantage of open source software, why aren't more of you contributing back to the open source community?
A legit, honest conundrum that is likely true for most who use such software.
Way back when, in my high school years, I used to do some light contributing for the Mozilla browser project, providing my input with light bugs I found here and there on what they still call "nightlies". I just don't have the time or energy anymore to circle back some goodwill which is unfortunate but honestly the case. So this open ended question on Slashdot intrigued me, namely to see how the rest of the crowd stands on the issue.
The responses were pretty far ranging, but most interesting were those from individuals who actually claimed to have tried giving back, like myself. For one reason or another (or many), most of these disaffected contributors all paint differing pictures that share a common theme: the open source community is anything but open, as its name implies.
The discussion as a whole was pretty eye-opening, especially due to its relatively one-sided nature.
For example, one user, thisisauniqueid, penned this response to the original poster:
"I estimate I have reported over 3000 bugs over the years across maybe 80 different open source projects. I would say that 5 percent of the bugs I have reported have ever been fixed intentionally by the developers. Some of the bugs have become obsolete or 'accidentally fixed' with subsequent code changes; some have been marked WONTFIX with a range of justifications; but the vast majority have been ignored... Some projects like Fedora close most of my bug reports after the bugs expire a couple of releases into the future. I'm not quite sure why I bother..."
Another user, ledow, had common feelings:
"The larger projects do attract an attitude of kinds. I used to contribute to a large open-source game but when all my feature-patches (actual working patches, with code, that I'd be playing the game with for months) were pushed, they were disparaged to oblivion. Why would anyone want that?"
Similarly, a user by the tag of nine-times, had this to say of open source:
"I can say that I've been in situations where I submitted a bug and had it ignored or else told that it wasn't a priority and the developer didn't care. I've offered feedback on ways that I thought the software could be improved, and was essentially told, 'If you want that done, write it yourself. I'm just here to scratch my own itch.' ... I've encountered the attitude that if you're not a programmer that can contribute code, you should butt out of the conversation."
And finally, a user going merely by the tag Anonymous Coward, sums it up like this:
"As a career technical writer, I once tried to help out a few open source projects by improving their universally bad documentation. In all cases, my contributions were belittled, and often far worse than that, eliciting scorn and disdain from the 'l33t programmers' who thought I was just wasting repo storage and bandwidth. This was something I did on my own time, to improve projects for the benefits of others, for no money. As a result, it didn't take me long to say "fuck it" and leave those open source projects to wallow in their own filth. They're little more than a cult, and if you don't conform to the leaders' idea of what a contrib should be and do, you're not welcome."
The recurring theme of the responses were pretty concrete: for those who tried their best to help open source, they were either shunned or pushed away in one way or another. And it's not like Slashdot attracts any kind of trolling anti-open source following -- quite the opposite is actually true.
Let's not chalk this off as a problem of a "few bad apples", since this isn't the first or last place to exhibit such feelings towards the open source community.
Linux systemd creator: Open source world is "sick"
The creator of the systemd Linux system management software, Lennart Poettering, had his festering feelings published as part of a piece on The Register late last year. For those who don't know, systemd is one of the leading centralized system management platforms available for inclusion within Linux distributions, and as such, is one of the most widely used alternative Linux init systems around.
The commentary by Lennart was aimed squarely at Linus Torvalds, the anointed pope of sorts for the wider Linux community, who is well known to be rage-prone when it comes his vision for Linux kernel code purity. This is the same man who publicly lambasted Kay Sievers, another systemd developer, referring to him as a "f*cking prima donna" in a rant on coding opinion.
And not to outdo himself, Linus was the same one back in 2012 who gave nVidia a widely-covered middle finger after calling them the "single worst company" that the Linux community has had to deal with. Never mind the ironic fact that nVidia is one of a number of large corporations providing the Linux community with considerable new corporate-sponsored development talent.
But the Linux community is now getting public blowback from heavyweights like Lennart, who claims that the open source world is "quite a sick place to be in" and attributes much of that problem with the culture that Linus Torvalds perpetuates.
On Linus, Lennart was pretty to the point: "A fish rots from the head down."
Lennart continued by saying "If you are a newcomer to Linux, either grow a really thick skin. Or run away, it's not a friendly place to be in... It is sad that it is that way, but it certainly is."
Poettering's comments are directly in line with what I saw over on the original Slashdot discussion thread -- feelings of disenchantment, disillusion, and elitism shared by numerous past contributors. Do Linus and his antics speak to the open source community as a whole?
Absolutely not. There is plenty of great community-driven enthusiasm in many parts of open source today, as even Lennart alludes to about his fellow systemd developers.
Linus Torvalds, the godfather of Linux as we know it, is known to be a confrontational and dividing leader of the Linux open source community. You can read one sample exchange Torvalds had with a code contributor named Mauro Chehab, which is nothing less than an idealistic, cuss-filled temper tantrum. If open source is to change for the better, that change needs start at the top. (Image Source: The Register)
But even as much as the Linux community claims itself to be the sum of all its parts, rather than just the sum of one or a few, it can't be ignored that negative leaders like Linus help contribute to an aura of exclusivity rather than inclusivity.
For as much as open source clamors to ideals against class structure, in some areas, it's falling victim to its own unintended consequences stemming from decentralized leadership.
Is this a problem of too many hands in the cookie jar? Absolutely not, as Linux and other large projects have proven thus far with vast developer bases and contributor structures. Rather, large personalities have managed to fill the void that open source innately creates, and therein lies the source of where negativity is allowed to fester.
Right at the top -- just as many others and myself firmly believe with communities like Linux today.
But the real question still remains: how do these communities reclaim focus and deflate insular personalities that rule their roosts? That's an answer that may take quite some time to unfold. One of open source's greatest traits -- slow methodical evolution -- is its own greatest enemy in this particular regard.
How Purist Idealism Breaks the Back of Open Source Progress
I've written about this aspect of the open source community before, in an article that highlighted how one German city was moving back to MS Office from OpenOffice. I attribute this realm of particular ongoing headache for the open source community back to groupthink mentality, namely in regards to its near incessant drive for code and design purity.
Even if it's at the cost of overall progression, elegance, better feature sets, or improved compatibility with other standards. In the world of OSS, from what I can tell, sticking to the high road is the preferred path even if it means never reaching your intended destination.
There's no better example of this dilemma than the saga that continues on as LibreOffice, but began as OpenOffice years ago. (NOTE: If you're interested in the full backstory to the OO/LO schism, some commentary on Reddit lays it our fairly well). It's designed to be a modern, free alternative to the heavyweight incumbent from Microsoft's camp that most know already.
Here's something most people don't widely realize: LibreOffice, if you take into account the fact that it's the birthchild of what used to be OpenOffice, which itself was born out from StarOffice, is actually an older office suite than Microsoft Office.
While debatable, many (including myself) naturally beg the question: why hasn't LibreOffice progressed further and faster than where it stands today? Why all these years later is the suite merely still trying to just catch up to Microsoft Office on the basics? LibreOffice seems to be in a perpetual self-improvement drag race on the topics of cross-suite document fidelity, formatting compatibility, and other seemingly trivial matters after this many years.
For example, LibreOffice is just getting into the browser-based office suite bandwagon, while Microsoft's Office Online has been out in some fashion since 2010, and Google Docs has been around for years longer.
While, in contrast, for as evil as Microsoft is claimed to be, they have gifted the world with genuinely creative and useful additions to the core Office suite at a record pace.
Sway is a downright eye-grabbing alternative to PowerPoint for presenting content to crowds. OneNote is becoming the de-facto multi platform solution for digital inking and note taking. Likewise, LibreOffice has no answer to compete with Outlook or Project, with little discussion to bring anything to the table. Lync (now Skype for Business) is another fabulous IM/VoIP/video product my company FireLogic uses daily which LibreOffice, and open source in general, has little answer to.
It's very well true that LibreOffice or related competitors bring some bits and pieces of Microsoft's powerhouse to the table. But in terms of a total package, LibreOffice just isn't there. It's why well publicized experiments with big scale rollouts of open source are sometimes met with unfortunate reversals of fortune -- take Munich, Germany's backtrack to Windows and Office as just one example.
Open source advocates claim that the fruits of their efforts bring greater variety and choice to consumers, but is this notion really true in reality? Would a business professional or college student, barring financial reasoning, truly choose LibreOffice over MS Office for the functional or other advantages it brings to the table?
The underlying code that makes up modern LibreOffice (formerly OpenOffice, formerly StarOffice) has been in development for even longer than Microsoft Office. So why does LibreOffice continue to look and behave like an Office 2003 clone, a decade removed? Many of open source's largest projects have issues such as the holistic obsession with code purity, along with vast decentralized oversight which catapults blind equality over measured progress.
Likewise, how many graphics professionals would choose to ditch their Adobe products in favor of GIMP or Paint.Net? The same argument can be directed at those who work with AutoCAD, music development, and video editing.
While open source has given us numerous positive examples of where it can foster results (Linux, Firefox, Thunderbird, VLC, etc), its successes are still rather muted in contrast to the admitted plethora of options that exist in any commercial software vertical.
I'm not by any means a blind believer in the notion that straight usage figures are the sole judge of a platform's success, but something must be said as to the penetration (or lack thereof) of a software title into the hands of the greater masses.
As opposed to closed-source development of software, that doesn't promote endless debates about code purity and design, the hardcore that make up the deepest trenches of open source (take Linus Torvalds) are relentlessly obsessed with obfuscated reality.
Nit-picking lines of code. Calling out developers that don't share the same vision as them. And the list goes on. Their obsession with perfection is no more than a blinding to the reality of what could truly improve more important facets like end user UI or documentation, just a few examples of areas that consistently suffer in open source projects.
To these purists, the end goal isn't nearly as important as the sheer laser focus on the journey that gets them there. Wherever there may be.
The Linux Tax: Why Linux Isn't Really Free
If you've ever been curious as to who exactly makes up this big pie of Linux developers out there, who better to answer that question than the very own Linux Foundation. And they make no attempt to hide the truth about Linux and its developer community.
According to them, less than 1/5 of the total development braintrust dedicated to building Linux are individual developers. By far, the overwhelming majority of Linux development is contributed by the likes of "paid guns" that are employed by large corporations who have one vested interest or another in the progress of the core product; in this case, Linux.
There's nothing wrong with this mentality or approach, per se. As they say, what's good for the goose, is good for the gander, and if keeping Linux moving necessitates outside corporate development time donations of sorts, then so be it.
But doesn't this taint the image and ongoing message that Linux is the greatest achievement of a global open source community?
Therein lies my issue with how the Linux community paints the project as this massive "coming together" of developers of all walks. Surely, there is a large number of indy developers that are giving back to the cause, as shown on the graph below. But big companies with even bigger interests of their own, like Google with their ChromeOS/Android efforts (Linux derivatives) and Red Hat (commercial Linux distribution), are proving to be large players in the grander Linux army.
As some of the commentary from Slashdot above alluded to, there is an unwritten belief in open source that much of what gets contributed to one project or another is the result of individualistic wants by certain parties.
The understanding is, if you wish to devote the needed time/energy to make their mark and gain inclusion of the features you're most concerned about, then so be it, the notion goes.
It goes without saying, then, that someone is footing the bill for these development efforts. Developers on corporate time are devoting slivers of their paid employment time to donate braintrust back into Linux, as proved by the Linux Foundation's own numbers.
And another truth in life is that nothing is truly free. You may not be paying for it, but the money for efforts must come from somewhere. What we call "free Linux" in the form of Ubuntu and FreeBSD and OpenSUSE is actually the summation of efforts built upon the backs of true volunteers AND just as importantly, corporate "paid guns" as the raw numbers prove.
While a thriving independent community still makes up a large portion of efforts on Linux, it's clear that the clear vast majority of contributions are coming from companies with natural vested commercial interests. All of whom benefit in their own manner from the additions they offer back to the Linux code base. The fact that so many "paid guns" make up the Linux dev community reinforces the theory of Linux effectively being supported by the "Linux tax". (Image Source: ArsTechnica)
How do we, as consumers and businesses, then, end up paying for the results of these subsidized efforts? In the form an indirect tax. Let's call it the Linux Tax. It's small, nominal, and likely spread across vast product lines that companies like Google and nVidia and Samsung have on the market, but we're paying for it -- even if it's not explicitly discussed or called out on line items within corporate P&L statements.
The Linux Tax has reared its head in other ways over the last decade, for example, with OEM systems that have been placed on the market at higher price points than similar Windows counterparts. Some have made the argument that much-hated "bloatware" (which I also despise) has notched costs down so heavily that it doesn't save OEMs money to sell Linux machines.
But other, substantive arguments have been raised as well, like the fact that Linux still has a perplexingly tough time with hardware compatibility.
In fact, WikiPedia has an entire section dedicated just to the issues with wireless driver compatibility that continues to pain Linux. Another section highlights the mess that is the Linux audio API ecosystem, being so overly convoluted that developing audio solutions for Linux is a mess some developers won't touch with a ten foot pole.
Much of this driver mess, as such, swings right back to the discussion of why OEMs just can't sell Linux system en-masse profitably. OEMs need to use different parts and configurations for Linux-loaded systems, which raises part costs in many cases and also increases behind-the-scenes configuration and support time on the OEM's side.
As a business owner myself, I can definitely see how OEMs can't justify in dedicating large, disproportional swathes of time to supporting a very minimal percentage of their consumer base.
I think this is a valid point which many Linux purists refuse to admit when questioning pricing tactics of OEMs and why Linux, ironically, ends up costing us as consumers more.
Linux is free, they say, and therefore, my system should be cheaper. As we've seen, this has time and again not been the case. And for this dynamic to change, the Linux community needs to bring down its lines in the sand, and come together to clean up the compatibility mess that plagues hardware running Linux.
Where Does Open Source Go From Here?
I'm not one to say that proprietary, commercial software development is without its flaws. Microsoft and Apple are perfect examples of companies which are constantly playing catchup in the realms of security patches, features flaws, and other botched rollouts (take Apple's cruddy iOS Maps app debacle, for example).
But success in the world of open source seems to be a rarity, if you look plainly at the raw metrics. For every breakout hit like Linux or Apache or LibreOffice, there are on average five more failures per every successful project that simply close up shop. It's one of the dark secrets of open source in general that many have absolutely no clue about.
Directions on Microsoft VP, Wes Miller, shared the above on Twitter not too long ago. It's a funny take on what makes much of open source so unappealing to the general populace: convoluted design, broken feature sets, and development that focus on the needs of the "technorati" over the average user. If open source is to stay relevant, it needs to overhaul its perception problem with the public. (Image Source: TechRepublic)
High profile open source projects have failed on the community's watch. Last year, we saw the biggest cross platform encryption project (TrueCrypt) close up shop due to its own admission that its software wasn't secure and ended up recommending a wholesale move by its users to an unlikely foe: Microsoft's BitLocker.
The stats come from a study done by Charles Schweik and Robert English, which can be picked up off Amazon in hardcover. They spent the better part of 1998 to 2005 dissecting the life and death of 174,333 open source projects being hosted on SourceForge. What did they find out?
- Only 17 percent, or one in six, open source projects are considered "successful" on average.
- 46 percent of projects are abandoned while they are just getting started.
- A full 37 percent of projects are simply left to rot, or abandoned, after their sole initial release.
- The most successful open source projects are those which have its developers engaging and using the very own software they create. This self-interest drives motivation in the projects they partake in.
- On average, projects that are externally funded have higher success rates.
- There is no correlation between open source success and the number of developers involved.
A lot of the findings by the Schweik and English study can be easily found in the largest, most visible projects in open source. Linux? LibreOffice? Their user bases tend to include large numbers of its own developers, naturally, and they also receive very nice comfortable outside funding, either via direct donations or via "paid guns" that companies employ to dedicate contributions back to.
But likewise, as proven by the study, Linux's large developer count doesn't have much bearing on how much continued success it may see. Naturally, it's plausible and possible the tide may very well turn in the other direction.
I guess it all depends on the definition of success that Linux will consider for itself. Is overall increased desktop OS penetration important, or merely treading water and keeping pace with what foothold it enjoys today? That's up to the Linux community at large to decide.
On the whole, I think open source as a community needs to clean up a few things if it is to increase success rates, community engagement, and overall strides in what sets out to achieve. Here are just a few aspects which I see as common roadblocks in open source software seeing greater adoption from outsiders.
Open source should take notes on governance and leadership from the corporate sector. Being the initial creator of an open source project should not entitle you to a lifetime of membership in the pseudo-CEO's chair. Take Linus Torvald's ongoing position at the top of key decision making in Linux development. Sure, he's contributed plenty in one of the most successful open source projects to date, and no one can take that away from him. But his continued antagonism and negativity (as clearly displayed above) is only dividing, not uniting, the Linux community at large. Supposed "neutral" spokes mouth organizations, like Linux Foundation for Linux, should drop their commitment to innocence and neutrality and promote common sense leadership change at the top.
Metrics for success are ambiguous, not clearly defined, and rarely enforced. No one knows where Linux development, for example, is headed. It's absolutely true. A response to a question about a roadmap on LinuxQuestions.org ended by one user simply saying there "is no Linux Kernel Roadmap", and even a discussion on StackExchange concluded that all major knowledge about the Linux Kernel's future was being disseminated solely on Linux mailing lists. What major commercial software effort would be allowed to simply coast on a plane of ideal goals, with no driving agreement on where its headed? That's in essence how Linux Kernel development is handled. Linux has zero chance at unseating Windows at the top if its mere goal is to coast incessantly (into obscurity).
Development on new features takes disproportionate priority over fixing known flaws. Just look at how some of the bug contributors mentioned earlier in this article were treated and you have to wonder. Yet, it makes perfect sense: without some kind of motivation, developers have little incentive to trawl the trove of older bugs plaguing projects. "Fix it yourself" is the answer from some open source developers, hitting home the notion that self-interest may play too large a role in why open source projects go in the directions they do.
Open source, on average, has an incestual focus on merely what its own hardcore, technical users want. If any open source project is to attract swathes of new users, which is the ideal end goal we presume, then why is it so common for its results to cater so heavily to the "technorati" as I call them? For as much hate as they get, Apple and Microsoft have wrapped software packages in interfaces and features that users can relate to. Linux distros are guilty of exactly the opposite, save for Ubuntu and a few other user-focused distros. This trend needs to end for open source to regain its adoption consciousness.
A focus on universal standards, common core features, and less "forking" should be a bigger priority. While despised by some, there's a reason why American politics are centered around two major parties. Larger, unified groups get more accomplished than numerous fractured, small ones. Even if they have common sense beliefs, minority parties like the Greens and Libertarians will indefinitely enjoy small, marginal stakes in the overall direction of the country. Open source efforts should think similarly. Forking has done little to increase latest-release adoption in the Android sphere, for example, and has created an Android mod scene which caters solely to the most dedicated, technical folk. It's a big reason why I dumped Android for good and moved to Windows Phone -- and haven't looked back.
With a few changes, is there any large reason why open source can't become a major force in software beyond the exceptions like Apache or Linux? Certainly not. But a big part of why open source is seemingly running in place, making marginal strides here and there, can be attributed back to some of the biggest problems it allowed to fester on its own watch.
Leaders like Torvalds that are out of touch. Endless forking of forks that unnecessarily pollute the waters with more variants than anyone cares to use. And newcomer difficulty levels, both on the end-user and contributor sides, that keep adoption rates artificially low indefinitely. All issues that, if properly addressed, could clean up the image that open source carries.
Unfortunately, I don't see the status quo changing much very soon. The community that makes up open source today is fairly entrenched, and the driving forces to inspire change from within won't come that quickly. These communities are fairly insulated, empowered by widespread groupthink among their most hardcore followers, and have no outside stakeholders they need to answer to.
I really want to see open source succeed on a much grander scale than it ever has. But much of what open source represents is a mere collection of little ships, sailing endlessly, without an end in sight or a destination to reach.
If you don't know where you're heading, how do you know you've gotten anywhere?
That's a good question -- and one that the open source community just doesn't know how to answer succinctly, yet.