
How I stay happy making open source software - ingve
http://www.snarky.ca/how-i-stay-happy-making-open-source-software
======
jondubois
I've been working on a realtime framework for 3 years. It got 0 attention for
the first year. Then I repackaged it and renamed it and it got some traction.
The community only started up one year ago. Before that, it was just me.

I was always very greatful for any comment my project received - Especially
negative/constructive ones.

I didn't get much feedback early on so there weren't many opportunities to
improve.

SocketCluster was never about the code. It was always about creating a useful
tool. It has gone through many refactorings and changes in technical
philosophy. Seeing steady improvement in the product and the dedication of the
community is what keeps me happy.

I was very fortunate that the project got so much traction. It did help me
with my career. I owe it to everyone who clicked that star button on Github to
keep going.

GitHub:
[https://github.com/SocketCluster/socketcluster](https://github.com/SocketCluster/socketcluster)

Website: [http://socketcluster.io/](http://socketcluster.io/)

~~~
positr0n
If you don't mind me asking, can you expand a little on how it has helped your
career? I've thought about creating some ambitious open source projects
before, but I always imagined it would be purely for fun/technical advancement
because the ROI from a purely monetary standpoint (increase my salary by being
a known expert?) would be small compared to spending the time doing "real"
work for clients.

~~~
jondubois
I've had promising start-up founders reach out to me with job offers and/or
invite me to their offices (got them on my Skype). It also opened up a lot of
possibilities when looking for jobs.

That said, I would agree with you that the ROI (at least in the medium term)
is not worthwhile. If you want cash, you are probably better off working on
your own commercial project or working for clients.

------
sytse
When people complain about GitLab I always try to give a positive response,
thanking them for their feedback and trying to address their point. People
complain because they care about you getting better. As the project matured
the expectations are higher so there are more complains. Which means I say
sorry a lot more. But as the project matures people are also no longer
expecting the CEO to care and say sorry anymore. So when I respond to a
complaint the tone of the poster frequently changes. Some of these initial
complainers have turned into fans and contributors of the project.

Your code is not you and neither is your project. As maintainer you are not
responsible for fixing all bugs (we at GitLab Inc. are, but that is another
story). If people care to complain it is OK to ask them to contributing a fix
or showing the advantages of a different approach.

------
karussell
One recommendation if something does not work as expected and people claim
that it should (be it positive or negative): as the creator, never ever say
"sorry"!

This will help you to keep the 'correct mental direction', which is that YOU
provide the additional value and the issue poster wants something from you.

Also if you are the maintainer, put a warning to people with too strong words
and throw them out of your mailing list if a second violation occurs. Also
newer 'mailing lists' (like discourse.org) help here with flagging
capabilities, edit buttons and more.

Try to ensure that the discussion stays 'emotionless' and without sarcasm or
if you allow it do so only with emoticons ;)

~~~
re_todd
Agreed. Saying "sorry" brings out the worst in some people. If you pay
attention, you'll sense a shift in the power dynamic, and some jerks out there
will become more hostile, belittling, and demanding. It's better to just focus
on what can be done to move things forward.

------
x0x0
tl;dr: negative people can suck all the joy out of software development,
particularly when doing the less enjoyable parts such as support/bug fixes for
free. The author has some suggestions, but I think they work best for larger
projects.

I've related this before, but I've had some super negative experiences with
very entitled people. One person was a professor for whom I continued to build
stats software for 18 months after leaving university. He actually repeatedly
called me screaming when I was too busy to do some custom work for him on his
timeframe. After giving him 10+ hours a week of free work for a year and a
half because I thought the software was interesting and I believed in the work
the various labs were doing.

I also work on a bit of open source software that I wrote that implements a
high performance (threaded and heavily beaten on with vtune) ml algorithm.

I think the solution, particularly for small projects or individuals, is to
preemptively cut people off. After many negative experiences, when I get bug
reports or requests, if the reporter hasn't put in a reasonable amount of work
already, I just killfile the email address and move on with my life. Even a
small fraction of negative people was ruining any interest I had in working on
my project: I'd open the tag in gmail, read a nasty or demanding email, and
lose all motivation.

If people don't preemptively respect my time, I have no use for them. If they
don't like that, they can have a full refund of everything they've paid me =P

~~~
irremediable
Jesus! What a horror story. I don't get how the professor concluded that he
was entitled to your time like that.

Agreed that it's best to cut off things like this early. Some programmers need
to learn the value of their own time -- and act accordingly. If you don't
respect your own effort, other people never will.

~~~
throwaway_ghj
People become entitled like that, basically because you let them by repeatedly
allowing them to take your time for free.

Compare with: "Sure, I'd love to do that. I can spend about 10 hours on that
this week and that will cost you $1000. Who do I address the invoice to?"

That should sort the wheat from the chaff pretty quickly.

~~~
will_pseudonym
Yup! This is also applicable for people who won't pay you back with their
time, either! What helps some people is to have plenty of stuff going on in
your life so that it's easier to say no because there actually are a ton of
compelling things you want to spend your time on...

------
yeukhon
My preference in the last ~2, 3 years is rule out language contribution.
Because I am not familiar with compiler and language design, when I make
comments I feel like people just think "this guy is stupid." This negativity
is so strong I feel depressed. Actually, Python mailing list is a really good
example how the community discussions are both fruitful and disastrous at the
same time. One question can go into so several sub topics into 200 replies and
just more tangential talks. At some point people don't reply to comments you
make (but you made that same damn comment before the other person did!), and
you feel like like a victim of "you are not one of us."

I am pretty permissive about contributing to big projects. I feel like an
outcast. So I choose to spend my time working on private projects whenever I
get a minute. I guess I am just one of the few cynical negative developers out
there.

------
datashovel
This blog post made me think:

We need something like "Code Triage" (codetriage.com) but instead of giving
people old / aging tickets to fix, this service would alert people of negative
comments.

I'm assuming it would have an ML algorithm which would flag comments if
overall sentiment of the comment was negative. So people would sign up for
github / bitbucket / etc. projects they're familiar with, and would then start
receiving emails if negative comments were being posted. They could then help
by more or less shielding the project owner from the negativity and hopefully
preventing the complainer from going on rants across the web shaming the
project or being negative in general about the project.

------
jtwebman
Github needs a ignore user list for project where the issues and pull requests
from a use just get ignored. So those mean people don't know they are being
ignored but are ignored.

~~~
has2k1
[https://en.wikipedia.org/wiki/Stealth_banning](https://en.wikipedia.org/wiki/Stealth_banning)

------
mahouse
The hard truth is that open source software is the wild west; if you don't
have a thick skin, you'll have to grow one, and if you can't grow one, they'll
just eat you alive.

Eventually you realise it's either you or them. That's when you've mastered
it.

~~~
pflanze
I'm wondering why you're getting down votes. Maybe someone who down votes
could explain?

I'm a freshman when it gets to maintaining an open source project (just
started with one, it's on my user page), and am very interested in getting
savvy on how to feel or judge things, hence I found your image welcome. I
wouldn't know whether it's wrong or right, but I find it welcome as it's
strong, i.e. sticks around, my mind will compare it to real-world situations
in the future and figure out over time whether it's correct.

I think what the image points out is that you're ultimately doing your own
decisions, for your own benefit, and not doing it for anyone else unless you
decide so. And I'd think that this is correct: I did believe that open source
is something to improve the world, and standing against closed-source
software, and hence if I saw that open source software was lacking, it felt
wrong, and led me in a couple occasions to give strong statements to open
source developers, which I guess were received exactly like the negative,
demanding inputs criticized here. So I'm guilty of this myself. So now, while
I realize that the other side (the user) wants to be appreciated, too and not
doing that will lead to project failure (both of which might be the reason
leading to the down votes here), it would be wrong to let that suck out your
energy. And the picture of the cowboy primarily needing to survive himself
seems fitting.

(PS.: I think what I'm advocating to accept here is more "either you or me are
going to survive", and not so much "either you or me are going to die". These
are not equivalent if there's a middle ground where there are other outcomes
than dying. Anyway, the OP points out even better solutions anyway, too.)

(Edit: thanks for the replies, I've appreciated them all.)

~~~
mahouse
I'm getting downvoted by people who don't like the reality, I guess; I'm just
pointing out the truth as I have experienced it myself.

About what you said, most projects, if not all, will be struck by hordes of
users asking for all kinds of things, some of them will be reasonable, some of
them will not. Never hesitate to say NO to a user, even if he's written a
patch already. Never merge things out of pity.

Another important thing: if the project grows large enough, it'll attract
collaborators that, despite their best intentions, screw up often. Obviously
you must be friendly towards them, but be sure to make it clear when they've
screwed up.

You will also find collaborators that not only screw up often, but also defend
themselves and think they are always right. Do not hesitate to make it clear
that that's not the place for such behaviour and if they don't improve kick
them out, outrightly or in a subtle way.

~~~
mwfunk
It sounds like you are trying to give honest, pragmatic advice, in which case
your downvotes are unfair. However, usually when people give that particular
advice what they're really saying is that the bad behavior from other people
is OK and that the person who feels bad because of it just needs to lighten
up.

It's sort of like when someone says, "99% of humanity is too sensitive!" The
ONLY people who say that are people who go around pissing off other people on
a regular basis and it never occurs to them that the problem might be with
their own social skills and not 99% of humanity.

So, when someone's response to someone else getting upset over jerks on the
Internet is "you should get thicker skin", it's easy to jump to the conclusion
that it's coming from a troll rather than someone honestly trying to help a
fellow adult. Based on this comment it sounds like you meant it in good faith
and were just trying to help the OP out.

