Paradox

The Bazaar model brings out the best in software – or so Eric Raymond thought. Throughout my excursions into the world of open source, I was more than willing to believe so. However, what about when some congressman rises through the ranks to “change the system” only to be devoured by it? What about people who become what they set out to defeat? I never thought I would meet such an ugly beast in the open-source world where merit is king. Unfortunately, I did.

NextCloud

I did not need to go far beyond the name of the project itself to be disturbed by it – NextCloud Server. The name has an ominous ring to it. Perhaps, it reminds me of the days when I would try to understand MSSQL Server, in vain. In addition to the constant error messages, the paltry documentation and my cheap computer made the process exponentially tricky. How difficult? It established in me a distaste for heavy software. Am I, then, coming from a place of prejudice? Yes. Do you have to squash your prejudice to work in open-source? No, not if I understand “scratching your personal itch” correctly.

Grinding Your Gears

It still deserves a chance, I told myself. How bad could it be? It turns out that it is difficult to produce a serious competitor to cloud storage platforms with the bazaar model. Somewhere, I was elated to see such an accomplishment for open source software. As I soon found, its most significant feat could be its downfall.

Next, I headed over to their repository and was instantly overwhelmed. About 48k commits and 1.8k currently active issues. Not unusual, but the numbers were staring me in the face. The lure of having your cloud data storage that is free from the stalkery grasps of behemoths like Google, or Dropbox is manifest by the number of developers and the extensive – albeit emoji-infested – README.

Hopping

I struggled to find the proper installation procedures. How is it that such extensive documentation could still be lacking? It gave “emptiness within abundance” a new meaning. I followed the instruction for installing the server with a simple snap package. Sounds easy enough, right? Not really. For the development environment, I would have to set up the web server and database first. Frustratingly, I could only install the web server on purely Linux based systems, which meant that my MacBook was out of the equation.

So I waited.

When I had access to my Ubuntu machine, I began anew. To no end, however.

How could so much writing be so useless? While the first page asked me to look at the Manual Installation section on the next page, such a section was entirely absent. So, I tried to follow the Linux Installation section and found, to my dismay, that it was just asking me to install a snap package. At this point, one could ask why I didn’t install the snap. Well, because the package is not compiling from source and does not provide me with developmental capabilities – rendering it useless. I, again, tried jumping to the section on command line installation, hoping that it would be more attuned to my situation. Failing that, I realized the entire documentation was a loop – like a snake chasing its tail. To install the server, I would have to download the code; to download the code, I would have to install the server.

Tongue-Tied

All of the above problems could have been easily prevented if the community cared more about the documentation’s functionality than focusing on the latest emoji to use. However, emojis aren’t the only choice of communication that attacked me and violated my thinking – the server was written in PHP. I do not need to comment further on this than the fact that Facebook was written in PHP. Unlike JavaScript, PHP brings physical pain to the developer as they read through the code. My code reading skills need not be slaughtered in broad daylight.

Myth and Legend

Frederick Brooks explains and illustrates in his book The Mythical Man-Month how adding people to a task only increased the number of man-hours needed to complete it. Eric Raymond, on the other hand, refuted Brooks’ notion when it comes to the open source software space. Chaos, he explained, would produce order based on a careful and diligent selection process.

In front of me laid a mammoth. Something so furry and obscure that I could not see its true colors. As the community grows, it becomes more difficult for newcomers. The learning curve steepens at every commit, discussion and there is too much to catch up. Thus, projects need dedicated AND easily accessible mentors. No, posting in a forum and waiting for an answer is not efficient in 2019. Neither is proper documentation the same as more documentation.

Demise

This particular project, then, has been extremely dissatisfactory. Although, it illustrates an important point – if an open-source project becomes inaccessible due to its learning curve and lack of communal support, it resembles proprietary software since newcomers must compete with an increasingly unfamiliar code-base. The wall surrounding the garden continues to rise higher even though it is perfectly open. If this entire lesson of setting up the dev environment has taught me one thing, it is important to keep newcomers engaged and interested.

Written before or on March 14, 2019