dk has asked for the wisdom of the Perl Monks concerning the following question:

Hello monks,

I'm here with a non-trivial question, which confuses me greatly, and I'd very much like to seek advice of the wise. My problem is that suddenly the company I'm working in, declared that CPAN modules I was working on during the employment should be removed from there, even though previously we had a solid (but unwritten) agreement about me releasing them as open source. The declaration is not final yet, because I had some arguments to defend the modules and the common good they serve. The current status is that I need to file a written request for each of the modules, and their destiny will be reviewed and decided on separately.

Hopefully I'm panicking for no reason, hopefully my arguments will be listened to, but if not? I'd be really frustrated if I need to withdraw my own modules with my own hands. Are there any really good bullet-proof arguments I can put in the requests? Were there any precedents like mine? Any help will be appreciated!

Update: People, you are fantastic! Thank you so much. I won't even need remembering arguments and shaping up my defense. I'll just send them a link to this thread.

Replies are listed 'Best First'.
Re: Need arguments to keep my modules on CPAN
by shmem (Chancellor) on May 24, 2009 at 22:00 UTC

    Are they really your modules? I mean ownership, not authorship. Modules written during working hours may very well belong to the company, but there are also companies which adhere to the "all your base are belong to us" point of view, considering as their own even modules you developed in your free time, as long as they are "related to the proceedings of the company".

    That aside, ask them how much benefit they have drawn from the countless module authors and perl porters. Tell them that a copyright line mentioning the company will benefit them more than parsimony. Tell them that collaborating is much more productive than avarice. Tell them that modules they release will be tested by cpantesters, and eventually reviewed, bugs will be discovered the developers themselves would never realize, and releasing them will greatly improve their quality - all for free! What would they do without CPAN? How much code would your company have to write? Besides, if you develop a module to scratch some itch, chances are that others have the same itch, and will eventually release a module for that, regardless of your company's policy.

    And tell them about backpan... deleting is useless ;-)

    update: and tell'em: not the written module, but the understanding and skill which made that module possible, is your and your company's software capital.

Re: Need arguments to keep my modules on CPAN
by GrandFather (Saint) on May 25, 2009 at 03:29 UTC

    If you have had just one bug report for any of the modules, then you can claim (with justification) that your code is getting free external testing and that that is to the direct benefit of the company. If you have had a bug report with a suggested solution, and maybe even supporting unit test code, then you have a clearly winning argument.

    Some of the module code I've released to CPAN has been developed on company time and the company is happy for me to do that. It was a real bonus when the first bug report come in and it fixed a potential issue in production code!

    True laziness is hard work
Re: Need arguments to keep my modules on CPAN
by Herkum (Parson) on May 24, 2009 at 22:27 UTC

    As mentioned before, companies can claim code that was written as it relates to their business, even if it is in your free time. However, I would be very clear about the modules as they relate to their business.

    For example does the module you put on CPAN really relate to their specific industry. You make a screw, it would be hard for them to claim that their Accounting business would depend on the type of screw that you just built, too generic. Maybe if you wrote some accounting type modules, there is business relevance but not something general that anyone in other industries can use as well.

    Be polite about it, but make sure that they understand, they cannot lay claim to everything that you wrote just because they say so. Negotiate, but if you leave there really is nothing to prevent you from reimplementing those modules again on your own time as long as they are not trade secrets or patents.

      I would like to point out for those reading this thread that it very much depends on what you as the employee has signed regarding intellectual property. I know in this case, dk indicated he had a verbal agreement but didn't mention what was signed when onboarded with the company. If you sign a legally binding contract, as a number of employees in IT do, not only can the company lay claim to what you write on your free time - they can do so even after you are no longer employed by them. A non-compete and intellectual property contract is usually very specific in terms of time and area so it is best to read carefully before signing.

      Cheers - L~R

        or NOT signing...
Re: Need arguments to keep my modules on CPAN
by swampyankee (Parson) on May 25, 2009 at 01:48 UTC

    First suggestion? Unless you've got witnesses to an oral agreement giving you an exemption, and if there is some sort of intellectual property agreement you've signed or implicitly accepted as a condition of employment, you're going to need a very good lawyer. The company is likely to have deeper pockets, and most of the high cards. Even if you're absolutely right, they can tie you up in court until your grandchildren die of old age.

    Corporations don't have morals; they have interests, and your best chance of winning this argument is to show that it's in the corporation's best interest to leave the subject modules on CPAN. Right and wrong don't really come into the issue.

    Information about American English usage here and here. Floating point issues? Please read this before posting. — emc

Re: Need arguments to keep my modules on CPAN
by Burak (Chaplain) on May 24, 2009 at 22:03 UTC
Re: Need arguments to keep my modules on CPAN
by dsheroh (Monsignor) on May 25, 2009 at 10:12 UTC
    If the code was legitimately released under an open license (which is, admittedly, a potentially-very-large "if"), then the open-licensed versions are out there and there's not much that can be done about it, as the license allows anyone who has the code to redistribute it, including putting it back onto CPAN. The owner can choose to release new versions only under closed licenses (or to not release them at all), but the cat's out of the bag on the open versions and the best you can do is to fork the code into separate open and closed versions.

    If it wasn't legitimately placed under an open license, well... you may find yourself in need of a very good lawyer once they realize that you released code you didn't own and claimed that it was licensed under terms you weren't authorized to offer.

Re: Need arguments to keep my modules on CPAN
by Herkum (Parson) on May 25, 2009 at 14:57 UTC

    Find or get an email that says that they want you to remove the CPAN modules. Something like this,

    You: 'My boss' had previously approved my releasing modules on CPAN before without issues.
    Them: We know and we changed our minds because we don't like it.

    Why do this? It is written proof that they acknowledge allowing you to release the code. You are giving yourself legal standing to say you were not a cowboy who was releasing code willy-nilly without some sort of approval. Keeps you from getting in big trouble.

Re: Need arguments to keep my modules on CPAN
by Your Mother (Archbishop) on May 26, 2009 at 04:07 UTC

    Some fantastic answers above. There are many positives, as already mentioned, for the company to keep it open and out there. And that's the best way for you to approach the issue with them. I'll mention one of the negatives in case those involved end up reading this thread: this sort of nonsense from a company hurts its reputation among developers and can even spark boycotts. For myself, for example, if you come back and report you were forced to take the stuff down, I'd spend the time to look up that company and make sure I publicize the fact that it's not the kind of place a developer who had a choice would want to work. The ill will of your work pool is a much larger loss than sharing some code with the competition.

      Especially when "the competition" fix your bugs for you.

      True laziness is hard work
Re: Need arguments to keep my modules on CPAN
by djp (Hermit) on May 26, 2009 at 03:49 UTC
    An argument in your favour: if the modules are on CPAN, and you leave the company, you will continue to maintain them, for nothing. If the modules are closed, they'll have to pay for maintenance, one way or another.
Re: Need arguments to keep my modules on CPAN
by andreas1234567 (Vicar) on May 31, 2009 at 17:28 UTC
    Before handing out advice like get yourself a lawyer, it is worth remembering that not all us live in the home of the brave, where apparently everyone and his dog can sue anyone for anything.

    The OP's home node suggests he lives in Legoland, where I believe the you-never-told-me-the-coffee-was-hot-now-I-want-millions lawsuits are less frequent.

    No matter how great and destructive your problems may seem now, remember, you've probably only seen the tip of them. [1]