"Software licenses" for PLC applications

J
Great comments everyone. Here are some of my own:

My main concern in my original question is that as a company we are not sued for re-using one customer's code on the very next project we work on. In some ways it is semantics. Let's be honest, there are only so many ways to start a motor or open a valve. The code I work with is not particularly innovative. In reality we all re-use code all the time - whether you CTRL-C CTRL-V or not! But would a customer who "owns the code" prosecute me for doing this?

To the person who posted saying that if an integrator licensed the code they would never use them and would make sure no one else did: So, the integrators you use have never re-used your code on another project? And you paid them top dollar, because when they wrote your code they were starting from scratch, right?

If a competitor is working in a plant that I wrote code for, obviously he should be able to re-use that code in that plant. And once he has
looked at it, he isn't likely to forget how it was done. Again, there isn't anything particularly innovative, I'm not really all that
concerned about him re-using my code - but it would be nice to put some limits on him.

To the person from CSIA, thank you, we are already members.

Finally, although I have seen a lot of discussion here and a lot of good points, what I have not seen posted is experience. I'd be interested in the perspective of anyone who has attempted to license PLC programs, had a lawyer look at it, been involved in a lawsuit over them, etc.

In the end, it's the lawyers and the courts that will determine the outcome of this issue. I would just as soon leave things status quo, but we need to have protections from lawsuits, and it is unlikely that status quo will provide that.

Jason Greff
Instrument Control Systems
 
S

Steve McAlpin

No I wouldn't prosecute, matter of fact I encourage my integrators to use code they have used in the past. That way the testing of the logic is already done, but don't tell me that I can't give it to another integrator as an example to keep some standard within my plant. I write code too and if I would write code on my own to fix a problem then I would expect that code to be protected, but if I write it for someone that pays me I see it as he is paying for that code so it belongs to him.

Steve McAlpin
Control System Supervisor
Calleguas Municipal Water District
2100 Olsen Road, Thousand Oaks, CA 91360
Phone: (805) 579-7148 fax: (805) 579-3721
Cell Phone: (805) 501-9037
E-mail: [email protected]
 
C
Hi Walt

This is a very germain thread in an area where false assumptions seem to be the rule rather than the exception.

List Manager wrote:
> ---------- Forwarded message ----------
> From: "Walt Boyes" <[email protected]>
>
> But this scenario is about open control. The only reason for
> proprietary code is to prevent someone else profiting from your
> intellectual endeavor. It is ALWAYS cheaper to come in for project #2
> and just swipe the code you worked hard to write.

But, if the code is the customer's property as it has been argued, the law states, you in effect are not authorized to license it. They are. This would mean that you have no control at all as to how your work is used. The GPL would at least prevent a competitor from absconding and selling it for profit as you and the customer and the rest of the world would be entitled to a copy of any and all derivative works. It would seem that if you don't enter into some much more restrictive licensing agreement up front, the GPL would be preferable to the default. I am not at all sure it is the right license for our particular type of code, but it is a known quantity and does prevent your code being used against you to a certain extent.

> The defense, in the absence of licensing or other controls, is to
> charge enough money that the first implementation of the code pays for
> any reasonable use afterward.

Most customers would believe that this is the normal case :^).

> If Microsoft had done that with Windows, it would have cost US$15K a
> copy.
>
> Remember when UNIX and mainframe software was that expensive?
>
> The big problem with open control is that nobody has yet created a
> business model that protects the actual author of the original work,
> and allows the author to profit from the work. What open control does
> is to permit the integrator and the end user to profit at the author's
> expense...just see if it doesn't.

Actually, if GPL is used, everyone profits at the author's expense, but none more so than anyone else. And the author will profit from further development and any and all enhancements in source-capital. And if the author was a fan of Open Source software, he probably had 85% of what he needed in the first place, before he wrote a line of code. If he gets paid the same amount for the solution, he makes out really well. It's an alternative system which has enormous potential for efficiency and greatly reduced costs. But it has to be considered as a system or it is being taken out of context. As you've seen, most detractors ignore context. I can write very sophisticated applications with a very few pages of code by reusing what is freely available. I get paid the value of the solution with the understanding that I will take far less time if I can use the GPL. I release my bits with the customer's consent. He's happy, I'm happy, and the next programmer will have to write even less to make his customer happy.

But, and this is a very important but, there is absolutely no reason that Open Control would force you to GPL your code or change how you normally release it in any way. Please read that last sentence again. This is FUD. Even Dr. Stallman, who thinks OSS is too restrictive, agrees that your work is yours, to license and release according to your wishes. As long as you don't "steal" OSS code and incorporate it into your product thereby violating the author's wishes that it be free. In fact that is what the GPL is all about, protecting the author from having his work used in a manner against his wishes.

> If this is okay to you, fine. If you are a code developer, and you
> think this is fine, I'd like to see your financial statement, or your
> proof of sanity certificate. You either are already independently
> wealthy, and don't care, or you are nuts.

Or perhaps you recognize that the great majority of code is not written for resale. It is written to solve a particular problem and most likely will never be sold again in any case. So the loss is imaginary. Writing for a shrinkwrap software house is the exception rather than the rule.

Regards

cww
 
D

David Campain

Steve

If you buy a car do you have the right to copy the technology in the car and sell it? If you were to hack into the antilock brake system code and modify it, would you be violating the warranty?

Why would you object to having a GPL license that would prevent you from profiting from someone elses work, if it still allows you to make any changes that you need in your system?

It is true though that trying to license the PLC code will not help sales much.

Regards,
Dave Campain
 
Somebody named "undetermined origin" with the initials cww wrote:

> Hi Walt
>
> This is a very germain thread in an area where false assumptions seem
> to be the rule rather than the exception.

Lots of people don't know up from down about copyright. I used to be one of those people until I started making money from writing. Now I think I understand it pretty well.

> > But this scenario is about open control. The only reason for
> proprietary
> > code is to prevent someone else profiting from your
> intellectual endeavor.
> > It is ALWAYS cheaper to come in for project #2 and just swipe
> the code you
> > worked hard to write.
>
> But, if the code is the customer's property as it has been argued, the
> law states, you in effect are not authorized to license it. They are.
> This would mean that you have no control at all as to how your work is
> used. The GPL would at least prevent a competitor from absconding and
> selling it for profit as you and the customer and the rest of the world
> would be entitled to a copy of any and all derivative works. It would
> seem that if you don't enter into some much more restrictive
> licensing agreement
> up front, the GPL would be preferable to the default.
> I am not at all sure it is the right license for our particular type of
> code, but it is a known quantity and does prevent your code being used
> against you to a certain extent.

I am not sure it is, either. The fact that US copyright law presupposes that unless it is a work for hire, the copyright vests in the author doesn't always help here, unless the contract language clearly determines if, or if not, it is a work for hire. That's what courts are for...to fix bad contracts. (wicked grin)

> >
> > The defense, in the absence of licensing or other controls, is to charge
> > enough money that the first implementation of the code pays for any
> > reasonable use afterward.
>
> Most customers would believe that this is the normal case :^).

Yes, and the sad thing is that they firmly believe it, all evidence to the contrary, and nothing you can say will convince them otherwise. Yet it clearly isn't true.

> > If Microsoft had done that with Windows, it would have cost
> US$15K a copy.
> >
> > Remember when UNIX and mainframe software was that expensive?
> >
> > The big problem with open control is that nobody has yet
> created a business
> > model that protects the actual author of the original work, and
> allows the
> > author to profit from the work. What open control does is to permit the
> > integrator and the end user to profit at the author's
> expense...just see if
> > it doesn't.
>
> Actually, if GPL is used, everyone profits at the author's expense, but
> none more so than anyone else. And the author will profit from further
> development and any and all enhancements in source-capital. And
> if the author
> was a fan of Open Source software, he probably had 85% of what
> he needed in the first place, before he wrote a line of code.
> If he gets paid the same amount for the solution, he makes out really
> well. It's an alternative system which has enormous potential for
> efficiency and greatly reduced costs. But it has to be considered as
> a system or it is being taken out of context. As you've seen, most
> detractors ignore context.
> I can write very sophisticated applications with a very few pages of> code by reusing what is freely available. I get paid the value of
> the solution with the understanding that I will take far less time if
> I can use the GPL. I release my bits with the customer's consent.
> He's happy, I'm happy, and the next programmer will have to write
> even less to make his customer happy.

And in certain circumstances, that makes for a very efficient and customized solution to a problem at the same price as a shrinkwrap version...provided there are quality and methodology controls on _you_. Some way to make sure you know what you say you do...some sort of registration, third party testing, etc. Otherwise, the pauvre bastiches are gonna get scrod again.

Having been done unto by several representatives of the great global tribe of control system charlatans, I can assure you I understand why many people want to own the source code to their systems.

> But, and this is a very important but, there is absolutely no reason
> that Open Control would force you to GPL your code or change how you
> normally release it in any way. Please read that last sentence again.
> This is FUD. Even Dr. Stallman, who thinks OSS is too restrictive,
> agrees that your work is yours, to license and release according to
> your wishes. As long as you don't "steal" OSS code and incorporate it
> into your product thereby violating the author's wishes that it be free.
> In fact that is what the GPL is all about, protecting the author from
> having his work used in a manner against his wishes.

Respectfully, it is NOT at all FUD. The fact that so few people understand who owns the damn code in the first place means it isn't FUD. If you write something, and you _know_ you can charge for 1100 hours of work, and because of the GPL or OSS, you can get away with doing 110 hours of coding, the fact is, the customer will find this out and understandably be irked. If you charge 110 hours for what would normally take 1100 hours of work, you are an idiot, because you have given away 10x the income.

> > If this is okay to you, fine. If you are a code developer, and
> you think
> > this is fine, I'd like to see your financial statement, or your proof of
> > sanity certificate. You either are already independently
> wealthy, and don't
> > care, or you are nuts.
>
> Or perhaps you recognize that the great majority of code is not written
> for resale. It is written to solve a particular problem and most likely
> will never be sold again in any case. So the loss is imaginary. Writing
> for a shrinkwrap software house is the exception rather than the rule.

But this is less and less true. Why do you think that most CSIs are going to software houses that will design them templates, standard XML EAIs, and automatic code writing software? It is because it costs too bloody much to not re-use as much code as is humanly possible, and to write all projects so that they can be taken apart and used block by block in the next projects.


> Regards
>
> cww


Walt Boyes

---------SPITZER AND BOYES, LLC-------------
"Consulting from the engineer
to the distribution channel"

[email protected]
21118 SE 278th Place
Maple Valley, WA 98038
253-709-5046 cell 425-432-8262 home office
fax:801-749-7142
--------------------------------------------
 
Whether the GPL is a good fit depends on what kind of software you write, but as an integrator, you'll most likely benefit more by cooperating with your colleagues than you'll lose by cooperating with them.

The only reason to avoid the GPL might be if you have something fancy or particularly novel in your code, but that's fairly rare. As far as I know, no-one's invented a truly new algorithm for decades - and if you did, you probably wouldn't want to use it in automation first off, anyway.


Other than that, if you don't want to use the GPL, I guess write a spec for what you want and get a lawyer to implement it for you.

Jiri
--
Jiri Baum <[email protected]> http://www.csse.monash.edu.au/~jirib
MAT LinuxPLC project --- http://mat.sf.net --- Machine Automation Tools
 
M

Michael Griffin

On February 24, 2002 10:20 pm, Walt Boyes wrote:
<clip>
> But this scenario is about open control.

This has nothing to do with "open control" in any way, shape, or form. We are talking about writing programs for traditional PLCs and other similar "closed" hardware.

> The only reason for proprietary
> code is to prevent someone else profiting from your intellectual endeavor.
> It is ALWAYS cheaper to come in for project #2 and just swipe the code you
> worked hard to write.

No party is being granted an advantage. All bidders are proceeding from the same basis. Any complete programs being re-used were paid for in full by the customer in a prior project.

> The defense, in the absence of licensing or other controls, is to charge
> enough money that the first implementation of the code pays for any
> reasonable use afterward.

This is in fact precisely the normal practice. Each project is financed on a self-contained basis. All work is fully compensated for within the terms of the contract awarded.

> If Microsoft had done that with Windows, it would have cost US$15K a copy.
>
> Remember when UNIX and mainframe software was that expensive?

I'm sorry to disillusion you, but custom PC programming today is much more expensive than that for anything except very small projects. I know people who have worked on large projects involving networked PCs where the sums spent are in the tens of millions. The customers in these cases would not look favourably upon any suggestions that having paid through the nose for something, they may not own what they had paid for.


> The big problem with open control is that nobody has yet created a business
> model that protects the actual author of the original work,
<clip>

Since this topic has nothing to do with "open control" (however that may be
interpreted) I won't bother discussing this point.

Anthony Kerstens P.Eng. wrote:
> > Flip side: you don't get the original project because your tried to
> > impose a license agreement. This sort of thing would have to be
> > negotiated with each customer/project individually.
<clip>
I think Mr. Kerstens has gone to the heart of the matter here. If someone attaches a law suit to their quote, I would likely decline it and deal with a party who presented less of a business risk. There would be no chance at a "first" project, let alone a second one.

If we leave aside the rhetoric and deal with the issue at hand we can see that it really isn't that complicated. Someone writing PLC programs uses ideas and code patterns (or even function blocks) over and over again on successive projects. The customer expects to be able to do whatever they like with the program or the rest of the machine. These are both normal and expected. It really isn't any different from mechanical or electrical designs in this respect.
The question raised is whether this should be put into writing as part of the usual legal mumbo-jumbo, and how this should be done. If the normal quote package contains various clauses regarding the mutual legal responsibilities, then this could just be another paragraph. I would suggest that the "how" is a question better dealt with by a lawyer who has been made fully aware of what the objective is.

Confidentiality of customer or supplier information is a separate issue, as it involves much more than just programs. This is a point which cuts both ways. If a section of code implements a proprietary control algorithm (from either party) or contains product information (from the customer) which is covered under a confidentiality agreement, then this is a separate issue which should be dealt with explicitly within the terms of that project.


--

************************
Michael Griffin
London, Ont. Canada
************************
 
M
> Lacking any formal declaration of ownership, US law defaults
> ownership of any creative work (including software) to the author. It
> doesn't matter if the customer pays. The only time the ownership
> defaults to the buyer is when there is a specific agreement of
> ownership (like a purchase order contract or license agreement) or
> when the work is done specifically as a "work for hire". "Work for
> hire" is a legal term that means the person who pays for it owns it.


When a consulting company is hired to do a project, does this mean the the man that programs the for the consulting company that was hired to do the work owns the code, or the consulting company owns the code?

Mark Blunier
Any opinions expressed in this message are not necessarily those of the company.
 
B
You may be referring to my comments about being blackmailed by a SI by licensing the PLC code so it can't be reused by a different SI.

I would not personally care if they reused it on another project, and would expect that some chunks of it would be. I would also expect that chunks of code from other projects would be used. How many ways can you integrate a PID block? Or a motion control block? Or analog scaling? These kind of things are likely to be near identical whether they are written from scratch or copied from an existing job.

My comment was objecting to another person's suggestion that a SI should consider using a software license as a way of blackmailing a customer. I consider that approach to business to be reprehensible. And if I were a customer of an SI that did that to me, I would be plenty displeased and would make no effort to keep that displeasure a secret.

Maybe something the group could do as a group project is to come up with a license statement that could be inserted into SI contracts. My suggestion:

All software provided (unless otherwise explicity stated) is usable by the SI and the customer [and end user(s) if applicable] for whatever purpose they sochoose, including giving, selling, or otherwise transferring it to a third party.

Simple. And it reflects the reality of the way things are done these days. If its not done this way, the end user could not legally give the source code to someone to make modifications to it. How long would most car plants survive if they could not modify a piece of machinery w/o going back to the original programmer???? Modifying the machinery means you have to modify the code.

And if there really was some proprietary code involved (and there rarely is), that specific chunk could still be protected.

Obviously this would have to be written by a legal beagle so that it would only cover the software written by the SI, and not software they merely purchased and supplied under the contract (such as Windows O/S).

Bob Peterson
 
Jason,

Please don't misunderstand this as a putdown, but obviously you have never had to deal with a legal issue. "Protection against lawsuits" is
an oxymoron. The very best you can do is "pay" for liability insurance (the "errors and omissions" kind) in perpetuity.

Of course the definition of perpetuity I have in mind is ... "an annuity paid forever" ... even after the suee's demise.

Regards,
Phil Corso, PE
(Boca Raton, FL)
 
G
Before reading further, understand that I AM NOT A LAWYER, just a professional software developer. I've written software for clients under a variety of arrangements. The contracts and licenses I have used with clients have been intended to clarify our mutual intent; I have not had to test the legal limits of these agreements in court.

Generally, I think that it's a good idea to claim copyright and provide a license; if nothing else, it gets the issue out in the open before it
becomes a problem. By the end of contract negotiation, everybody will be on the same page (or not involved in the same project).

> I think in the past our attitude has been that the customer
> typically owns the code (at least after the warranty period).

This should be specified in the contract. If the code is a product of "work for hire", then the client owns the code, lock, stock, barrel and copyright. If you are providing code that is derived from a template that you already own, then theirs is a derivative work, with copyright and license implications. (That's one reason for the common clause in contracts requiring the contractor to reveal all patents, copyrights, etc; the client's lawyers want to know how free and clear is their ownership of the work product.)

If you are contracted to provide a service and not develop a product, then the copyright is yours and the client's rights are whatever you
grant him. That's what the license is for.

> His assertion was that if the customer owns
> the code, we would be violating the law by using this code on another
> project.

As noted, if you owned the work before the client did, then it becomes a murkier issue.

> We are now considering using a license, at least in certain cases.
> Having some familiarity with GPL's and open source, I have considered
> some type of GPL where we own the code but allow our customer the use of
> it - also allowing them the right to modify it if necessary. We would
> retain ownership of the code, allowing us to re-use it, and also
> preventing others from profiting from it.

It sounds like you want to provide your client an unlimited, non-exclusive license to use, modify and distribute the code in any way he wants. That leaves you free to do whatever you want with it, too. For my taste, the BSD license accomplishes this with a minimum of fuss. It allows the user to do whatever he wants with the code, except claim he wrote it.

There is also the issue of proprietary information to consider. If your code incorporates any knowledge that you gained from your client that is protected under the non-disclosure clause of the contract, then you are not free to publish that code. Normally, that's used to protect a client's proprietary methods and processes. However, it occurs to me (in this environment of hyper-sensitivity to security issues) that a client's I/O layout might be considered proprietary information. In that case, you might be free to reuse the algorithm or code pattern, but not reveal the client's specific register usage or logical names.

Not-a-lawyer-ly yours,

Greg Goodman
Chiron Consulting
 
Walt Boyes:
> If you write something, and you _know_ you can charge for 1100 hours of
> work, and because of the GPL or OSS, you can get away with doing 110
> hours of coding, the fact is, the customer will find this out and
> understandably be irked. If you charge 110 hours for what would normally
> take 1100 hours of work, you are an idiot, because you have given away
> 10x the income.

Well, you worked for 110 hours, you got paid for 110 hours. Find another nine jobs like that (which should be easy if you're undercutting the competition by 10x), and you're even.

In addition, you get goodwill - customers will remember you if you can do in 2-3 weeks what your competition takes half a year to do; and obviously your much lower charges. Goodwill is difficult to quantify, but it's a real accounting term, appearing on balance sheets and everything.


Actually, the most likely way for you to lose out in such a scenario would be if one of your competitors uses OSS and you don't. With your 10x higher costs, there'd be no way you could outbid them.

Jiri
--
Jiri Baum <[email protected]> http://www.csse.monash.edu.au/~jirib
MAT LinuxPLC project --- http://mat.sf.net --- Machine Automation Tools
 
J

Joe Jansen/ENGR/HQ/KEMET/US

Walt Boyes wrote:
<snip>
And in certain circumstances, that makes for a very efficient and customized solution to a problem at the same price as a shrinkwrap version...provided there are quality and methodology controls on _you_. Some way to make sure you know what you say you do...some sort of registration, third party testing, etc. Otherwise, the pauvre bastiches are gonna get scrod again.

Having been done unto by several representatives of the great global tribe of control system charlatans, I can assure you I understand why many people want to own the source code to their systems.



Joe's reply:

As I read the last line above, I *assume* (correctly?) that the reason is so that they can take the project ot someone else after the 'scrod-ing' has finished? I would think that those customers would be strongly in favor of GPL'ed code at that point, since it would prevent the 'scrod-er' from 'scrod-ing' them some more. The customer would have full access to the
code, plus automatically have the right to take it to anyone else who will work on it for them to fix the problem.

cww and Walt continue:

> But, and this is a very important but, there is absolutely no reason
> that Open Control would force you to GPL your code or change how you
> normally release it in any way. Please read that last sentence again.
> This is FUD. Even Dr. Stallman, who thinks OSS is too restrictive,
> agrees that your work is yours, to license and release according to
> your wishes. As long as you don't "steal" OSS code and incorporate it
> into your product thereby violating the author's wishes that it be free.
> In fact that is what the GPL is all about, protecting the author from
> having his work used in a manner against his wishes.

Respectfully, it is NOT at all FUD. The fact that so few people understand who owns the damn code in the first place means it isn't FUD. If you write something, and you _know_ you can charge for 1100 hours of work, and because of the GPL or OSS, you can get away with doing 110 hours of coding, the fact is, the customer will find this out and understandably be irked. If you charge 110 hours for what would normally take 1100 hours of work, you are an idiot, because you have given away 10x the income.

Joe asks:

So what are you suggesting? This sounds like a 'damned if you do, damned if you don't' situation, since you assume that I will either anger the customer, or be an idiot. The only solution, as I see in your logic above, is to keep the source code a secret so that the customer cannot find out that I just screwed him out of 10x the income. Your statement at the end seems to imply that I would be an idiot to charge my customer for 110 hours of work if it actually takes me 110 hours of work. Is this a question of ethics? If I charge for 1100 hours of work, and do 110 hours of work, but keep it a secret from the customer so he doesn't find out, that is better? What if he gets suspicous and wants an audit? If I delivered the software 4 weeks after contracting it, he probably won't believe the 1100 hour figure anyway. That means that I work on his code, finishing it in say 4 weeks. Then I put it on a shelf, work on something for someone else, and keep billing him for work that is no longer performed on his project. Since I am working on someone elses stuff, I am also billing my time to him. Is double billing what you are recommending here? My customer now gets charged for 10x the amount of work I did, plus I have to keep the finished product away from him for several weeks just to keep him from being suspicious. Not the type of business I want to be in, thank you very much.

And on top of that, you tell me I need to be licensed to do this, since it insures *I* am not a charlatan.

Walt / cww:


> > If this is okay to you, fine. If you are a code developer, and
> you think
> > this is fine, I'd like to see your financial statement, or your proof
of
> > sanity certificate. You either are already independently
> wealthy, and don't
> > care, or you are nuts.
>
> Or perhaps you recognize that the great majority of code is not written
> for resale. It is written to solve a particular problem and most likely
> will never be sold again in any case. So the loss is imaginary. Writing
> for a shrinkwrap software house is the exception rather than the rule.

But this is less and less true. Why do you think that most CSIs are going to software houses that will design them templates, standard XML EAIs, and automatic code writing software? It is because it costs too bloody much to not re-use as much code as is humanly possible, and to write all projects so that they can be taken apart and used block by block in the next projects.



Joe finishes:

Re-using code is what GPL is all about. All that other stuff is just a way to try to tap the benefits of code sharing/reuse that GPL has distilled, without giving anything back. The code generating software takes the place of other developers that share their code. That is a system based on distrust, where OSS is based on sharing and trust. I share my code with you, for free. You take it, use it, and give it back. We are both ahead because now the next time I need that peice of logic, it is improved by your usage. This is a benefit that, though they try, the system you describe cannot acheive, because their is still only one group of people looking at the finished code.


--Joe Jansen
 
Let me remind you all of what Alfred North Whitehead stated in the 1920's.

"Civilization advances by the number of things people can do without thinking about it."

Bob Pawley
250-493-6146
 
R

Ralph Mackiewicz

> The question raised is whether this should be put into writing as
> part of the usual legal mumbo-jumbo, and how this should be done.
> If the normal quote package contains various clauses regarding the
> mutual legal responsibilities, then this could just be another
> paragraph. I would suggest that the "how" is a question better
> dealt with by a lawyer who has been made fully aware of what the
> objective is.

Correct. But, you don't necessarily need legal mumbo-jumbo. Someone else on this list posted:

> All software provided (unless otherwise explicity stated) is
> usable by the SI and the customer [and end user(s) if applicable]
> for whatever purpose they so choose, including giving, selling, or
> otherwise transferring it to a third party.

Not much mumbo-jumbo in there. This is where you need to apply common sense. If you let the typical well-meaning lawyer do all the wordsmithing you can end up with legal mumbo-jumbo. Notwithstanding the foregoing, a really good lawyer should be able to craft a legally enforceable clause that uses normal everyday language that won't intimidate the reader.

> When a consulting company is hired to do a project, does this mean the
> the man that programs the for the consulting company that was hired to
> do the work owns the code, or the consulting company owns the code?

You will need to contact a lawyer for a real answer in your state but: if the person that programs the code for the consulting company is a full-time employee of the consulting company then the code is considered a work for hire (in most states) and is owned by consulting company. If the person is a contractor their contract with the consulting company would have to contain a clause making the work a work for hire. Lacking such a clause the contractor would own the work and not the consulting company. The situation of full-time employment is an exception where the author does not implicitly own the work. If this is important to you, you really should contact a lawyer to find out what the situation is in the jurisdiction that you are in.

Regards,

Ralph Mackiewicz
SISCO, Inc.

The opinions given above should be attributed to me and not my company because my company did not write them...I did.
 
A

Alex Pavloff

Joe finishes:
>
> Re-using code is what GPL is all about. All that other stuff is just a
> way to try to tap the benefits of code sharing/reuse that GPL has
> distilled, without giving anything back. The code generating software
> takes the place of other developers that share their code. That is a
> system based on distrust, where OSS is based on sharing and trust. I
> share my code with you, for free. You take it, use it, and give it
> back. We are both ahead because now the next time I need that peice of > logic, it is improved by your usage. This is a benefit that, though
> they try, the system you describe cannot acheive, because their is
> still only one group of people looking at the finished code.

Actually, based on my conversation with Jiri, GPLed code is more like:

I take your code, use it, and give it, _and all my code_, back to you. If you're up for that, great. If the code is, indeed, a means to an end and has no intrinsic value, then everyone does win. But unfortunately, that's not every situation.

Alex Pavloff
Software Engineer
Eason Technology
 
G

Greg Goodman

> > If you write something, and you _know_ you can charge for 1100 hours of
> > work, and because of the GPL or OSS, you can get away with doing 110
> > hours of coding, the fact is, the customer will find this out and
> > understandably be irked.

If you have a vintage Rolls Royce in mint condition that you know you can get $45,000 for, and because it was a prize in a raffle, you can
sell it for $5000 and still come out ahead, will a buyer be justifiably irked for being asked to pay a reasonable price for it?

I think the programming example above is flawed because it presumes that you're billing for hours instead of for a working system. If, in fact,
a programmer bills by the hour, billing 10x his actual hours is called fraud. Bidding a project at a cost equivalent to 1100 hours of coding is not the same thing as charging for 1100 hours of coding. And if the client expects to pay a certain amount (say $10,000) for a custom system, then it doesn't really matter what the provider does or doesn't do to accomplish the task; the client will be happy if he gets what he wants at a price point close to his expectations, especially if nobody else is offering to do it for $1000. (The old story about the plumber
charging $1 for whacking the pipe and $99 for knowing where to whack it comes to mind.)

The beauty of a fixed-price contract is that the client knows up front what he's going to get and what it's going to cost him. The
integrator/consultant knows up front what he's on the hook to deliver, and can maximize his return at that fixed amount by delivering with a
minimum of effort and expense; conversely, he eats the overage if he undersestimates the effort or overestimates his own skill.

There is, in fact, a risk in seriously under-bidding projects, even if OSS would allow you to do it. The belief that "you get what you pay
for" is alive and well in industrial automation, and I have seen clients turn down legitimate bids that were too far below the client's
expectations for them to believe that the bidder understood what they were about, or that the client would be happy with the end result.

Regards,

Greg Goodman
Chiron Consulting
 
C

Curt Wuollet

We must be a highly advanced civilization, I see ever increasing momentum for doing things without thinking.

Regards

cww
 
J

Joe Jansen/ENGR/HQ/KEMET/US

Using the GPL is the authors way of saying that the price of their software is payed in improvements, and not cash. If you do not agree with the terms I release my code under, don't use it. Likewise for any other license.

If I give my code for free, why should you be allowed to pick it up for free, tack on a 1/2 hour fix to make it work with what you have, and then lock it up and make money off of what I spent weeks working on initially? If you want to make money off of writing software, at least write it yourself.

People that complain that GPL is not fair because they have to release their code back don't get it. My payment for writing my code in the first
place is not monetary. I get my payment in the form of code improvements. I release a piece of software that performs a task. I give it away for
free under GPL. If you want to use it, that is fine. Your license says people give you money to use your code. My license says you give me your
improvements to use my code. I am actually giving you a much better deal, since you are allowed to change, upgrade, tweak, and otherwise improve my code. Do you allow your customers to do the same? Can they use as many copies of your code by only paying the one license?

You seem to be really interested in the 'take and use' part, and then complain when it is time to pay what I charge to use my software. It is free market tho. Don't like my price? Then don't 'take and use' my code. There is no difference between using GPL'ed code and not releasing and software piracy. You take without paying in both cases.

--Joe Jansen
 
C

Curt Wuollet

Hi Alex

That does pretty much sum it up except we need to state that it only applies if you use code from the project in your code or write a module using our code that could be a part of the project.
The basic idea is that our code was contributed to the project on the condition that it be kept free for all who wish to use it provided they return the favor. Allowing commercial exploitation
would mean that someone who contributed code could actually see it used against them by a competitor which would inhibit contribution. We want companies and individuals to feel safe that the code they contribute to further the project and community will be used strictly for that purpose. Hence the GPL.

Applications that you write that run _on_ the LPLC would not be any different from the present situation and need not be GPL'd. I know you realize this Alex, But I want to make it clear to the other readers who might get the wrong impression. While we would certainly encourage solution sharing within the community, there
are occasionally valid reasons not to.

There are some issues in this interaction between public and private code that need attention, but this is our intent and I will stand by it.

Regards

cww
 
Top