Supervisor wants me to support a diploma-thesis software tool after I graduated

I think you are being generous and, given what you say, should be able to step away from the project with a clear conscience.

If he needs the software he should be willing to find a way to pay for support, maybe not you, I think, but some support person.

I would see him if possible or send an email giving much of the information you've given here. The fact that you are doing very different things now and that support is disruptive to your main goals should be definitive.

But I agree that it is good to find a way to keep a good relationship with him if you can also achieve your main goal.


I have mixed feelings about this question, and I wanted to write an answer simply because it would be too long for a comment.

While I agree with the general sentiment that if this was asked on workplace stackexchange the typical advice would be that you do not owe him such service, I also understand that academia is a very different context, where programming is often a side-effect of the research rather than the 'main product' as it were.

The problem with this, as you're coming to realise, is that there is a lot of 'bad code' in academia. And one needs to clarify what 'bad code' means here: it does not mean that it does not do well what it was designed to do. It means that it is devoid of any of the software engineering good practices that typically make code flexible, maintainable, supported by tests covering specification and edge-cases, versioning, documentation, etc. In other words, what you call "production-ready".

There are good and bad reasons for such "bad code" in academia, but at the end of the day, the fact is that the code is bad by design. You decided it was meant to be prototype code rather than production-ready, and accepted that risk given your use-context and intent at the time. In that, your code was designed to not be maintainable, supported by tests, documentation, etc, because you had a very particular problem in mind to solve which you felt did not require or justify these features for the allocated time. I have mixed feelings about this because, as you're coming to realise, typically this is technical-debt that tends to catch up with you exponentially, but, it is what it is, what's done is done, and that's what you need to deal with now.

Therefore the crucial difference here, is that when your supervisor talks about 'bugfixes', these are not actually bugfixes as such. They are "features". He is in fact asking you to add functionality and extra work that was not part of the original intent and "design". He is effectively asking you to do new work (and boring one at that), that you have neither interest in, nor pays market rates (even if you cared to do it). The fact that this work is tangentially related to something you've worked on the past has no bearing on anything.

Your supervisor, especially if he's not programming-savvy, may not understand this crucial difference (or in the words of Upton Sinclair, it may be impossible to make him understand it, if his work depends on him not understanding it). But, however you decide to tackle this issue, part of your reply to him must make this point clear: that what he's asking you to do is, to use a car analogy, a lot less like performing trivial standard maintenance* (e.g. doing an oil change), and a lot like him expecting your machine to act like a proper general-purpose car, when it was only supposed to serve a single route, for a single individual, on a particular day. You need to impress on him that if your supervisor wants to make 12 trips in this 'car', it's not a case that if a route has problems you'll make some small adjustment for him, you're literally gonna have to design 12 routes for him, each one from scratch, because that 'car' was never supposed to be able to go on a general route to begin with, nor is it the right kind of machine for that task.

And if what he wants is a general purpose, production-ready car, really the only viable, long-term solution is for him to get (i.e. pay) someone (i.e. a professional) to build it for him.


* and even if it were, it would still be inappropriate for him to be asking you to commit to such maintenance for life anyway, however trivial.


He has had your work for free 3 times already.

If he was serious he would have offered some reward the first time...

Unless you get him to commit to paying upfront, then he won't pay. He should have continued the project with other students since you left but did not, I suggest he won't be able to fund you for your continued work or other students as he cannot get any more funding for that project.

Get out and stay out is my 2 pence worth...

Tags:

Advisor

Code