Sometimes love-for-science isn't enough
July 23, 2017 5:10 AM   Subscribe

I developed a software program during my PhD. I've long since graduated, but it has users and I maintain it because it's my baby. But my PhD advisor keeps asking for more features and troubleshooting help, and I don't have the time anymore. Snowflakes insides.

My advisor is a collaborator on this tool, but doesn't code. He asks for new features every month or so, which takes me about half a day to implement. I'm sometimes excited enough about the features that it's worth giving up my half-Saturday for. I sometimes don't care about the features but put in the work anyway.

This is a tool for researchers. They're not software people, so they run into a lot of tech-support questions, which I need to resolve and debug, usually within 24-48 hours, in the interest of good "customer service". This can be pretty stressful, since my advisor will sometimes call me up at 10 pm asking for urgent debugging because a user e-mailed him with a problem.

I'm now in industry, with a taxing work schedule, and maintaining this software and troubleshooting doesn't help my career at all. I do it because I feel ownership over the tool and want to encourage people to keep using it. If I bow out of this project entirely, it will fade into oblivion since we likely won't find another person to maintain it. (We've tried.)

Recently, I proposed changing the codebase so that it's easier for me to maintain, requires less troubleshooting, AND is more scientifically accurate for our users. My advisor is requesting that I keep two versions of the tool alive so that people can use the old version for replicability. This means that instead of decreasing my ongoing maintenance work by upgrading (and the upgrade will take a full weekend), it's actually _increasing_ it.

His argument is that it inconveniences researchers to re-run their previous data through the new version when they need to compare results, for example, but I don't understand why that justifies keeping a less accurate version afloat. It is the researchers' responsibility to use a better instrument when it becomes available, after all. Anyway, realistically, we only have a handful of users who have published results using our tool and I can help them re-run their data if needed.

I need advice on how to navigate both (1) the general problem of having to maintain this thing without any benefit to me, and (2) convincing my advisor that keeping two versions of the software running isn't going to happen -- we either upgrade and ditch the old version (my preference) or keep the current one as is (which saves me the upgrading hassle, even though it means continuing maintenance and potentially less accurate results).

I don't want to burn any bridges or kill the project, but I also want to save my sanity.
posted by anonymous to Work & Money (18 answers total) 5 users marked this as a favorite
 
I feel like you have a 100% right to simply tell your advisor, "Sorry, I don't have time to maintain this project anymore." and then walk away. If it is a popular tool, someone else may pick up the burden of maintenance. This happens ALL THE TIME in the open source community, and nobody thinks worse of the maintainer who had to quit.

Do you have any other contributors on the project? Maybe people who are still in school, or researchers who are actively using it? You could put out a call for contributors and let the current users know that you need to step down from maintaining the tool. If it is important to their work, you will likely have takers.
posted by tybstar at 5:37 AM on July 23, 2017 [23 favorites]


You're very good hearted!
This is something you're doing effectively as a favour and as such the advisor should be eternally grateful and should be polite enough to recognise that. Maybe suggest that you simply don't have time to maintain both so you will be updating to v2 at a given time and that people who want to continue to use this resource should be preparing for that. Or suggest they find someone else to maintain it. Or, if the advisor is adamant, tell him you will be charging a fee for your time for maintaining two separate programmes.
posted by Martha My Dear Prudence at 5:43 AM on July 23, 2017 [4 favorites]


Basically what Tybstar said. You're already going way above and beyond what I think they should expect from someone who's moved on to other things.

If you want to provide a friendly fade out you could do a few things (if you haven't already):
- document the code
- open source the code with a clear "anyone can use this" licence
- offer to provide support to any future maintainer for a fixed time

If the software is critical enough that you need to be on call at 10pm to fix bugs then they will find a way to support it without you.
posted by crocomancer at 6:02 AM on July 23, 2017 [16 favorites]


I love to knit and crochet. I like to make blankets, shawls, old-fashioned doilies, socks, that sort of thing. It's work, of course, but I enjoy it. I get pleasure from selecting yarns and tools, choosing patterns, learning interesting skills, etc. But when Aunt Sadie wants a baby blanket in one of those crappy variegated baby yarns that I hate, Aunt Sadie has to pay for my time and the yarn. Upon learning that a baby blanket is a $160 project at minimum, Aunt Sadie quietly goes away.

So.

Commercialize this tool or open source it and walk away from it. I mean, if it's a passion project, then it's something you'll give away Saturdays for. If it's work, you should be getting paid. Commercializing it doesn't necessarily mean you have to charge your advisor for the tool. If this tool has so much value that you're getting frantic tech support calls and feature requests, it seems like the sort of thing that other people in this niche might have a use for. Develop your new version and make it available for a reasonable price. Or even give it away for free but have a tip jar. Give yourself some motivation other than "it's my baby" to keep working on this.
posted by xyzzy at 6:03 AM on July 23, 2017 [17 favorites]


Does your advisor have a current employee or trainee he could offer the project to, after investing some training in them? Or a collaborator who does know how to code? That could be a short term solution, to move the responsibility away from you, and pitch it as a growth opportunity for someone else.

No software runs well on this model of free labor by one former lab member and legacy systems. If you want to keep this a labor of love and free use for science, you can propose to make the code to both programs widely available to all researchers so they can continue to use and modify it, and your advisor then benefits from their work/upgrades. If you want to stay involved, you need to get paid and essentially start up a small consulting biz that he can charge to you, and you then do it or employ someone else (but this is incredibly time consuming and may cause you more stress. )

I am hoping your advisor understands eventually, but perhaps you can say you owe it to your new industry endeavor to be focused on that particular project, and/or it's a disservice to both your academic project and your current industry project to split your focus in that way.
posted by NikitaNikita at 6:11 AM on July 23, 2017 [1 favorite]


If you have an existing user base, it might be worth exploring transitioning support to the university where you developed it, selling the product to someone interested in maintaining it, or working with the university's office of intellectual property to figure out how to move forward. I don't know how IP works if you developed it as a student for your department, so I don't really know which of the above is appropriate. But you're not ethically on the hook for perpetual support of this product without compensation.
posted by chesty_a_arthur at 7:04 AM on July 23, 2017 [1 favorite]


Faculty member here. I've seen a few widely-used (well, "widely" within our tiny sub-discipline) codes come close to death after the primary developer left the field. Here are a few options.

- Would it be different if you were being paid for your time on this project? I would certainly not expect a former PhD student who has since moved out of academia to continue to maintain a research code unless she/he was continuing to be paid out of my grant as a research assistant. Can your former supervisor pay you for a couple of days a month on an ongoing basis to work on this project?

- Regarding the rebuild of the code-base to "v2": if the reason for preserving v1 is replicability, it seems to me that it would make a lot more sense to freeze v1 as it is now and keep it available as a legacy cross-checking tool, but make no further changes to it. Any future improvements can be to v2. That will encourage users to switch to the (better!) v2, while still allowing them to benchmark against the old v1 if necessary.
posted by heatherlogan at 7:06 AM on July 23, 2017 [25 favorites]


One more thing: is the code open-source? If not, and you do decide to leave the project, make sure that the source code is made available, either to the world at large or to your supervisor, so that some future student might be able to pick it up and run with it.
posted by heatherlogan at 7:18 AM on July 23, 2017 [1 favorite]


You might actually enjoy, and get significant benefit from, working with a new, additional person on this project. Perhaps you could get your advisor to send you a current graduate student -- making sure they have time, maybe a grant, etc. -- for you to train on this software, and then to help maintain the code.

Their training could be learning the software inside and out so they can answer questions from less knowledgeable users -- I once started a software internship by doing tech support, and it was _incredibly_ useful training in multiple ways.

Then, they write and get a grant to not only support the software (which should be paid work, really, and sounds truly valuable), but also to innovate on it _under you_.

Whether you want to be involved in this grant is up to you. How or if this is possible is something you'd know better than me.
posted by amtho at 7:52 AM on July 23, 2017 [2 favorites]


I'm now in industry, with a taxing work schedule, and maintaining this software and troubleshooting doesn't help my career at all.

How much does your relationship with your PhD advisor help your career?
Do you have any plans of returning from industry to academia?
If you're not in a field where your advisor's connections are meaningful to you and you don't plan to return to one, it's really okay to start to deprioritize this relationship. He's not going to be writing you crucial letters of recommendation for the next several decades, you know?
posted by deludingmyself at 8:11 AM on July 23, 2017 [2 favorites]


Can't help with the coding, but when it comes to your personal time: phone calls, emails, texts, whatever, they all get answered only at your convenience --- just because someone calls/messages you does not mean you are required to immediately respond. This is a good skill to learn for any situation, not just for people demanding free on-the-spot maintenance of a project you've long since moved on from.

I get that you want to help, and you probably still feel some ownership of your baby; but it's time to back away. Let the professor know that you are no longer able to jump the instant he or his researchers have a problem; and if delayed responses are unacceptable to them, they're free to either fix their own problems (because these sure aren't your problems, you don't work there!) or, yes, they can pay someone for IT service.

Think of it this way: you have a door on your home with a lock, yes? Your phone has voicemail? Texts and emails wait for you, they don't disappear just because you haven't read them the second they arrive? All of these things provide a buffer between you and the world. If you want to sit in your living room and ignore someone knocking on your door, you can: it's your door, and you aren't required to jump up and answer just because somebody knocks. If your phone rings while you're eating a romantic dinner with your SO, there is no requirement that you ignore SO just because somebody found that time convenient to them to call/text/email you.
posted by easily confused at 8:11 AM on July 23, 2017 [7 favorites]


As a (non-academic) computer programmer, I strongly endorse heatherlogan's suggestions; there's a passion project I whipped up in 2002 and with a handful of outside users. Updates have been increasingly sporadic--I have a lengthy to-do list that I haven't touched for more than five years--but I considered open sourcing it and making the code available to be (literally) the least I can do.

Is use of GitHub common in your field? Honestly, writing documentation to the best of your ability, putting a permissive open source license on it, putting the work up on GitHub with a 1.x version number (and using semantic versioning), and moving on to v2 if that's what your interested in seems like more than anyone should expect from you. If your advisor or another user of the tool wants to develop with features and fixes in the v1 branch, they can maintain their own fork or submit patches/pull requests to you, but if you're interested in continuing to develop the software and not be held back by compatibility/replicability issues, there's no reason you should do work for free that you're not interested in.
posted by snarkout at 8:22 AM on July 23, 2017 [3 favorites]


I agree with those saying that you need to monetize your involvement in this project. It sounds like you are spending a half-day a week on "routine" work, plus being on call 24/7? You are essentially freelancing for free here. What is your hourly wage equivalent at your current job? I think it's totally reasonable to go to your former advisor with that number as your "hourly rate." You are providing an essential service; it's only reasonable that you should be compensated accordingly. If prof can't afford it, or doesn't want to pass the cost on to the users of the service, you have to be prepared to walk away, though. I get that could be hard for a passion project.

Also, who owns the intellectual property? Check whatever contract/handbook you had when you were a grad student. If it's the institution, just remember that despite the time/effort you have put into this, it is not "your" project, it's "their" project.
posted by basalganglia at 8:34 AM on July 23, 2017 [2 favorites]


I'm kind of confused. If I understood correctly, your once-advisor is in academia, as are the other people who use your code? They can absolutely get someone else to maintain it: they just have to offer funding or credit for a student to work on it. (Or a freelancer, if it's not a university environment.) Are you from a particularly cash-strapped field? Because otherwise it really sounds like they haven't made the effort because they haven't needed to.
posted by trig at 8:58 AM on July 23, 2017 [3 favorites]


I'm so sorry you're in this situation. But why these two options? They don't solve your problem.

For the technical problem - put it on GitHub. Go open source. Please for your own happiness.

For the social problem - you've unfortunately been in a place with your advisor where he has come to rely on you.
You need to plainly explain to him in email basically what you said here. "Jim, while I Know RePut has been a valuable tool, I can no longer provide support. It is over 15 hours per week which is both unpaid and taking away from my paid work. I'm going to make RePut open source and anyone can work on it."
If they really care they can get funding for support from someone else.

This is totally ridiculous. You need to make it stop even if the cost is losing control.
posted by k8t at 9:18 AM on July 23, 2017 [2 favorites]


It sounds like part of the problem is that your advisor doesn't recognize the value of your time. Does he have a grant? If so, perhaps he could pay you for your time. In addition to giving you a bit of extra cash, having an invoice saying "6 hours adding (new feature) = 6 x $(your hourly rate) might help him realize what exactly he's asking you for. Right now he is asking you for free labor and you are providing it.
posted by number9dream at 11:15 AM on July 23, 2017


It sounds like even though you finished your degree a while back, you are still acting as if your advisor is still your advisor. When you are in a Phd program, advisors have special status and authority and it is natural to defer to both their experience and their power. It sounds like you are still doing that.

You ask: "I need advice on how to navigate ... convincing my advisor that keeping two versions of the software running isn't going to happen". The answer is that you don't need to convince him. You don't need his approval or consent do to either of those options, although you do have to be prepared for him to be disappointed in your choice.

Figure out what you would like to have happen. (Lots of good options above). If your preferred choice requires his cooperation (like assigning a new student or paying you for your time) be prepared with a back-up that is completely under your control (like agreeing to do a new version but not maintain the old one or putting it up on Github and walking away) Knowing your options and knowing that you are being reasonable will give you confidence. If you aren't used to facing his disappointment/disapproval, maybe practice the conversation ahead of time. Good luck.
posted by metahawk at 7:42 PM on July 23, 2017 [1 favorite]


Lots of great advice and options above. I just want to mention this as it might help give you clarity. This is not a tech or time issue. It is a boundary issue. Create the boundary you need and see which if the above options fit into it. (Walking away is acceptable, btw)
posted by Vaike at 10:44 PM on July 23, 2017 [3 favorites]


« Older Help me figure out what went wrong in my first...   |   What's the Asos of baby clothes & gear? Newer »
This thread is closed to new comments.