I maintain that developers and engineers should leave their work maintainable.
I know I'm going to get downvoted, but this needs to be said. With great programming power comes great programming responsibilities. And you and I know this power doesn't come from silicon or management.
We all bitch about crappy products, and fail to see the developers on the other leave their turd piles for management to "manage".
Or we bitch about crappy code left behind by the prior owners -- spitting at the sky playing musical chairs.
If you need to leave your job, at least offer to maintain your shit. Don't leave them trembling in fear. Save us greedy monkeys.
Now, C# and Java are pretty close syntactically so hopefully they'll be OK. There is a huge difference in libraries and core API structure as well as deployment though, so it's not just an easy step to take. Having marginal .NET skills does not translate to marginal Java skills though. We do have a brand new Java dev, but it's really asking alot to put all of this on their shoulders with just a few months out of college.
Isn't that the same as keeping your job but deciding you don't want to be paid for it? Typing up a polished design doc for your successor would be the best thing to do, anything more would be paid consultant work.
No, it's not like you're working full time. Anyone can offer to help out a couple hours a week after they leave. It's not just good service, but it's also the most intelligent thing we can do: the original writer of software is by far in the best position to maintain it. If we all did this, we'd all benefit.
Life is not a comic book turned into a movie. Companies have no responsibility to employ people. People have no responsibilities to support former employers. If the employer says "That's fine, leave" then just leave. It's a financial decision they made signaling that it is time for you to move on.
Anyways, you're right. If the employer tells you to leave, you're not obligated to do anything besides leave.
It's a two way street- I do my best to leave behind a maintainable code base and a documented data center, but the company being left has to do its due diligence as well.