Codwiz51's Wiki

The Implications of Using Downloaded Code

Modified: 2008/07/30 18:51 by codewiz51 - Categorized as: General
This is a work in progress.

Here's an interesting tidbit. It's not the same as stealing code. This article illustrates what happens when management does not understand critical technology they are using (and selling): Reuters loses right to use crucial IM technology The short story is they did not pay a $150K bill on time, and the licensor would not extend the purchase terms past the deadline. So now Reuters has to renegotiate a new contract after paying almost $2M. Using 3rd party code is a heavy responsibility.codewiz51, 2008/07/30 18:51

With the availability of public code today, companies really need to understand the implication of code obtained from the internet.

You are a a contractor working by the hour.

Some code on the internet performs the tasks you need. It uses the GPL license. You can download it. Your customer trusts you, so your code is not closely reviewed. (Once again, the boring specter of code reviews raises its ugly head.)

You do the following:
  • Download the code
  • Pay no attention to the license or the copyright accompanying the code
  • Slap the customer's copyright on the code
  • Make some minor changes to obfuscate
  • Leave for a better job

If you answered yes to any one of these items, then you, the contractor, have screwed your client. Morally and legally. If you are a contractor, now is a good time to review any and all documents that you signed.

Excuses and mental gymnastics for you to use:
  • You didn't know that your customer supplies source code to their customer?
  • You didn't realize licenses may be different for governmental entities. The same license doesn't apply?
  • The company that hired you did not specifically talk to you about downloading code from the internet.
  • The company was wrong for assuming you had enough sense to not slap a copyright on someone else's code?
  • What's the different between GPL, MIT or BSD? They're all open source!
  • You did your job, right?
  • Did I really steal someone else's work? It was on the internet.
    (It was clearly marked with copyright and instructions for use.)
  • Who would know?

Now, let's look at it from the perspective of the company that hired the contractor.

Will anyone get in trouble because of contractor actions? The best answer is no. Unfortunately, the real business question is 'How much money will it take to solve this problem?' The answer to this questions depends on whether:
  • Has the code been released to your client?
  • Is the client distributing product based on your code?
  • Is a lawyer involved on the client's side?
  • Is a lawyer involved on the company side?
  • Will the client work with you, or do they demand relief or damages?

So the answer ranges from expensive, but the problem goes way, to your company loses the lottery and has to pay - big, with bonus points for public loss of reputation.

The usual answer is lost money and lost time. Delivery schedules are affected and a lot of code has to be reviewed and possibly rewritten. I have worked at one company where they lost the license and copyright lottery - big time. It wasn't even a contractor. It was a new programmer zealously doing his job (he thought.) The problem with losing the lottery is obtaining insurance in the future. Losing the license and copyright lottery cuts off your air supply.

The moral of the story? Businesses need written policies in place regarding the use of code obtained from public sources, like the internet. The policies need to include requirements on the types of licenses developers may consider working with, versus code that cannot be touched because of licenses like the GPL. As a manager, you'd better look hard at this policy and you had better make sure employees and contractors are trained on this policy. (By the way, I am a GPL advocate, but most of our work cannot be GPL'ed.)

Picasso once said "Good artists copy. Great artists steal." T.S. Eliot said "Immature poets imitate; mature poets steal." So just remember this when you (a) trusted a contractor and (b)you are talking to a company attorney because your client is not happy. Really not happy.

Don't let the muses of tight schedules and inexperienced talent lure you onto the license and copyright rocks by using downloaded code.

I've become a big fan of not using downloaded code for any reason. You might learn how to perform some technique or trick, but learn how to derive your own solutions. It's why you get paid, remember?

ScrewTurn Wiki version 2.0.31. Some of the icons created by FamFamFam.