2021-03-15, updated: 2021-07-22

Tags: philosophy.

The thin line between users and collaborators

The thin line between users and collaborators

André A. Gomes

This article invites the reader to embark on a journey of thoughts and inquisitions. You won't get anything measurable or practical out of it. If this isn't your cup of tea, feel free to skip it.

Have you ever paused to gaze at how much human potential is being wasted on bullshit? The term isn't being used gratuitously to cause turmoil, but as a reference to a very concrete entity that one deals with. An interesting account of it was given by Harry G. Frankfurt on his book On Bullshit, from which the following passage was taken:

Someone who lies and someone who tells the truth are playing on opposite sides, so to speak, in the same game. Each responds to the facts as he understands them, although the response of the one is guided by the authority of the truth, while the response of the other defies that authority and refuses to meet its demands. The bullshitter ignores these demands altogether. He does not reject the authority of the truth, as the liar does, and oppose himself to it. He pays no attention to it at all. By virtue of this, bullshit is a greater enemy of the truth than lies are.

Think about the deeds of people you admire. Were they asked to do those things? Probably not. Or, even if they were, they probably went an extra mile. Such individuals were successful in taming the bullshit that deterred them from attaining their goals. Engaging in such pursuits often times entails being cut out from the broader outside world. If we were to use the terminology of Eric S. Raymond (also known as esr), this is the modus operandi of a "cathedral". In other words, small and specialised communities often need to operate in closed doors to focus on their goals. On the other extreme, we can think of a "bazaar", where anyone is invited to hop in and exchange ideas.

This analogy is thoroughly explored in the book The Cathedral and the Bazaar. It shows how both approaches aren't mutually-exclusive, but actually complementary when properly leveraged.

Nyxt qualifies as a good example of that. Its cathedral component would be its well-thought out architecture that ensures the longevity of the project. Please take a look at our article if you're curious.

As soon as that foundation is solid, all it takes is just some turns on the handle! In other words, the cathedral, while still operating as such, sets the apparatus so that ideas are shared in the bazaar. This will probably stop puzzling you when you give it some thought.

Let's dive deeper into Nyxt's case, and my personal experience with it. In the aforementioned book, esr lists several lessons, the first being:

Every good work of software starts by scratching a developer’s personal itch.

Nyxt's itch goes along the lines of "there should be an infinitely extensible web browser that lasts and meets the needs of the community".

With that in mind, I started using it too. But then something itched. Unbearably. So unbearably that I had to come to grips with it. And that meant a lot, since I barely knew Lisp and had never even read anything written in Common Lisp.

My itch were the cursor movements while moving word-wise. Most likely I was accustomed to the behaviour of M-b and M-f in Emacs, and couldn't rest until I saw that replicated in Nyxt. With the help (and patience) of the developers, I was able to figure it out and now there's an option for that (conservative-word-move). Judging by the Nyxt configuration files I've seen, it proved to be useful to others too!

To summarise, (free) software flourishes thanks to the contributions of all users who answer the urge of scratching their own itches! How much of your potential have you been wasting away by not paying enough attention to them?

I'll finish with another lesson from esr.

Treating your users as co-developers is your least-hassle route to rapid code improvement and effective debugging.

We're counting on you, so get onboard!