8

I've recently left a company for whom I developed an open source project for over two years. The project is now gaining traction with its intended community, so in many ways my hard work is paying off.

Of course, with more users means more bug reports, feature requests, and contributions. Because the project has been put on the back burner by the company, most of these issues go unanswered for months. It pains me to see this and I would like to keep contributing to something in which I still see merit.

My question is: Should I keep contributing to an open source project which belongs to a company I no longer work for, and if so how?

Naturally, I am no longer an admin on the project so I can't merge/close PRs. I'm reluctant to answer issues directly as it might give the impression that I'm still part of the organization. I've considered forking it under my username and continuing development, but fear it would seem in bad faith (like I'm trying to "steal" their users).

EDIT: All the repos are Apache 2.0 as of this moment. The project consists of a desktop application which contains the name of the company and two libraries which are branding agnostic. The company does not de facto accept pull request from third parties.

EDIT 2: I'm still very close with most of the people at the company and left on very good terms. Current maintainers still ask me technical questions about the project, which has lead to some tongue-in-cheek remarks from my former bosses about me "working for free". They aren't open to paying me part time to maintain the repo. The reason I feel compelled to keep working on this is because of the domain knowledge I've accumulated; it's likely no one else knows as much as I do.

  • 5
    It will be very hard to answer this question accurately without knowing the license that the "open source" project has been released under, how it's branded/managed, etc. Open source is a great concept but it's interpreted differently on different projects. – dwizum May 10 '18 at 15:39
  • @dwizum I've edited the question to clarify. It's safe to say the company treats "open source" as just the release of code to the public, not as a community effort. – mayacoda May 10 '18 at 15:54
  • 4
    When you have been at that company, did it accept external contributions, as minor patches? – Basile Starynkevitch May 10 '18 at 16:00
  • @BasileStarynkevitch Never. There wasn't really a dedicated person for even responding to PRs and issues (the developers expected to not do it, but no one took the responsibility). – mayacoda May 10 '18 at 16:07
  • 3
    The company does not de facto accept pull request from third parties Then it's not really open source, IMO. I would not work on this. There are plenty of real open source projects that need help - try those. – StephenG May 10 '18 at 17:20
6

Short Version : Move on and Let It Go

I've recently left a company for whom I developed an open source project for over two years. The project is now gaining traction with its intended community, so in many ways my hard work is paying off.

You were paid, you left, you're not being paid to do it now.

Time to move on to new pastures.

Of course, with more users means more bug reports, feature requests, and contributions. Because the project has been put on the back burner by the company, most of these issues go unanswered for months. It pains me to see this and I would like to keep contributing to something in which I still see merit.

This is a psychological issue. You feel a sense of responsibility and ownership towards the project you worked hard on. However you did not own it and your responsibility de facto ended when you left.

You're having trouble letting go, but in the course of your career you'll find you have to leave maybe hundreds of projects you invested time in (and got paid for !) and they'll all need more work. You can't keep them all.

Let go.

My question is: Should I keep contributing to an open source project which belongs to a company I no longer work for, and if so how?

No you should not.

It's not practical and you are working for free. Never work on what is in fact a commercial project very loosely pretending to be open source.

Naturally, I am no longer an admin on the project so I can't merge/close PRs. I'm reluctant to answer issues directly as it might give the impression that I'm still part of the organization. I've considered forking it under my username and continuing development, but fear it would seem in bad faith (like I'm trying to "steal" their users).

If it's really open source then forking is something they have to cope with. There's no need for guilt.

Note that they would not be operating (or claiming to operate) an open source model of development unless it was beneficial to them. Companies get something from this process, even if it just makes them look "friendly" from the outside.

You can fork with a clear conscience if you really, really want to.

EDIT: All the repos are Apache 2.0 as of this moment. The project consists of a desktop application which contains the name of the company and two libraries which are branding agnostic. The company does not de facto accept pull request from third parties.

Not accepting pull requests from third parties suggests it's not really being done as a proper open source project (at least in my mind). While there's no obligation to accept third party contributions in your own branch, it's pointless operating "open source" if you just blanket ignore such contributions.

From a practical point of view this means you cannot continue contributing to that project. You can fork it and create your own version which will become a different project (as they won't merge your contributions anyway).

EDIT 2: I'm still very close with most of the people at the company and left on very good terms. Current maintainers still ask me technical questions about the project, which has lead to some tongue-in-cheek remarks from my former bosses about me "working for free". They aren't open to paying me part time to maintain the repo. The reason I feel compelled to keep working on this is because of the domain knowledge I've accumulated; it's likely no one else knows as much as I do.

You are a working developer who gets the money they need to eat, drink, be housed and clothed from coding. Keep that in mind.

While it's perfectly reasonable to maintain contact and answer the occasional technical question with colleagues (that's just networking - a good thing to do as long as it flows both ways), if you're really operating as an unpaid consultant then you need to put the brakes on this.

Don't drift into becoming an unpaid worker for your former employer.

You left the company and all the work it did behind. You need to accept this as a fact and move on mentally.

  • 3
    I agree with your advice about moving on. I think your view of open source is too narrow. There are good reasons for companies and their customers and the community to open source software even if you don't accept contributions. Open source may allow your customers understand what your software does. It mitigates vendor lock-in. It makes it easy for others to customize your software and create derived works. – user86764 May 11 '18 at 2:17
  • This is the correct answer. It's completely, totally, pointless fooling around with some old project from yesterday. Focus on your career and making money. – Fattie May 11 '18 at 12:36
4

It is difficult to say in general. Keep several things in mind:

  • your current employer and working contract may restrict (or, in some cases even, forbid) contribution to outside open source projects, and things could be different if you do that on work time and on work computer, or at home on your own one. I certainly recommend at least speaking of this to your current manager at your new company, and probably ask written permission (you could first ask about their policies regarding contribution to outside open source projects). Details vary widely (depends upon country, work contract, etc.). Your current company might (or not) have some open source culture or habit, and that matters a lot. Perhaps even it could be interested in that project. Or on the contrary they might see that former project as a threat to your current company's business and assets.

  • your previous employer might (or not) understand the importance of some external community, and hopefully change his mind upon rejecting outside contributions. Your former technical colleagues might still trust you.

  • The precise open source or free software license matters a lot. (GPL is not the same as MIT ...)

  • You might choose instead to contribute to some other free software project. You'll learn a lot more by doing so (and that could be more profitable to your own CV). BTW, that old open source project might be dying, because your former company don't care about it. You might not be able (alone) to resurrect it.

  • Large and small companies have very different approaches to open source (in large companies, lawyers are generally involved).

  • When communicating outside, be sure to mention that you don't work anymore with the former company. (perhaps your current employer may want you to mention him).

BTW, I am not a lawyer, and things depend a lot (of your country, former and current employer, work contracts, legal system, trust from managers, etc...)

  • You're right that your current employer may restrict outside contributions. Also of interest is that this might be a grey area considering not only are you contributing to a outside project, but it is of a - potentially - competing company. – Dan May 10 '18 at 19:56
3

I think you should fork the project if you want to continue working on it. Create a fork in github that has no relation to the previous company and get people to contribute there. You can make yourself and other active community members into a committee for governing the project (it'll be a lot if you want to manage it yourself) and go about advancing it that way.

Disclaimer: you should make sure your current employer allows you to continue to contribute before doing any of this.

The benefits to forking / cloning:

  • You won't have to alter the community's vision and goals for the project to conform to the company backing it.
  • You won't be a defacto unpaid employee for your previous company.
  • It doesn't sound like this company has any serious commitment towards cultivating an open source community, and open source generally doesn't work under these conditions.

The big minus for forking / cloning is that you lose the backing of a company, so you would need a very active community to make it work.

  • 1
    This is bad advice. There is a fundamental difference between contributing to an open sourc eproject or forking it. The later means that you suddenly have 2 different sloly diverging projects. – TomTom May 10 '18 at 16:46
  • 4
    @TomTom, forking and maintaining a community might be valid in this case, because the original project isn't open to external contributions and seems to have halted development. I would agree for projects who are engaging with the community. – mayacoda May 10 '18 at 16:57
3

You're free to submit pull requests as you like, regardless of license.

  • You should definitely avoid using any knowledge of the business or business-IP to create pull-requests.
  • You should also not represent yourself as belonging to the company

Whether or not they accept said pull requests is up to them. You may have better luck forking the project for the reasons dbeer lists in his answer.

If you want to become a maintainer for the project then that's going to be a conversation with your previous employer.

  • 1
    (and also a conversation with your current employer, for the last point) – Basile Starynkevitch May 10 '18 at 16:24

Not the answer you're looking for? Browse other questions tagged or ask your own question.