Home AMX User Forum AMX General Discussion

Who owns the code?

There is a discussion about this going on right now on RC: http://www.remotecentral.com/cgi-bin/mboard/rc-custom/thread.cgi?17836,1

One of the posters, Julie Jacobson, writes for CEPro and other industry rags. She is about to publish an artical basically saying if you buy AMX or C then you are asking for trouble because of the issue of code ownership and that people should instead buy C4, Lifeware, etc.

It might be worth it for a few of us to set her straight.
«13

Comments

  • Spire_JeffSpire_Jeff Posts: 1,917
    Tony,

    My doctor is advising me to avoid your links in the future as my body cannot take the dramatic rise in blood pressure caused by them!

    The problem over there is that they have a couple of different issues in play and some of them are not being properly addressed. I am thinking about spending some time to register there and write a reply, but I'm not sure if I want to waste an hour of my time to do it as I feel it will fall on deaf and/or dumb ears.

    Jeff
  • RC is certainly not my favorite place in the world, but I thought the discussion could benefit from input from the knowledge based community.
  • ericmedleyericmedley Posts: 4,177
    We've had several discussions on this type of thing over the years. As someone who's worked in the Intellectual property world for years, I've always been stunned at how urban ledgend has become legal fact in the eyes of normally sane people.

    I've spoken with so many people who just think its thier god-given right to download all manner of music, movies software for free; that expecting them to pay for it is the most absurd thing in the world.

    I've also seen many folks who write intellectual property that do not understand how the laws work. I've seen programmers, on salary with a company, rabidly defend the idea that they, not the company, owns the rights to the code.

    In all these magazine articles I've read on the subject, I find that it is extremely rare for any of the writers to actually contact a intellectual property lawyer and see what the law says.

    There is nothing wrong with the client owning and having the source code. If that's what you want to do, that's fine. However, there's no legal basis for it being a right. If a programmer/company wants to give the client the code, then both parties should sign a contract granting the rights over to the client. Usually, those contracts have language in them saying that the client voids all waranty of the code working properly if they alter it in any way.

    A good example of this in my life is the fact that I as an engineer/producer of music own the copyright on the recording I make. The song(s) are still copright the artists or label, but the recording is mine. In all my artists/producer agreements, there's always 2-3 paragraphs where I, as the recordist, grant permission to the artist/label to use the recording for specific purposes. I also give up the right to negate that right without third-party moderation. (I can't get mad and revoke the rights after they've mass-produced 10,000 CDs of the record)

    This is standard proceedure in music law. And it makes good common sense. However, making the leap to saying the artist has some kind of granted rights to the recording is not factual.

    Now, I'm rambling... I'll stop...
  • a_riot42a_riot42 Posts: 1,624
    ericmedley wrote: »
    We've had several discussions on this type of thing over the years. As someone who's worked in the Intellectual property world for years, I've always been stunned at how urban ledgend has become legal fact in the eyes of normally sane people.

    You make it sound as if IP law is all cut and dry. It is a very murky area of the law. In some cases the programmer does own the code they write, it depends on many factors like your employment agreement, job description, etc.
    Paul
  • ericmedleyericmedley Posts: 4,177
    a_riot42 wrote: »
    You make it sound as if IP law is all cut and dry. It is a very murky area of the law. In some cases the programmer does own the code they write, it depends on many factors like your employment agreement, job description, etc.
    Paul

    I suppose in one sense what you say is true. But the laws are pretty well established that a 'work for hire' is copyright the hirer. I've seen a lot of cases where there is an argument on what constitutes work for hire. There are a lot of factors. I can tell you that if you're employed by a company that pays you a regular salary or hourly wage, provides you with space on site, manages the schedule and books the clients, 100% of your code will be considered work-for-hire.

    If you contract, work from home, develope sections of code from home, work a significant amount of time outside of work, then it gets greyer.
  • DHawthorneDHawthorne Posts: 4,584
    This is one of those areas where people seem to think that if they feel strongly enough about a position, it must really be that way. The effect is strengthened when official rules and even laws are not strictly enforced, and you get the "well, I always did it that way, and no one stopped me" argument. I've seen similar sentiment right here on the forums ... want to put an image on your touch panel you downloaded from the web? It's copyrighted? Well, no one's likely to notice ...

    That entire way of thinking is very dangerous, because if they decide they do want to enforce these things, you won't have a leg to stand on in court. It's not what you "feel" should be OK, it's what the pertinent laws say, and how courts are interpreting them.
  • a_riot42a_riot42 Posts: 1,624
    ericmedley wrote: »
    I suppose in one sense what you say is true. But the laws are pretty well established that a 'work for hire' is copyright the hirer. I've seen a lot of cases where there is an argument on what constitutes work for hire. There are a lot of factors. I can tell you that if you're employed by a company that pays you a regular salary or hourly wage, provides you with space on site, manages the schedule and books the clients, 100% of your code will be considered work-for-hire.

    If you contract, work from home, develope sections of code from home, work a significant amount of time outside of work, then it gets greyer.

    One example would be if I am hired as an IT admin for a company and I write admin scripts all day. All that code is the company's. But if I also write a small program that saves the accountants many hours of labor because I recognized a need, then in all likelihood I own that code, even if I wrote it at work on company time because it was outside the scope of my job description.
    Paul
  • For me it is not about who owns the code, but who has rights to use the code.

    If you turn over the code to an end user - do you release all rights to use that code or parts of that code for yourself in future projects?

    Or do you you turn over the code retaining usage rights for yourself? That is the way I tend to approaoch it on the few contracts I have written up.

    At a recent companies master class, this question was asked and a slim majority said they have a contract with license rights granting the end user rights to use the code for that project only.

    This is kind of like saying you have usage rights to the CD you purchased but can not distibute that. We all know how well that has worked...

    But legallay it seems the only way to go about it. You can not prevent people from reusing stuff, just prosecute them afterward if there is the paper work to allow that.

    Or you can keep all the code in your warehouse and not give it out. I've seen more than one lawsuit over that. Seem like a good way to piss off a customer.

    Don't get me started on the work-for-hire thing. there is a consultant in the area that always has that in his bid-specs.

    Byt the way - if you keep the code and not turn it over to the end user, you are leagally bound to keep a copy of that code protected for 7 years. This means safe redundant storage. (again this came out in a recent masters training class)

    And yes Tony - I didn't sign a contract with you, and I do retain all rights to anything that I provided you.
  • ericmedleyericmedley Posts: 4,177
    Forget about code. All advice (good or bad) given on this forum is copyright ME! :P

    If you use any of that advice, please send a check payable to me on a per use basis... :D
  • ericmedley wrote: »
    Forget about code. All advice (good or bad) given on this forum is copyright ME! :P

    If you use any of that advice, please send a check payable to me on a per use basis... :D

    I like your thinkin'. I'll tell you what - I'll send you a use check for any advice I use, if you will refund me for any advice I don't use.
  • ericmedleyericmedley Posts: 4,177
    JohnMichnr wrote: »
    I like your thinkin'. I'll tell you what - I'll send you a use check for any advice I use, if you will refund me for any advice I don't use.

    :D

    fair nuff!
  • a_riot42a_riot42 Posts: 1,624
    It is extremely rare in the programming world to supply code along with the program. Why would AMX code be any different than any other program where you either buy the binary or license its use but the code stays the property of the company? If you sell your code, I can't imagine you would be in business very long since you are selling all your IP every time you do this and giving someone else the opportunity to start their business based on your code.
    Paul
  • Thomas HayesThomas Hayes Posts: 1,164
    I don't know of any video game companies that leave their code 'open source' so why would anyone expect us to. If there is an issue with anything I do, I will refund before supplying the code. If everything was 'free' than there would be nothing.
  • jweatherjweather Posts: 320
    Opening the code to the customer is more common in custom software development in the business world, where you might only have a handful of customers who are directly funding the development process. Those customers frequently want some kind of assurance that if you (the developer) disappear, they won't lose their investment completely. This may be in the form of a software escrow agreement. Access to the completed source code may also be part of the original agreement between the two companies, so the company paying for it can maintain the software themselves or hire someone else to do it.

    Your home or commercial automation customer may want assurances that if you go out of business or get hit by a bus, they can still have another dealer develop their system without starting from scratch. Depending on the customer (state governments for example), access to source may be a legal requirement that they cannot or will not bend on.

    The trickiest part, in my opinion, is that not ALL of the code you use for a given customer is specific to that customer, and much of it effectively represents "trade secrets" that you are not willing to share with other dealers who might work on the same system. In these cases, some kind of escrow agreement is probably best. This tells the customer that you are willing to support your code, and that if you don't keep up your end of the bargain, they can get the code from the escrow provider and take it to a new dealer.
  • a_riot42a_riot42 Posts: 1,624
    jweather wrote: »
    Your home or commercial automation customer may want assurances that if you go out of business or get hit by a bus, they can still have another dealer develop their system without starting from scratch. Depending on the customer (state governments for example), access to source may be a legal requirement that they cannot or will not bend on.

    That is the first I have heard of that arrangement. The US govt is a large purchaser of MS products, However, I doubt if MS has an arrangement to release code to them should they go out of business.
    If a client wanted the code for a project (and it happens occasionally), we would refuse the job.
    Paul
  • mpullinmpullin Posts: 949
    a_riot42 wrote: »
    That is the first I have heard of that arrangement. The US govt is a large purchaser of MS products, However, I doubt if MS has an arrangement to release code to them should they go out of business.
    If a client wanted the code for a project (and it happens occasionally), we would refuse the job.
    Paul
    Why would they need one? Microsoft is the biggest, most visible software company in the world. It is not going anywhere anytime soon. (And if it did they would probably get a bailout, lol)

    Some of these companies out there that install AV & Integration systems though are a totally different story. Many of them are run by a small handful of guys and fade into the woodwork when things go poorly, leaving the customer with unfinished / poorly written control systems and no way to get support - leaving a half million dollars' worth of equipment worthless. It is this kind of company that is responsible for this kind of arrangement's existence. It is a real problem that creates a black eye for our industry.
  • ericmedleyericmedley Posts: 4,177
    mpullin wrote: »
    Why would they need one? Microsoft is the biggest, most visible software company in the world. It is not going anywhere anytime soon. (And if it did they would probably get a bailout, lol)

    Some of these companies out there that install AV & Integration systems though are a totally different story. Many of them are run by a small handful of guys and fade into the woodwork when things go poorly, leaving the customer with unfinished / poorly written control systems and no way to get support - leaving a half million dollars' worth of equipment worthless. It is this kind of company that is responsible for this kind of arrangement's existence. It is a real problem that creates a black eye for our industry.

    We have inherited a few of the systems you describe. I won't mention where or who.

    It was a guy who was a trunk slammer from up the coast a way. He hired an AMX programmer to write the code for him and he did the install himself. It was left in about a 70% done state. The guy got out of the biz and left the owner high and dry.

    We knew the guy who wrote the code and he did a fine job. We ended up rewriting and redesigning the entire system. We pulled the gear and re-burned it in and reinstalled it. So even having the full code did no good in this situation.

    Good points!
  • viningvining Posts: 4,368
    jweather wrote:
    The trickiest part, in my opinion, is that not ALL of the code you use for a given customer is specific to that customer, and much of it effectively represents "trade secrets" that you are not willing to share with other dealers who might work on the same system. In these cases, some kind of escrow agreement is probably best. This tells the customer that you are willing to support your code, and that if you don't keep up your end of the bargain, they can get the code from the escrow provider and take it to a new dealer.
    Of course anything that was not developed exclusively for that customer that could be considered as a "trade secrets" like most of are modules could be included only in their compiled form. But even then a compiled module could be exported to another file and used by another dealer, they just wouldn't have the ability to modify it but most of the time there isn't a need for modifications so that doesn't fixed the potential problem. If you generate a key for a module that could be passed and used in another system as well. If you make the module so that it is hard coded to the master's serial number or unique ID you'll have headaches and problems if the master ever crashes and needs to be replaced.

    My customers often ask if I plan on dying and of course I don't and tell them so but they're not really concerned so much about the code but the complexity of the entire system, the stuff they can see. All those wires and boxes are what's got them puzzled and I don't elaborate on the complexity of the programming and give them something else to worry about.

    It may be selfish but If I'm dead they're on there own. :D Ok I don't really think that way but I'm small time resi and maybe if I had more of a coporate structure I'd think escrow accounts and the like. Who knows maybe some day I'll get that professional but right now I'm happy if I can get 6 hours of sleep a night.

    DHawthorne wrote:
    The effect is strengthened when official rules and even laws are not strictly enforced, and you get the "well, I always did it that way, and no one stopped me" argument. I've seen similar sentiment right here on the forums ... want to put an image on your touch panel you downloaded from the web? It's copyrighted? Well, no one's likely to notice ...
    Well that descibes me to a "T". I'm getting better though.

    a-riot42
    The US govt is a large purchaser of MS products, However, I doubt if MS has an arrangement to release code to them should they go out of business.
    If Microsoft was contracted by the gov to ceate a custom application/program I'm sure they would require the source. But just cuz the gov uses Windows OS of course not. That's an entirely different ball of wax.
  • a_riot42a_riot42 Posts: 1,624
    vining wrote: »
    If Microsoft was contracted by the gov to ceate a custom application/program I'm sure they would require the source. But just cuz the gov uses Windows OS of course not. That's an entirely different ball of wax.

    You can't possibly be serious about that. Do you think the gov't owns the voting machine code for instance?
    Paul
  • viningvining Posts: 4,368
    a_riot42 wrote:
    You can't possibly be serious about that. Do you think the gov't owns the voting machine code for instance?
    I can be very serious about that. It depends on how the contracts are drafted and what the terms are. Maybe like alot of our customers they buy a completed solution but other times they may want to contract and retain all rights and retain all records and that's their perogative. You as a providers of services can either accept or decline to work with those terms. Obviously if you decline you won't be awarded the contract.

    In regard to the voting machine comment I believe the goverment did require the source code in order to perform independant 3rd party verification of integrity.
  • a_riot42a_riot42 Posts: 1,624
    vining wrote: »
    In regard to the voting machine comment I believe the goverment did require the source code in order to perform independant 3rd party verification of integrity.

    I would love to see proof of that, as it contradicts the information I have. The voting machines and code are so easy to hack and corrupt that it is impossible to think any verification was done at all. The gov't could access the source code, but not because they were given it, but because the voting machine code was leaked to the internet....twice.

    http://citp.princeton.edu/pub/ts06full.pdf
  • viningvining Posts: 4,368
    Yeah I saw the 20/20 or 60 Minute piece last year with all that right wing conspiracy liberal rethoric. The piece you posted and that documentory piece really means nothing and was intended to insight fear and paranoia in the minds of you gullible saps who believe this sort of tripe. Virtually everything can be hacked and if I recall for these to get hacked you need physical access since they aren't connected to any sort of network. If a person did have access they would also need to be extremely smart in order the get in and out fast enough to be undetected. It's not a likely scenario and even if one got compromised it's no big deal.
  • a_riot42a_riot42 Posts: 1,624
    vining wrote: »
    Yeah I saw the 20/20 or 60 Minute piece last year with all that right wing conspiracy liberal rethoric. The piece you posted and that documentory piece really means nothing and was intended to insight fear and paranoia in the minds of you gullible saps who believe this sort of tripe. Virtually everything can be hacked and if I recall for these to get hacked you need physical access since they aren't connected to any sort of network. If a person did have access they would also need to be extremely smart in order the get in and out fast enough to be undetected. It's not a likely scenario and even if one got compromised it's no big deal.

    You need to read the article I posted.
  • viningvining Posts: 4,368
    vining wrote:
    But even then a compiled module could be exported to another file and used by another dealer, they just wouldn't have the ability to modify it but most of the time there isn't a need for modifications so that doesn't fixed the potential problem. If you generate a key for a module that could be passed and used in another system as well. If you make the module so that it is hard coded to the master's serial number or unique ID you'll have headaches and problems if the master ever crashes and needs to be replaced.
    This isn't true is it? A .tko file incorporated into a system can't be extracted can it. When I wrote this I assumed (no comments) that when you transferred a program to the master with the source included it would zip all your workspace files and store it on the master. This would include your .axi, axs, .irl, .tko, .doc, etc. Having never actually retrieved the source back from a master I never verified this and again I just assumed this would be the case. I decided to retrieve the source this morning from a project out of curiosity and found that only .axi & .axs files are returned.

    So if .tko file are placed in your workspace there is no way to extract and re-use .tko included modules is there? Or is there? It's only if you sell/give and send a .tko file to someone that you don't want to be re-used does hard coding use to a their master comes into play.

    If there isn't and the system uses a substantial amount of .tko modules and the customer or our potential replacement is given access to the source file on the master the code is pretty much worthless since they can't be used in any manner and resent to the master since the .tko files aren't available. Is this correct?
  • HedbergHedberg Posts: 671
    a_riot42 wrote: »
    That is the first I have heard of that arrangement. The US govt is a large purchaser of MS products, However, I doubt if MS has an arrangement to release code to them should they go out of business.
    If a client wanted the code for a project (and it happens occasionally), we would refuse the job.
    Paul

    Turn down good money because you don't want to give the customer the code? Guess it's your business.

    Do you think that there's a thriving black market in ripped off Netlinx code or something? We're not talking about the secrets to the atom bomb here.
  • HedbergHedberg Posts: 671
    a_riot42 wrote: »
    You can't possibly be serious about that. Do you think the gov't owns the voting machine code for instance?
    Paul

    We do work for various government entities: state, local, and federal, colleges, universities, etc. We're asked to provide the code quite frequently. It's typically part of the contract.
  • a_riot42a_riot42 Posts: 1,624
    Hedberg wrote: »
    Turn down good money because you don't want to give the customer the code?

    If the customer wanted to pay for the IP then we might consider selling it, but not hand over IP for the price of a license to use. We have some code that contains trade secrets, so it would actually be against the law for a programmer to give it to a client.
    Paul
  • HedbergHedberg Posts: 671
    a_riot42 wrote: »
    If the customer wanted to pay for the IP then we might consider selling it, but not hand over IP for the price of a license to use. We have some code that contains trade secrets, so it would actually be against the law for a programmer to give it to a client.
    Paul

    Well, I'll leave the legality of releasing Netlinx code with trade secrets (!) to you lawyers. I just program the damned things and do what I'm told. Oh, I also cash my checks.
  • maxifoxmaxifox Posts: 209
    Ericmedley has already clarified the issue in his first post...

    We might tell here various examples of code release pro and contra from our experience... But, finally what the law is saying about that? I suppose this is the basis for all further discussion (the law might though be different from country to country).

    Anyone has obtained the info from lawyers and would like to share his opinion on that?

    Offtop: MS does release code to the govt.
  • a_riot42 wrote: »
    It is extremely rare in the programming world to supply code along with the program. Why would AMX code be any different than any other program where you either buy the binary or license its use but the code stays the property of the company? If you sell your code, I can't imagine you would be in business very long since you are selling all your IP every time you do this and giving someone else the opportunity to start their business based on your code.
    Paul

    I have to throw some more light (or fuel) on this. The university I work for stipulates in each contract that the university will own all code, software configs, etc. Not only do we require all of the code, it is to be in uncompiled, modifiable form. This means that since AMX writes modules and compiles the COMM portions, they cannot be used. This was our defense for people using them improperly and walking away from the job blaming it on someone else. That being said there are some exceptions to the rule, most of which are RMS related.

    Look at it from the perspective of a university where you have rooms spred all over campus. A DVD player goes down in one of these rooms and is replaced with a different player (change in equipment standards). Do we call the programmer back in to change it? No. We change it and save a ton of money. If we allowed the AV companies IP rights on all of the code, we would be forced to get rid of just about all of our AMX stuff and stick with Extron Media Links in 95% of our rooms. We are already in the midst of changing them over as we refresh rooms during our summer projects. To honor IP rights to any one of the many AV contractors that do business with the university, would be the equivalent of us committing financial suicide.

    The commercial AV company I used to work for never played the IP game. Everyone always knew that the client got all of the files, after they paid in full of course. I have never thought of the code I wrote for customers was ever anyones but the paying client.
Sign In or Register to comment.