Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

As the maintainer of a reasonably popular library, I actually get irritated by a lot of 'thanks', because they are in the form of this sentence:

'Hi, can you implement <Feature that takes a month of work>? Thanks!'

Usually from people who have never contributed anything.

Honestly, being thanked in any shape or form does nothing for me, Id rather have users be more considerate of our time and not abuse issues and the community for supporting their laziness.



Ways I deal with this as an open source maintainer of various projects:

1. Severely restrict the scope of the project (i.e. do one thing and do it well) 2. Don't feel guilty about saying "no" 3. Realize that people have no malicious intent or are lazy when they request <feature X that takes two months>. It's just like a normal customer in a business: they often have no idea of the cost and difficulties in implementing things. That's okay, it's my duty to inform them of that. 4. Refuse pull requests for features that I don't feel like maintaining. I always try to keep people from wasting their time and ask them to confer before implementing a feature.

I don't feel animosity towards people who (even rudely) request such things. But they can expect a short reply in the form of "I'm sorry, that feature is outside the scope of the project / is going to take too much of my time."


It would be nice if github made it easy for people to assign a $ bounty to every issue and when it's marked complete payouts are automatic. There are a bunch of issues in various open source projects where I would easily drop $100 on a bounty.


I believe this is what bountysource.com is for. I haven't tried it, though, and I'm not sure how completion is evaluated.

Seems problematic to let the bounty-poster decide if something is completed, but also to put it on a third party to put in the time to verify for various pieces of software they might not be familiar with (and worse to put it on the second party who implements).


Three days ago:

BountySource suspended from GitHub | https://news.ycombinator.com/item?id=15747328

Useful discussion on the concept there; they were temporarily suspended for not supporting opt-out.

Whisper Systems supports auto-Bitcoin for suspended pull requests. https://signal.org/blog/bithub/


This is potentially a great idea. It doesn't necessarily have to be a github feature. It could be a third party platform, kind of a Patreon or Kickstarter for open source bugs.

But I think the platform would need to be scalable in some way. Maybe no one will fix it for your $100, but maybe if the bounty were crowd funded, it would get fixed when the bounty got high enough to be worthwhile for the amount of time and effort involved.

When I was an active participant on Cyburbia, the site owner was paying for hosting out of pocket and he was resistant to commercializing it and was equally resistant to taking donations. He talked about commercialization as "becoming a sellout" and taking donations as "I don't want to do a PBS style begathon annually." He worked for the government and seemed just unable to wrap his head around good monetization.

People would complain that the site was slow and kludgey. As it got more popular, the level of hosting service he could afford was not really meeting demand. He would crab at complainers that they needed to be more appreciative of the free service that he was paying for out of pocket and make it clear he could not afford more.

I felt there was an obvious solution: Post a page saying it takes $x to cover better hosting for a year. I can't afford that out of pocket. If you want to see site performance improve, kick in a few bucks. When it hits $y, I will upgrade the hosting service. Then point people to that page when they complained.

I see a lot of potential for your idea. It could be a means to turn complaints into a money stream to help improve open source without victimizing contributors.

As someone who did a lot of volunteer work over the years, I came to resent the idea that I should do everything for free. If we value this stuff, we should be willing to pay people to work on it. Finding a means to do so even though it is voluntary can be challenging, but shouldn't be show stopping. We just have to be creative.


I'd be worried that this might create an expectation to work on issues people were willing to pay for, whether that makes sense or not. I've seen a lot of this in commercial software, if a paying client want a feature then it get's added no matter how much sense it makes. Then every other customer has to deal with the feature bloat whether they want it or not.

It's also the root cause of a lot of technical debt, "we added this misfeature years ago because 1 client wanted it, so now we have to support it". It's important there is a proper funnel for what features should be added.


I run a support forum for an open source project.

The maintainer does something similar and it can annoy some people to get no for an answer but it keeps things sane. The software has been going well for 8+ years now (with one change of maintainer in that time).

We also implemented a Feature Request forum and people generally use it. Plus 'Issues' are turned off on GitHub. So things generally funnel very well through the forum/mailing list and you know that a post in the Feature Request forum will request a feature, so you can mentally prepare for it.


> So things generally funnel very well through the forum/mailing list and you know that a post in the Feature Request forum will request a feature, so you can mentally prepare for it.

That helps address the under appreciated mental cost for dealing with an open ended inbox.

If you don't know whether the new message is related to 1.) expression of gratitude, 2.) complaining, 3.) feature request, etc., you have an added amount of anxiety when opening the message to figure out which kind it is.


> That helps address the under appreciated mental cost for dealing with an open ended inbox.

> you have an added amount of anxiety when opening the message to figure out which kind it is.

I'm pretty sure thats a symptom.


I agree. Sometimes, I explain that the feature request can be implemented, but not for free. I flag such issues with the "needs sponsoring" tag.


I very much agree with your first point, largely because, would you fancy that, that's the original *nix philosophy.


I'm curious; What are your open source projects? (And thanks for your comments, very interesting and resourceful.)


Send them quotes back:

"I'm glad you liked it, I have X hours to dedicate to project Y this month. If you'd like, I'm willing to work on that feature for you under terms Z".

People _pay_.

You'd be surprised just how much of Chromium and other open ssource projects is written by consulting companies paid by third parties to solve a use case.


> People _pay_.

From our experience (http://sheetjs.com/, our major open source library is https://github.com/SheetJS/js-xlsx), even with multinational corporations, they move heaven and earth to find another free solution, or spend in-house time to hack together a solution and try to sucker you into helping them, but paying is by and large the last option.


From my experience in the medium business world (maybe 500 people total?), paying is the only option. Open source is evil. Maintaining things is evil. Writing your own code is evil. Just shell out $x,000 for support.

If I could find a way to say "Yeah, we can get 'support' for this open source library for $xxx per month" my life would be much easier.


The Django Rest Framework library has taken this very approach [1] offering both corporate and individual monthly subscriptions which is then used to fund development. It appears to be quite successful in that it's allowed the lead developer to work on the project full time (at a salary of £50k [2]).

[1] https://fund.django-rest-framework.org/topics/funding/

[2] http://www.encode.io/reports/february-2017


This. A lot.

I work at a company with less than 500 people and for IT open source is evil.

I've seen people been told by IT to find another software that does the same thing but paid, and we have a law that mandates us to prefer FLOSS when possible...


You can in many cases.


Not surprising: every development team has some leeway in manpower allocation that can be used for an in-house cludge, but few have much autonomy in financial spending.


As someone working for a huge multinational, the reason for this is that purchasing 'non-standard' software or services is an absolute nightmare. It can take months of back and forth, to and from, getting passed from pillar to post.. eventually you just give up!


I run a small seven figure revenue business and I have paid more than one open source maintainer/contributor for work done. Definitely don't be afraid to ask; but I usually offer upfront. I'm an ex-developer so I usually offer the help I can with the keyboard, but know that it's limited compared to most of the really good developers out there maintaining a real project, so I offer time + money.

The problem is getting single open source maintainers to commit - and followthrough - with support. They are often way too busy with their job to actually be professional with support and adhere to even a loose SLA.


I usually put up a milestone date and direct them to that date, quite a few times have to push that date to work on stuff that pays my bills.

The best ones who pay are those who directly reach out with a paid offer; which shows that they definitely have explored the market (most likely than not) and you are the best option :). The better than the best and great to work with clients are those who just reach out to you directly, only very rarely would happen!!!


Interesting. What are some examples of things consulting companies have added?


Some different perspective. Example Debian with plenty of poorly maintained packets which broke original behavior (say linked against another library which is not recommended by upstream) or disable some features or outdated (not in sense of stable/unstable). Sending DD messages 'please fix, thanks' looks like is very reasonable (although some of them do not think so). Either your maintainer or not - even say one can do it 'better', one can't preempt or overload - it's not just fork the whole distro at github.


Reporting the bug is reasonable. Bugging (no pun intended) them is not.

even say one can do it 'better'

Then offer to take up the maintainer role. Debian has institutions to deal with unresponsive maintainers.


Clearly this is evidence that those institutions are in need of improvement, no? Perhaps too few people know about them, for starters.


Or go with a distribution that makes it trivial to make drive-by contributions, like NixOS for example. Updating a package is a simple as bumping two lines and sending a pull request here: https://github.com/NixOS/nixpkgs

For reference, I’m the (co)maintainer of over 80 packages in Nixpkgs. IIRC, I submitted my first PR within roughly a month of using NixOS. Before NixOS, I had used Ubuntu for 4 years. How many packages did I maintain there? Zero. It’s just too difficult to track down the right project, figure out the arcane build/packaging setup, contact the maintainers, etc.


> chromium

just like several dev over the years implemented privacy conscious options to restric the referer(sic) header just to have google employees silently remove them later on?

well, I guess it can work if the feature you are paying for is not to improve privacy at the expense of google's Ad business.


Do you have a link? I'd figure Google would want to restrict the Referer link, as they were accused in the move to HTTPS (which did break it for a lot of sites linked from Search).


you will have to search. its hidden in unrelated commits. but features that were removed at different points in time are: no referrer/only first party referrer in settings. no referrer in their about:config equivalent at the time (its a moving target). command line option to disable referrer.

all added and vanished at random points in time.


And what is the issue with just telling them that it could take a lot of work, so probably not? Why does it bother you if someone says thanks? It does not put you in any obligation to do anything...

I do not understand your point of view. Should we stop saying thanks in our daily life? Because it does not really do anything for anyone....

To me the following two messages give off two totally different vibes:

'Hi, can you implement <Feature that takes a month of work>? Thanks!'

'Can you implement <Feature that takes a month of work>?'


I do tell them i) whether it is on the roadmap ii) what would need to be done.

The reason it bothers me because it sounds like an order to someone who is delivering a service for you, e.g. 'Can I have another drink? Thanks!'? That's not a 'thanks'.


I do think that kind of non-thanks is very different from what the article is talking about though. One is asking you to do something, and the other isn't. The only thing they have in common is the literal word "Thanks".


That's a good point. You got me convinced. There are better ways to deliver such a message!


> 'Hi, can you implement <Feature that takes a month of work>? Thanks!'

and

> 'Can you implement <Feature that takes a month of work>?'

Are very differently loaded questions! The first one very much indicates no concern about the implementers time, and is very often seen coming from people that have no idea the complexity of the work involved with the "Thansk!" indicating the implementer would automatically accept it regardless of their own priority, while the second one is way more innocent and open for a reply back with "not sure if I have time for that atm".

EDIT: In short, it's a matter of etiquette, the same way nobody wants to deal with a complete fucking asshole (sorry, personal scars here...).


Agreed, the "thanks" feels a bit like the user have "paid" for the feature simply by giving an upfront thanks. The thanks is for the new feature, not for the _existing_ features.

Something like:

> I really like NAME-OF-PROGRAM. Thanks for making it! > > One thing that would make it even better for me would be FEATURE-X. What do you think?

would be much better.

Putting some effort into the request/suggestion also helps. Eg. giving a well written rationale/use case. Saying why existing-feature-Y isn't enough, etc.


I don't know. When I get bugreports, I usually prefer people who cut to the chase instead of wasting my time with salutations.


Only on hacker news can "Thanks!" be interpreted negatively... jesus...


In the first one the thanks seem insincere because it's asking for something.


Done incorrectly, this can sound passive aggressive, but I suggest adding a short notice in your README:

- Feature requests should follow ((list your rules)). All requests that don't follow the rules will be ((closed|ignored))

- ((The maintainers of this project)) will only add new features ((at their leisure)). If you cannot contribute a pull request for ((feature X)), make a feature request ((following the rules on item 1)) and wait. Please do not be impatient.

- If you can implement ((feature X)), please do so and open a pull request.

My personal experience is that dealing with third-party code, merge conflicts and waiting for responses can be even more draining than writing code, so there's that.


Reorder to make the second bullet the first: people are prone to feeling entitled to their feature after jumping through all those hoops, don't give them the chance to stop reading at that point.


I do this at work in my social media channels and such. I clearly state the rules of engagement and delete 99.999% of communication that doesn't fit the list.

(Sometimes I'll answer communication from those who don't get it right, almost always they are high-profiled individuals you occasionally have to break a rule for. [I also usually regret it. Maybe I'll learn someday.])


Can you provide a link to an example of doing this or something similar?


If you mean something like contribution guidelines, then they're everywhere. Here's one of mine as an example: https://github.com/benhowell/react-grid-gallery/blob/master/...


Yeah this is painful. Why do some users feel so entitled? The hard part is not to feel bullied into doing work for free and not to react in a snarky way.

The best remedy I find is to know exactly where I stand. Is it something I am interested to work on? maybe, if enough users show interest. Or maybe not. And then communicate clearly to set the expectations.

Want this feature? Sure, either do it yourself or hire somebody from freelancer.com or something. Or at least help me refine the requirements from your vague "this is not working exactly like I want". But yeah, even that is taking energy away.

Related to that, I wish github had an auto-close issue feature that would be triggered if the user hadn't replied for a month.

EDIT: but I also get a lot of really good and respectful feedback. I don't want to push these people away because of my previous snarky comments.


I wonder if it's due to how open source software is sometimes marketed to users? If you have a professional-looking website saying it's easy to use and better than the rest, and people try it out and it's not completely wonderful, they're going to complain, because it didn't meet expectations.

Perhaps deliberately modest marketing would work better at attracting the right kind of users?


This is an important distinction to make.

If those users are mad because you won't do free work for them they are entitled jerks.

If those users are mad because your marketing made promises it doesn't keep and they wasted their time learning/installing/integrating your project based on lies, you are the jerk.

Some open source projects are aware of the number of users but focus on getting contributors, so that they can make the product better. They are sharing the workload of solving a common problem so others can stand on their shoulders.

Some focus on user numbers, because then they can be famous, or they have a connected business that will make more money.

These are groups that will work very differently and respond to users differently. They have simply chosen similar software licenses.


I’m sure I know the sort you’re talking about, but there’s another quarter being heard from here too.

There isn’t space for an infinite number of libraries in a niche. So if you show up you are occupying space that someone else can’t. Sort of like if your friends throw a party and you decide to throw one on the same day. Kind of a dick move if you don’t have a really really good reason (like it’s your birthday).

Additionally is nearly impossible to sell a library now. It wasn’t always that way, but that’s the world we live in now, in large part because of FOSS. Writing it in-house or using FOSS are pretty much my only two options. So FOSS has to be some significant fraction of the quality of a commercial alternative because we can’t have those anymore. Without any attempt at sufficiency, FOSS effectively makes the world a worse place.


> Why do some users feel so entitled?

As a user, I have no longer a way of knowing whether an "open source" project's main developers are doing stuff in their free time or on company time. So, I don't see anything wrong with asking for features. Asking for features is how software evelves, whether closed source or open source. If you have a problem with it, put a disclaimer "unmaintained" in the README.md (because not wanting to tirage requests amounts to not maintaining the software).


I think the GP meant that some users feel so entitled that they are not even trying to ask nicely. The attitude.

He didn't discard the notion of non-paying users asking for features at all.

Edit: typo


I largely agree here. I usually get annoyed when people start demanding things though. There are a surprising amount of people that do this. That is where burn out comes from .


Mine usually go something along the lines of:

"Hi, I use your app and it's wonderful."

So far so good.

It's immediately followed by

"But it would be perfect if it had <niche feature only needed by that person's individual use case> "


You'd be surprised how many others had the same use case.

This kind of feedback is wealth.

Even if the use case seems very individual, maybe a useful generalization of it can be found which still covers that case but is of broader use.


> Honestly, being thanked in any shape or form does nothing for me

I'm 99% sure you meant this purely in the context of your earlier statemetn ("hey, implement this, plz"), but I just wanted to say a plain ol' thanks for me helps a lot in my motivation for doing my OSS projects. Knowing people actually use my shit, and enjoy it is nice :)


> Honestly, being thanked in any shape or form does nothing for me

So a genuine "hi there, thanks for all your work, I've been using your lib for months and its awesome" is an annoyance to you? You must be fun at parties.


yeesh, that wasn't what he was saying at all


No it was exactly what he said. First he complained about those feature requests with a meaningless "thanks in advance" attached (OK fine with me so far) but then with the phrase I quoted he made it clear that he doesn't like to be thanked in any shape or form.


Well that is actually true.

A 'thanks' does not do anything for me. I don't write a library for other people's appreciation, I write it because I want to, because I can, and because I have my own interests for it.

Insofar I am interacting with other people on the project, the only thing that does anything for me is if they contribute something.

Appreciation is not worth anything to me but I am also deeply introvert and not very social, I simply do not care. I can appreciate most people feel different (by observation) but I build technology because I want it to exist and do things, not to be thanked.


It's like you didn't even care what parent said, just picked a part out of context, built a straw man, and commented on it.


Not the person you replied to, but you’re making a specious argument. This is (a partial quote of) what was said at the start of the thread:

> Honestly, being thanked in any shape or form does nothing for me, Id rather have users be more considerate of our time and not abuse issues and the community for supporting their laziness.

You’re warping the argument by calling the response a straw man. I agreed with GP on feeling annoyed by thanks that are actually feature requests, but they went on to say that all thanks was unwelcome. Nothing was taken out of context.


No, the parent comment said any form which includes the type of thanks where someone is sincerely grateful. It’s not out of context, the person doesn’t like people to display their appreciation for his work.


It's not out of context. He first gave a specific example of what kind of "thanks" he doesn't like, but then with the part I quoted he made clear that he not only doesn't like those hypocritical thank yous attached to feature requests, but that he doesn't want/care to be thanked "in any shape or form". That's a crystal clear statement that was not taken out of context.


Thanks not what the post is about. It’s about “thanks” without an ask. As someone involved with a big open source project, Deeplearning4j.org, I can say that spontaneous thanks mean a lot, even years after you built something.


This isn't a thank you though, this is a polite way to ask you to do some work. A thank you is a thank you, and nothing else, it doesn't come with demands.


Why not just have a canned response ready that you're happy to review pull requests and integrate them if they make sense. I've never in my life asked an open source maintainer to implement a feature for them. I just send them a patch (pull request nowadays). If they like it they merge it, and if they don't they don't and I keep my own branch.


> 'Hi, can you implement <Feature that takes a month of work>? Thanks!'

Answer with an estimate based on your hourly rate.


Honestly, this exudes arrogance, even if the intention is completely free of ill will. It's better to say a clear NO ("I will not add this feature" or "I cannot implement this at this time"), and let them figure if they want to pay/use something else on their own, than to talk down to users.


Asking users to pay you isn't talking down to them. It's what sensible businesses do. If I walk into McDonald's and say "Hey give me a cheeseburger" it's not rude for them to ask for the $0.99 in exchange.


I'm not against offering to work on the problem in exchange for money. I'm against outright responding to a feature request with an estimate.

If you don't want to work on the feature (i.e. you're uninterested), it's better to be honest about it.

If you do want to work on it, but your time would be better spent on anything else, and you're willing to work on it for money, first ask if the requester is interested in paying for it and then give your estimate.

The difference between a feature request and a client approaching a freelancer/company is that in the latter case, the other party initiates the conversation with a clear expectation of paying — they only have to decide if they like the terms and price.


> If you don't want to work on the feature (i.e. you're uninterested), it's better to be honest about it.

Being uninterested to do it for free: Yes. But when I am interested to do it for money, giving an upfront estimate based on the hourly rate is the most honest way imaginable to me.


> Honestly, this exudes arrogance, even if the intention is completely free of ill will.

I would rather say that asking to "implement <Feature that takes a month of work>" for free exudes several more magnitudes of arrogance.


I get what you're saying, but even without the requested feature, the existing code also took time, mental effort and opportunity costs to come into existence — the user sees it and naturally imagines, "there's more where this came from".

Not all users are at the same level of experience as you (a maintainer); this doesn't make them lesser people or even lesser developers (sometimes they're just good in a different problem space than yours), but it makes their expectations a lot less realistic. Don't offload your annoyance on the requester — sometimes they don't know that their request is significantly harder than they think.


> Don't offload your annoyance on the requester — sometimes they don't know that their request is significantly harder than they think.

I give/gave an estimate based on my hourly rate so that this misconception is cleared of as directly as possible. If you want it for free, you better convince me that it is worth the opportunity cost for me to implement it.


Stating your price for a given feature is not "offloading your annoyance" and I didn't see anybody implying that people asking for feaures are "lesser people" or "lesser developers".

You seem to be setting up a few strawmen here.


> I didn't see anybody implying that people asking for feaures are "lesser people" or "lesser developers".

I admit that I may be reading too much into the dynamic at play here.

To be precise, naturalgradient did not say anything about the intrinsic value of users, but his/her comment says "people who have never contributed anything" and "supporting their laziness", both valid sentiments. The complaint is that the user is inconsiderate; I'm positing that it's better long-term to teach those users to be better users and eventually good maintainers. It's wishy-washy, but the good attitude of maintainers and other users is what taught me how to behave in open source.

If your policy is to charge for features, please disclaim it in your README. It's not a wrong practice, but you should set up the correct expectations.

-

Because this is HN: For anyone looking for brass, this problem is muck and there's a product opportunity here.


It's going to depend on how the response is worded.

I wouldn't want to assume that someone asking for a feature is willing to pay for it. I also wouldn't want to make an offer unless I'm serious about doing it if they say yes.

But, if you are doing contract work, letting people know it's an option seems like a good thing?


Agreed on all points.

Perhaps I'm advocating for a frivolous courtesy versus a fully rational process. Maybe the rational process works better than my suggested approach, but my intuition says no, and would prefer that it be done in a way that communicates "I can help you, but money is a requirement", not "I really wish you would fuck off, but here's an alternative".


Better make sure you make it clear it's an estimate, otherwise you might end up with an obligation you don't want.


I usually ask "how do I best do xyz with this library?" If I cannot find a good answer elsewhere online. Usually the developers answer and I am able to use their commentary to solve my problem. I know for one thing my answer will be public after I ask so at least it will become part of the selfdocumentation that arises from both stack overflow and issue systems.

Worse case they have to add something and put my request in some sort of backlog. I always say thanks when I ask someone for help though. But I never flat out ask for new features because for all I know they already have a defined way of solving the problem I have.


I feel conflicted here. I try to give people the benefit of the doubt by educating them a bit and explaining up front what funds the project as well as what the scope is.

As a maintainer, seeing it every does tend to annoy me a bit. I always try to remind myself people dont usually mean ill though. All bets are off if people continue to disregard the framework for engagement though.

Most people are a bit surprised I do this but are generally receptive after the initial explanation.

My main philosophy in these interactions is just to treat people professionally while being stern on things out of scope.


You should use an issue tracker, and ask them to submit a new entry.


I do receive time to time thanks without an ask! They do feel good.


I'm agreed. That's not the thanks we need. That just an excuse to ask people for help just like lots of stackoverflow questions. However, not everyone is maintaining a popular library. So I think some kind word may help them to make their library popular.


> thanked in any shape or form does nothing for me

$$$? Beer?


Do you wish for people to not at all tell you what features they would find attractive, or should they do so in some other way?


Agreed that responses like that are frustrating. Usually when they start getting to me I find it's time to take an evening off.


>>> 'Hi, can you implement <Feature that takes a month of work>? Thanks!' >>> Usually from people who have never contributed anything.

This is a very toxic attitude, honestly.

How dare users request features they can't implement themselves... only experienced developers with domain knowledge should request features!




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: