76

I am the maintainer of a project which has a large non-technical userbase. I've been maintaining it for about 4 years now and adding new features as they've been requested.

I'd like to move on to other projects now and stop developing for this application. Because of the non-technical nature of the users, there have been very few code contributions in the past. I don't believe I will be able to find anyone else to take over the project in my stead.

Bugs, issues, feature requests - these are still coming in. I am still responding to emails for help, as I am not sure if I should ignore them, tell them that I'm not working on the application, or if I should respond to emails in only certain cases.

What is the best way to 'abandon' this project, but still let users use the application?


Update (July 2016) - It didn't go as planned. I made an announcement in the README and soon after, I started receiving contributions of a more substantial nature. Pull requests with bug fixes, features, documentation, issue activity. Since then, the project has felt 'reinvigorated' and I'm now happily maintaining it along with newer projects. I have collaborators as well. At a guess, it may have been the kind of contributions which were affecting my view of the project and with the quality of contributions improving, it didn't feel like a chore any more.

Mendhak
  • 919
  • 1
  • 7
  • 9
  • 1
    Could you port it to a new platform or new technology? That way it would be interesting for you to work on and you could explain to support calls that bug fixes and enhancements would no longer be made to the old code and suggest they upgrade when it is ready etc? – Stefan Apr 04 '13 at 12:52
  • 5
    Out of curiosity, what is the project? Link? (assuming it's open source) – Andres F. Apr 05 '13 at 00:49
  • 70
    It's Google Reader, isn't it? – Kyralessa Apr 05 '13 at 03:13
  • 3
    Double-check your assumption: Is your userbase too non-technical to maintain the project or is your project too closed to enable participation beyond issues and feature requests? – Bengt Apr 08 '13 at 21:47
  • Now we all want to see the project... You should add the link. – daviewales Jul 14 '13 at 02:56
  • @kyralessa I saw this on Ars Technica, and I wanted to get here and say "pull a google" :) – Zlatko Jul 15 '13 at 09:22
  • With so many answerer and comments, there is obviously some interest here. What do you have to lose by naming the project and seeing if one of use would like to take it over? – Mawg says reinstate Monica Mar 26 '15 at 15:26
  • So what did eventually happen with the application ? Can you make an edit with some details ? It may be helpful to other people who read the question. – Radu Murzea Jun 30 '16 at 21:05
  • Related: https://hinty.io/brucehardywald/what-should-you-do-when-opensource-package-is-not-maintained-anymore/ – Ivan Borshchov Nov 22 '20 at 12:19

9 Answers9

40

I'm guessing this is not a project at a workplace where you are a paid employee and something you do in your spare time for free?

If you are making no money from this, then clearly there is no incentive for you, and no incentive for anyone else to come in fresh to deal with it. (unless maybe it is for a charity or similar voluntary organisation)

As an alternative, why not look at the possibility of adding paid for features.

This way you may have some incentive to continue. You might find people willing to pay, especially when the alternative is for the system to stop being actively developed. (of course people may abandon your system, but what do you care, you already aren't being paid).

Another option could be to use the project to learn new technologies? Is it a website? Upgrade to the latest technology? Convert from Asp.Net to MVC4 for example? build a mobile version, make it service based and create an iOS app front end for it?

ozz
  • 8,322
  • 2
  • 29
  • 62
  • 23
    A different possibility is to sell (or donate) the project to a company. You have the users, a company can see the profit. – Sulthan Apr 04 '13 at 13:25
  • @Sulthan absolutely! – ozz Apr 04 '13 at 13:31
  • 1
    If you are not making money from this raise rates or start charging for the service. – Bill Leeper Apr 04 '13 at 15:44
  • 9
    He tagged it "open source". That IS kinda like charity or volunteer work. The motives are simply different. Typically you can't sell open sourced projects. But he could always charge for additional work. Get a donation pool going for what gets fixed/added next. – Philip Apr 04 '13 at 20:13
  • @Sulthan - very interesting, hadn't considered that. I will see which companies would be interested in this. – Mendhak Apr 05 '13 at 05:44
  • @Ozz - It's an Android app but I understand about the new technology angle. I think my interest is no longer in the project itself, it is pretty much "feature complete" at the core. I do see what you mean about charging, though: If you really want that feature, you can pay a bit for it. This is a better option than simply abandoning them, as I do care very much about my users. – Mendhak Apr 05 '13 at 05:45
  • What was the minus for?? – ozz Apr 05 '13 at 08:09
  • @Ozz Wasn't me! – Mendhak Apr 09 '13 at 12:22
  • @Philip MongoDB is open source, but they make money through a SLA (service level agreement) for dedicated support. There are also some "enterprise" options that are only available for the Enterprise SLA. MariaDB (alternative to MySQL) is also open source, with SkySQL providing an SLA. You will find that a lot of company make money through open source software. – ton.yeung Jul 15 '13 at 16:25
26

Announce your abandoning of the product to your community of users. Maybe you will find a successor for your role as maintainer. Try to organize some time of handover, as you would with a project in your day job.

As esr put it in The Cathedral And The Bazaar:

When you lose interest in a program, your last duty to it is to hand it off to a competent successor.

Residuum
  • 3,282
  • 28
  • 31
  • 2
    To add to this, comment on programming sites and see if anyone is willing to take over. Some people aren't sure what projects they want to do but want some coding experience and are open to ideas. The handover period may involve more work in the short term but will hopefully pay off in the long term. – James Apr 05 '13 at 07:19
11

Another suggestion for you, which is slightly the opposite of what you're asking but I think should be in your list for consideration. Have you considered not abandoning it? If you have a project that there are people actively using and have increasing requirements for, but are unable to modify it themselves and you are the only expert in the software... then you are in the position to charge them money for it.

If the source is open, you could consider closing it (your choice if you want to stifle competition developing the project further). When the next feature request comes in, say yes for a charge of $xyz.

Just an option to consider.

Ian
  • 437
  • 2
  • 14
  • 11
    Taking a previously open source application and making it closed source would annoy many users greatly and may not even be legally possible if other users have contributed code under certain open source licenses, depending on any contributor agreements they did or did not sign. There is a very big difference between charging for your work on an open source project and suddenly closing what was previously open. – James Apr 04 '13 at 19:59
  • 3
    @James Charging for work done doesn't necessarily mean closed source. It just means that someone wants the software to have a new features, and he wants incentive to add it - there's no reason he can't charge for his work while keeping it open source. – Daenyth Jul 14 '13 at 20:03
  • 1
    @Daenyth Of course, but this answer specifically mentions closing it, so its something that needs discussing. – James Jul 14 '13 at 21:33
  • @James You don't need to make it closed source. You can still release the new features as open-source... but there is no reason to release to commit the code until the cheque clears. – Sled Jul 15 '13 at 17:09
  • 1
    @ArtB Yes I know, but this answer specifically mentions closing it, so my comment was specifically in reference to that. – James Jul 15 '13 at 17:46
8

It's a tough thing to abandon your fan base, especially when you're different from them. If there were developers in the user group, it would be an easy problem to solve: just announce your impending exit and suggest that someone else step up, offering to help them get up to speed before you leave. Since there aren't, the question is really this: Can you (or your users) find someone to replace you in a timeframe that makes sense to you (or your users).

In the past, I've maintained several projects for years longer than I cared to because it was good for my reputation. My stature, comparatively small though it is, in my field has helped me find jobs when I've needed or wanted them, and that has value to me. Enough value to make it worth putting my time in when I could. Eventually, of course, I walked away, but I made sure the full project code was available to any successors.

Ross Patterson
  • 10,277
  • 34
  • 43
  • "It's a tough thing to abandon your fan base, especially when you're different from them." - Exactly! I do care about them and some of the other posts here are talking about making my intentions clear + charging, which could work. – Mendhak Apr 05 '13 at 05:36
  • "My stature in my field has helped me find jobs". Good point - an Open Source project always looks impressive on a resume/CV. – Mawg says reinstate Monica Mar 26 '15 at 15:22
5

Do you want to abandon the project because...

you don't want to do it any more ?

Then: Graceful shutdown ala Reader.

Or ... hire a developer ( continue below)

Or because you are losing money?

Calculate out-of-pocket costs ( and continue below)

Or because you aren't making money?

Calculate how much you need to make for you to feel differently :

  1. out-of-pocket costs must be covered
  2. cost of a developer to continue development
  3. a profit margin

Be honest with your users: explain to them that it costs a certain amount of time, energy, etc. to maintain the service.

Then ask for donations and/or charge for existing features. Do not try to invent premium features that just delays determining if the service is really valuable enough to support itself. Just go with the features you have.

If users bitch well then they can go elsewhere. If not enough donations and/or sign-ups, then shutdown.

Be brutal - once you pull the plug don't look back.

Pat
  • 1,643
  • 1
  • 15
  • 12
  • 2
    +1 for these ideas. Include your monthly "bill" you would charge if you were doing this for somebody commercially. Then say to your users they could pool in and hire a maintainer from that point on. Hell, maybe you can even apply for the position then :) – Zlatko Jul 15 '13 at 09:25
  • @zladuric - agreed that is why I have "cost of a developer to continue development" ( where "you" could be that developer ). Too many developers do something "fun" without recognizing the need to run a business. TANSTAAFL – Pat Jul 15 '13 at 19:35
3

You have a couple of options as other have noted. My option is to put out an end of life notice. Indicate that the product will be shutting down on such and such a date.

Additionally indicate that since this product is nearing end of life, only critical bugs that impact the ability of the application to function as designed or intended will be addressed. I.E. if the server is down you will get it up and running again.

If users have data, you may have to add a way for them to export it.

Take a look at what Google recently did with Reader for guidance. They shut it down and it was a very popular service, but it didn't fit their long term goals so the tough decision to shut it down needed to be made.

Bill Leeper
  • 4,113
  • 15
  • 20
  • 1
    +1 Here is an example of a similar, excellent(IMO) project: http://picoos.sourceforge.net/ – Vorac Apr 11 '13 at 10:40
3

Is some kind of half way measure a possible solution? Keep the project going but lessen your workload?

For example, you say you are still responding to emails for help. Can you set up a users forum and insist all support queries are done through that so other power-users can help?

James
  • 1,825
  • 14
  • 15
  • 1
    Furthermore, limit development to only major bugfixes. That way the application (is supposed to end up) functional and robust. – Vorac Apr 11 '13 at 10:38
  • Well meaning answer that is just delaying the inevitable. Kill it or make money. Don't do it halfway - then it just becomes a energy drain. – Pat Jul 13 '13 at 21:16
  • 2
    @pat you seem to be assuming the only motivation someone could have is money. There are other motivations to writing open source software, something I think the op understands as they talk about wanting to help their users. Whatever, maybe this answer isn't right for the OP in this case but their are other solutions than "OMG Money" that should at least be discussed. – James Jul 14 '13 at 21:41
  • @James - sorry but yes. We need money to survive. We all have a very limited amount of time in this world. We should focus on the things that create the most "value". Working on projects that are not valued is a waste of life. How to measure value: 1) if other people don't find value in a project (and don't use it), then how "rewarding" is that project? 2) money is how we measure "value". 3) Opportunity cost - if OP continues to work on this (not valued?) project - what is the OP passing on working on? – Pat Jul 15 '13 at 19:52
  • @Pat OP clearly states project has a large user base, so i don't known where your getting this "not valued" rubbish from. Just because no-one currently pays for does not mean no-one values it. Money is one measure of value; many people also put stock in other measures, such as they made a useful piece of software many others want. But talking of limited time, I really can't be bothered to get into a political argument on this in a comments section - goodbye. – James Jul 15 '13 at 22:51
  • @James -- "I really can't be bothered to get into a political argument on this in a comments section - goodbye". I completely agree. I just wanted to briefly articulate my position. But like you, not interested in an argument. We just will agree to disagree. – Pat Jul 16 '13 at 00:25
1

Well going over to pure paid will kill off a lot of users, but there are a lot of alternatives to pure paid. A video game I play gives donators some extra perks like more downloads per hour "a pure skill based game, not to confuse with pay to win garbage lol". Another game Path of Exile offers cosmetic upgrades. Other sites put surveys in exchange for bandwidth. Donation coder gives free users a licenses for (X Time) renewable many times as they want, but donators get a permanent licenses.

There are tons of options offer it for cash but still keep the free users around as well.

Most people have no problem supporting something they like so honestly I'd just try asking first by setting up a tip area calculated to cover your monthly cost.

Drew
  • 19
  • 1
  • 1
    I can see how your answer relates to the OP's question, but the OP is asking a slightly different aspect. They want to move on from the project. Many of the points in your answer would create a continued tie to the project. –  Jul 14 '13 at 12:15
1

You have included the open-source tag, so I guess your project is software is open source.

there have been very few code contributions in the past

That's unfortunate, but understandable in case you were doing everything. Many users don't get involved as long as it works reasonably.

Some leaders like to delegate all responsibilities, and some leaders like to keep tighter control. While a balance is necessary, delegating as soon as possible is the key here.

I have created over 30 open source projects, and many are still active even though I have left them. Here is what I would recommend:

  1. Give bug tracker access VERY generously, maybe to anyone who has ever contributed a line of code. If someone starts doing crazy things (very low probability), you still have admin control to remove them. Don't forget to give out other rights: source code control, wiki, crowd-translation, facebook page, twitter account, official website, google analytics, etc.

  2. Post in the forum (and website notice) announcing that you are retiring, and looking for a new project leader.

  3. Even if no one steps in as a team leader, fatal problems that could occur (silly example: a hard-coded URL becomes 404, making the app crash at startup), it will probably be fixed by someone. If nobody fixes fatal flaws, then it means you should not worry too much anymore, you have done what you could, but the project does not appear to be viable anymore.

Nicolas Raoul
  • 1,062
  • 1
  • 11
  • 20
  • Thanks - I suppose this is where Github doesn't exactly shine - I don't have those kind of security controls. What VCS platforms support the kind of features you're talking about? – Mendhak Jul 29 '13 at 12:03
  • On the contrary, Github is actually one of the best places. With Github you can create an "organization" account, and invite other developers to join it. Also, Github makes it easy to see popular forks, which is a good thing. – Nicolas Raoul Jul 30 '13 at 02:08