13

I've been working on various projects at home and at work, and over the years I've developed two main APIs that I use in almost all AJAX based websites. I've compiled both of these into DLLs and called the namespaces Connell.Database and Connell.Json.

My boss recently saw these namespaces in a software documentation for a project for the company and said I shouldn't be using my own name in the code. (But it's my code!)

One thing to bear in mind is that we're not a software company. We're an IT support company, and I'm the only full-time software developer here, so there's not really any procedures on how we should write software in the company.

Another thing to bear in mind is that I do intend on one day releasing these DLLs as open-source projects.

How do other developers group their namespaces within their company? Does anyone use the same class libraries in personal and in work projects?

Also does this work the other way round? If I write a class library entirely at work, who owns that code? If I've seen the library through from start to finish, designed it and programmed it. Can I use that for another project at home?

Thanks,

Update

I've spoken to my boss about this issue and he agrees that they're my objects and he's fine for me to open-source them. Before this conversation I started changing the objects anyway, which was actually quite productive and the code now suits this specific project more-so than it did previously.

But thank you to everyone involved for a very interesting debate. I hope all this text isn't wasted and someone learns from it. I certainly did.

Cheers,

Connell
  • 335
  • 3
  • 11
  • 12
    I think this question needs a warning like "Legal minefield ahead" – Matt Ellen Jun 27 '11 at 10:10
  • I'm guessing there's nothing in your contract about who owns the code written during work hours? – chris Jun 27 '11 at 10:10
  • Nothing in the contract at all no. It's a standard contract for the company - not a word about software development at all. – Connell Jun 27 '11 at 10:15
  • 6
    it doesnt have to say anything about software in particular. Once they pay you for your time, anything you do in that time belongs to them. – gbjbaanb Jun 27 '11 at 10:21
  • 1
    This is where the problem lies though. What I use at home, I did in my own time. I, however, have an edited version of that code for a work project, which I **edited** in their time. – Connell Jun 27 '11 at 10:25
  • 2
    @Connell - Not a lawyer either and it depends on the country you're in, but usually there may be a grey area about anything you do in your own time, anything you do in their time is almost certainly theirs and they own the IP. The short version - it's not your code, it's theirs, you just wrote it. – Jon Hopkins Jun 27 '11 at 10:27
  • @MattEllen that's actually very interesting. Is there an official source for this I may have a reference to? – Connell Jun 27 '11 at 10:30
  • @Connell: I retract my previous comment. Copyright is only in favour of contractors not employees. [Software Development: Who Owns The Copyright](http://www.lawdit.co.uk/reading_room/room/view_article.asp?name=../articles/2062-Software-Development-who-owns-the-Copyright.htm), [Copyright in an employee’s work](http://etclaims.co.uk/2008/02/copyright-in-an-employees-work/) – Matt Ellen Jun 27 '11 at 10:37
  • @Matt Thank you! Reading the forth paragraph of the second link you sent me, if I state in comments within the code that this is code was originally developed my me in my own time and outside of my workplace that I am prepared to use for my employer's benefit? But then technically it's theirs anyway even if I did do it in my own time. Does that mean that all my home projects are technically my companies? What happens if I start generating revenue from them? :/ – Connell Jun 27 '11 at 10:48
  • @Connell: I'm afraid I can't answer those questions. I'm not a solicitor and I don't know how your employer works. At the end of my day I stop working on things for my employer. Any work I do at home is exclusive to me, and I've confirmed this with my employer, so long as it doesn't compete with their business. – Matt Ellen Jun 27 '11 at 10:55
  • 2
    @Matt I think I'll have to have a chat with my employer then. See if I can get it in writing, who owns code that I do in my time. One final question. If I release the home code as open-source, that would give anyone the rights to use and edit my code, including my employer? Wouldn't that get round the issue? Thanks for your help! – Connell Jun 27 '11 at 11:02
  • 1
    If you release code under an open source licence then you are asserting ownership of the code. This will solve the issue, if the code you have written is definitely owned by you and you choose a licence your employer can work with. – Matt Ellen Jun 27 '11 at 11:05
  • If you release that code as open source you are in fact creating a legal tool ( the open source license ) which could allow any user of the software to force your company to release the entire source code as open source by law. It's enforceable by court injunction. – jcpennypincher Jul 05 '22 at 04:34

8 Answers8

12

If your company is paying you to code, it's their code. I wouldn't release it as an open source project unless you have their permission.

RoboShop
  • 2,770
  • 6
  • 29
  • 38
  • I've written probably 90% of this project at home. I've made a few changes at work, and in fact, I don't use any of these changes at home at all, so if I released it without these changes? Would I need to ask for permission then? – Connell Jun 27 '11 at 10:14
  • 1
    @Connell : Firstly I am not a lawyer. If that was the case, I would make sure that I would make clear separations between your API and their code. I wouldn't even have the source code at work, and just reference the DLL. – RoboShop Jun 27 '11 at 10:19
  • @Connell : And also to reiterate once again, I'm not a lawyer. That is just what I would do... – RoboShop Jun 27 '11 at 10:21
  • Yeah I thought about sticking it in a DLL. I am getting a bit worried about it all, so I have to take some sort of action.. I think my options are either to use a DLL (but that way if I no longer work here and they need changes making to that layer of code, they'll need to re-write it, which they might not be happy about), or rename and re-write it with a slightly different design. – Connell Jun 27 '11 at 10:32
11

(Standard disclaimer - I'm not a lawyer...)

From your profile you appear to be in the UK.

In that instance it depends on how you're employed. If you're a permanent member of staff then almost certainly your employer owns the works. You wrote them and have the rights to be identified as the author (that is you can tell people that you wrote them) but the ownership of the code and the intellectual property therein resides with your company.

If you're a contractor then there might be a case that you have some claim to them but it would depend on the nature of the contract. Generally speaking most UK IT contractors are classed as workers for hire which means that again the IP rests with the company rather than the individual. Certainly talk of a standard employment contract suggests that this will be the case whether you be permanent of contract.

Under these circumstances you have no right to release them as open source (or indeed to take them on to your next employer) and you should think about them in the same way you think about any other piece of proprietary software and act accordingly - they're not yours, you just happen to have access to the source code.

EDIT: Regarding the fact that you developed some of it in your own time. The minute you started using it at work without asserting your rights and licensing it to the company in advance you made it very murky as it's now very hard to show what was done when. From what you're saying the code libraries have been tested, debugged and fixed in work time (and the company owns anything done in their time), plus the obvious overlap with work you were doing for them (as evidenced by the fact that they fulfilled a requirement the company had which you were working on) means that they do have a claim and probably a pretty strong one.

The Unite Union has a piece on this. The key section appears to be:

"There are express statutory provisions:

· Section 11 (2) of the Copyright, Designs, and Patents Act (CDPA) 1988 and

· Section 39 of the Patents Act 1977

dealing with ownership of employee works. Under these provisions, employers essentially gain ownership of intellectual property rights in respect of any works created by an employee which he/she

· was required to produce under the terms of their employment contract or

· could reasonably be expected to produce under the terms of that contract.

Obviously, the wider the job description of the individual employee, the more difficult it will be for him/her to avoid the effects of Sections 11(2) and 39 above.

Even if the work is created by the employee in their own time and using their own resources, the employee will not necessarily be able to claim any rights in that work, if the employer shows that the nature of the work created was that which could be reasonably contemplated as part of the employee’s duties. This is demonstrated by the case of Missing Link Software v Magee [1989]FSR 361. There, the court held that copyright in a software programme written by an employee outside his work time and on his own equipment was made in the course of employment, as it fell within the scope of the tasks that Mr Magee was employed to carry out."

Basically because these libraries met a specific requirement on a project that you were working on for them, they have a claim on them.

EDIT 2: You need to understand that the fact that there are two versions of the code is probably irrelevant. The code meets a need the company has on a project you were working on and you wrote it while employed by the company (even if it was in your own time). That gives them a strong claim on the "core IP" of the code, not just on a specific copy of it you happened to implement on their project - viewing it as two branches doesn't change that.

It's worth noting that even rewriting it would be termed a derivative work and the IP would still sit with the company, even on a new version.

I think you have an idea of what you want to be true and you're trying to twist things to make that so but from what you're saying I believe the company has pretty strong claim to the code that you're not going to be able to work around.

Jon Hopkins
  • 22,734
  • 11
  • 90
  • 137
  • Everyone seems to be saying similar things. The one thing I am really confused about it the majority of people are telling me not to release them as open-source. If it is my code, that I've developed in my own time, with my own IDE on my own computer. Surely I have the rights to release that code? This then would allow me to use and edit this code for the company, as if it were any other open-source code? – Connell Jun 27 '11 at 10:58
  • @Connell - see edit above, the TL;DR version: the rights probably still belong to the company not you. – Jon Hopkins Jun 27 '11 at 11:26
  • Very good answer! Thank you. I've decided I'm going to re-write the libraries at work. Although it still does a very similar thing, that code will be the company's. Nothing can be said about the similarity between the projects, as no contract or law takes away my right to learn from home experiences to write software at work or vice versa. – Connell Jun 27 '11 at 11:33
  • 1
    @Connell - I think you've missed the point. The code that exists is already the company's - you need to rewrite them at home entirely in your time to have a version you own. Even then it's going to be questionable. I see from your website that you're looking to leave. The best thing to do would be to get a new job with a contract that makes it clear who owns what and then start work on a rewrite. – Jon Hopkins Jun 27 '11 at 11:36
  • My code at home has not been touched within company time. The code at the company is an edited version of my home code. The company project that is using this code is unfinished, whereas two of my home projects are currently live and using these objects. When I remove these objects from the company project, I don't think that makes any of the code property of the company. Or does it? – Connell Jun 27 '11 at 11:48
  • @Connell - It's not about specific copies of the code. This is code that that meets a specific requirement they have, you wrote it while employed by them (even if it was in your time) and you've used it in their project. While it's not 100% clear who owns it, they have a strong claim that you can't ignore. The fact it has been branched that doesn't change anything - their claim is on the fundamental core of it, not a specific version. You need to accept that this code probably isn't yours and that nothing you can do is going to change that. – Jon Hopkins Jun 27 '11 at 12:03
  • 5
    @Connell - You say that the code at home has not been touched in company time. Can you prove that? Absolutely and conclusively? The fact that there is a version at your work that is a modified version of the code muddies the waters too much for proof. You have given your employer ownership of the code as a version of it resides in their system. Their VCS (They have one I assume) will have logs of the versions of the code that (in their eyes) were developed on their time, so just removing it will not make any difference except that they can now claim to have paid to develop it twice. – uɐɪ Jun 27 '11 at 12:06
  • @Jon I see what you mean about the requirements. Thing is, it's a bunch of objects that handle a relational database. An ORM if you like. It's been done before and no-one will be able to justify which project it was designed for, because many projects use a relational database as a back-end. Even if I re-write it at home, it's bound to be similar, simply because it's the same developer. – Connell Jun 27 '11 at 12:29
  • @Ian We don't have a VCS. I haven't given my employer ownership of the code simply by putting it on their system. If I download any open-source code, it doesn't make it my employers property simply because it's on their system. – Connell Jun 27 '11 at 12:31
  • I've just spoken to my boss and edited the question. Again, thanks. – Connell Jun 27 '11 at 12:57
3

There have been cases where code written at home whilst working for a company was considered owned by the company. I'm not sure if that was ever tested in court but I think its pretty obvious that any code you write using company equipment, during company time (ie time you are sitting at your desk being paid by the company to write code) and for company software belongs to the company. You entered into an agreement with them (check your contract of employment) that says they will give you money in return for you to write code for them. You wouldn't be impressed if they said that they would withhold your salary becuase they intended to give it charity instead.

So, in short, it isn't your code. You do not own it. The namespaces should the company name because it belongs to them. They paid someone to write it! (ie you).


  • caveat: you need to check your contract, or terms of employment to determine if the above really is true in your case, I would say it is anyway as they could easily sack you for doing your own thing on company time at the very least, and then claim it belongs to them anyway. the best advice for the future is to keep what you do for yourself and what you do for your employer totally separate.
gbjbaanb
  • 48,354
  • 6
  • 102
  • 172
  • Thanks for the heads up, I think I'll re-write the code for the company and keep that separate. I figured if it were my code and I was using it for the company, it's almost as if I own the license and am giving permission to the company to use it. – Connell Jun 27 '11 at 10:24
2

I think there is a place where you made a mistake. The problem is that you wrote code at home in your own time, and then found that the code would be useful at work, so you just started using it there as well. What probably would be the proper thing to do in this case, is not incorporate the code that was done outside work into your company's code. You would either have to use company time to rewrite the functionality you already wrote, so their could use it. "But that's a big waste of time" you say. So the other option is that they license/buy the code from you for a price or for free so that they know they are legally allowed to use the code. I think what might be going on in your employers mind is that they are wondering what happens to that code when you leave? Do they still have the right to use that code?

Many programmers work on stuff in their spare time that would probably be useful to their employers, but you shouldn't start mixing the code without approval from the company.

Kibbee
  • 599
  • 6
  • 11
2

Future programmers need to know who wrote the code in case the level of documentation is inadequate (which is sadly often so).

I always sign my name for this reason. And it also reminds me that I need to make sure I do a great job, because I know that if I don't some angry colleague will call me in the middle of the night! :)

Alex
  • 121
  • 1
  • 3
    That's what source control logs are for. – Adam Lear Jun 27 '11 at 13:51
  • Yes, that is true, but as a freelance developer I've too often been assigned to projects where source control was either misused or not used at all. It doesn't take more that a few seconds to add your 'stamp' to your source files. Changes to existing codes I always document in the source control systems where available... :) – Alex Jun 27 '11 at 14:01
  • Except when the code gets moved to a fresh repository for whatever the reason and the logs are gone. Had a situation like this recently, where an issue couldn't be traced back because of it. – scrwtp Nov 13 '11 at 11:55
0

All answers seem to concentrate on ownership.
But ownership and authorship (authors and owners, resp) are different notions.
Author is linked to moral, or inalienable, rights which are:

  • perpetual
  • inalienable
  • Imprescriptible right
  • Unsizeable
    If a work already created, and the proceeds of its exploitation, are liable to be seized by creditors, as the case may be, the latter may not demand that said work be divulged for the purpose of recovering the moneys due by its author.

Moral, or inalienable, author rights cannot be waived under most jurisdictions.

While ownership is related to Economic, aka property, rights.

Why not just to follow the practice of how scientific articles are being signed, when workers are frequently work as visiting researcher/professor, employed /financed nu multiple entities. or under independent financing of 3d parties: author name + where is the work had been done + credits who financed the work.

Note that these are many to many relationships (one author, anв his work, can have multiple affiliations and financing).

0

As almost everyone has said, it is probably the case that the company has some claim on the code (with phrases like "I've written probably 90% of this project at home." it's murky).

One of the things to consider in the future is to carefully review employment contracts and either get a blanket 'own time, own kit -> own ownership' or get a per-project waiver from the company. That is of no help at the moment, unfortunately.

Vatine
  • 4,251
  • 21
  • 20
0

What is wrong with using some other name? The name of your son/daughter/cat/dog/hamster? Then you don't have to have these difficulties - you have just chosen a 'friendly' name.

Mathew
  • 149
  • 2
  • Strangely enough I was just looking into this. I'm trying to think of a nice unique project name for it :) – Connell Jun 27 '11 at 16:13
  • ... Currently I use 'Theodore' - the name of my neighbour's cat. This never comes across as anything other than harmless. Other names I have used have 'seemed a good idea at the time' and not worked out in the long run. Here are a few to get you thinking: http://applemuseum.bott.org/sections/codenames.html – Mathew Jun 27 '11 at 16:22