LOL, I burst out laughing while reading your comment about the "Linux support forums
I have been in Linux
community since 1994ish and I totally understand what you mean.
All the points and questions you are raising are valid I think. I have developed software
for a very long time mostly for fun (and for fun projects, almost always open source). I have led engineering teams for developing commercial software
packages and solutions. Now in my startup, we are developing solutions obviously for commercial
reasons. I am the primary product designer
but also a coder in the project
(welcome to the startup world ;-) ). I won't claim to have all the answers but I will throw in my 2 cents based on my experience that is now more than two decades.
You are absolutely right about the ego issue. I don't think it is any secret that this whole industry is full of egos (starting with Linus himself, in the case of Linux
example). I do agree it can be irritating at times. On the other hand, people do need a motivation to do stuff. In the case of open software, I tend to think that part of that motivation could be to fulfill their ego, which is somewhat understandable (Disclaimer, I am no psychologist ;-) ).
Regarding point of ecosystems, let's take the Signal K example. I am not part of the Signal K group. I recently became a liveaboard
on my boat
and that got me close to my beloved boat and marine electronics
. And I tend to relax from work by tinkering (I know it is an oxymoron). To do stuff, I needed to pick a protocol. NMEA
was there, I had the pain of dealing with it in the past with its limitations. I am not talking about technical side of the things necessarily, but NMEA
2k is closed and my boat doesn't have it on top. You need to pay the get the spec then you can't disclose details. I can understand it for commercial projects but not suitable for what I am trying to do. Then there was Signal K, code was there, spec was there, it was licensed under a model with which I could do whatever I want to do with. I didn't need anyone's permission. I started playing with it, put out an app then another, also starting asking questions on the Signal K forum. Teppo and Rob responded, and Teppo responded to further follow-ups and he has been responding on this forum as well. It is working for me so far. I am not talking about the limitations of the protocol, but the good part is, if I come across limitations, I have the option to extend it in the way I want.
I do agree that in general open source communities need to do better for getting end users involved without looking arrogant. I believe long term viability of the project is correlated to user involvement. This is not easy.
On the flip side of things, there is something that is irritating for open source developers as well. Sometimes they are seen as free development resources, and I have observed it over and over to be frustrating for them and I would say rightly so. Open source development is not the same as free development for others. This is I think, where they differ from commercial projects. In commercial projects users' role is to give feedback and ask and the developer is incentivized to do it. In open source projects this balance is much more delicate. When you see a user having an attitude of 'I need this this and that and without it this is useless, now you should go back and do this because [....]', this is usually a showstopper from the developer's perspective. It is obviously not this clear cut, I am making it so to make my point.
All in all, complex dynamics!
Originally Posted by barnakiel
Thank you again!
I build small custom things for our own boat or for the friends and only for fun. I do not write my code but rather pick up pieces from varied sources and combine them to get what works.
I am still trying to wrap my head
round the Signal K thing. This is also where I differ from your opinion on rapid development. My take is that for projects like K support to the external world is nil to minimal - people in the circles have resolved to speak their own hermetic lingo and this practically cuts away input and output towards third parties. Ergo: such developers write beautiful pieces of code. But they end up very far from where their market is.
This reminds me very much "support" for Linuks users. 'Your question has been already answered', 'Your question is ill formed', 'Fire up the terminal and try ...'. ;-)
This does not push things forward. This creates an artificial ego barrier between the feedback guy / user and the coder.
One cannot rapidly develop useful hardware
and software without rapid feedback from the end users. And such feedback is not possible without speaking a human language. How silly Signal K people talk about 'human readable' data flow meanwhile remaining themselves hardly human readable.
Having participated in big building teams that developed software for the banking industry I look at the open source world and I wonder. Why the adjective 'open'? It does not feel any more open than the things we built with proprietary software, for proprietary platforms. It is an oxymoron, like free beer
and healthy fast food
There must be an easier and better way to build open source hardware
and software. Maybe it is yet to come.
Apologies for the rant.
Thanks again, I stay tuned.