Continue to Site

Eng-Tips is the largest engineering community on the Internet

Intelligent Work Forums for Engineering Professionals

  • Congratulations cowski on being selected by the Eng-Tips community for having the most helpful posts in the forums last week. Way to Go!

Source and object code - who owns what?

Status
Not open for further replies.

Skogsgurra

Electrical
Mar 31, 2003
11,815
Background: We have been designing with micros ever since the 4004 appeared back in the early seventies. We have always thought that the customer has the right to source and object. And we have always delivered both to the customers.

Now, we hear that we shall protect ourselves from "pirates" by keeping the source. And even I can think that that is a reasonable thing to do. Especially since most jobs involve a high percentage of R&D before you get to the keyboard and you seldom get paid for that part of the job. There are also special techniques (tricks) that you develop in order to use the cheapest possible processor so that a customer with volume production can produce at the lowest possible cost. This IP is valuable information that we want to keep to ourselves.

Therefore, we have started to keep the source code in our archives and deliver the object to the customer so that he can program his parts. There is nothing in writing that says that source code shall be delivered.

One of our customers that we developed a family of appliances for has now decided to "in-source" the development and we suddenly (after about four years) get an e-mail where he demands that they get all code, including source code.

What is your opinion about this? How would you act?
 
Replies continue below

Recommended for you

In general, unless other specified in writing, the source code belongs to the one who paid for its development. This too may vary from country to country.

First and foremost, you have to look at the wording in the contract between you and the customer, with respect to the disposition of the source code. If there is nothing, then check if there is some other document which does address the issue.

You definately need to consult an attorney, but without any signed document that allows you to keep the IP, and/or ownership, most likely, the code will belong to the customer.
 
One caveat about "who paid" is that normally, at least for aerospace contracts, is a "data rights" clause, where we stipulate that certain portions of the source may be proprietary and that the customer is only entitled to any modifications to the code that was necessary to integrate proprietary code into the design.

In many cases, this can become a contentious issue and certain contracts allow the customer full data rights after X units of production.

You'll also need to research whether the customer was given design reviews and other technical data, e.g., did he receive or expect to receive detailed design documentation on the electrical and mechanical design? If not, then it's unlikely that he's entitled to the software data.

TTFN
 
First, consult an attorney
But in my opinon the source code was not part of the deliverables, the client knew that when he took delivery, did not complain, used the product for four years, and then needed to accomidate a change in his organzation.
My opinion the deal was done, both parties knew only the object code was delivered and both parties were satisfied, as evidenced by the buyers payment without exception (hopefully).
If the deal had happened recently, the buyer may have an argument that he felt he could expect the source code shortly but after four years, he has a lot of uphill swimming.
Just rember my free opinion is wort what you pay.
Good luck!
 
Thanks all,

There is some more background in this specific case. We did an original estimate about development time that was based on an AVR processor with interrupt and built-in A/D. The AVR processors also have a good memory organisation that is easy to use.

This customer then asked us to try and use a PIC without interrupt and without A/D. We had done some work for him before where we had used capacitor discharge A/D (joystick style) and also triac control without interrupt (polling the mains for sync) and that is why we were asked to use these techniques in this project. We decided to try and were confident that we should get paid for the extra work.

The reason for the change of processor was that the customer had negotiated an extremely low price for the PIC processor.

We had no problems in the beginning and even told the customer so (a mistake, perhaps), but when we started integrating measurement, triac control and some rather lengthy math (linearising and temp compensation of RH transducers), we ran into execution time and register use problems. We sorted those out, but it took some time to do that.

The customer could reduce his mfg costs with a yearly amount that was about twice the development cost and ten times the extra cost caused by the change of processor. In other words, we overran our original estimate with 20 percent as a result of the change. But our first invoice was "bounced" with a harsh comment about limits. We finally managed to get half of the extra cost paid. R&D not included.

How would you act? Given this background?

 
They paid for half the R&D, give 'em half the source code!

If they had paid all the disputed invoice would you give them the source code?



Cheers

Greg Locock
 
> What does your contract say about "deliverables"?

> Would you have charged more and can you show that you would have charged more for the source?

TTFN
 
There were not much formalities. We had been working together before and things were OK then. I trusted the customer. Perhaps one time too many. But I still think that mutual trust is a good thing and makes life a lot easier.

We wanted to set up a structured development plan and have a specification sheet written up. None of these happened. "Not necessary" according to the customer.

Our estimates about development costs are in one of half a dozen progress reports. Remember that the problem is not so much the pay that we did not get. It is more that customer comes back after four years asking for more free lunches.

Tell me that I was naïve. I know that already. But how would you act in my shoes? Remember that this Forum is about Ethics, not Law.
 
Well, since the customer did not pay for the full development of the software, I would have zero compunction about withholding the most critical 10% of the code, since that's OBVIOUSLY the part that you paid for out of pocket, plus whatever was developed on your own nickel to begin with.

TTFN
 
When I write code, less than ten percent of the source text is actually used to generate object code. The bulk of the text comprises commented-out dead ends, records of meetings and decisions, block diagrams, electrical schematics, essays about why certain things were done in certain ways, conjecture about future improvements, cautions about why certain obvious improvements should not be made, test reports, performance metrics, clips of pertinent passages from spec sheets and errata sheets, etc. IOW, my source text usually serves as a complete record of the project, because IMHO the only way to keep the project record and the source current and linked is to make them one and the same.

I wouldn't deliver that sort of source code to a customer such as yours. I'd deliver completely uncommented and unformatted source that would produce the object code already delivered, without providing the slightest hint of 'why' or 'how'.

To do that, I'd either filter my source to remove all comments, expand all macros and make all symbolic substitutions, or I'd just run the binary through a disassembler and deliver the result.

-Mike-




Mike Halloran
NOT speaking for
DeAngelo Marine Exhaust Inc.
Ft. Lauderdale, FL, USA
 
Status
Not open for further replies.

Part and Inventory Search

Sponsor