Sunday, April 08, 2007

What Will You Do?

Suppose you are an artist, and you have just spent significant amount of time and effort to create a piece of digital artwork. A generous soul you are, you decide to put this artwork in public domain with a relatively liberal license.

A guy, let's call him Marcus, took your artwork into another project which is governed by another license. The problem is that license has terms that you disagree strongly. There is no monetary loss at your end.

Since you have the moral high ground by being able to prove Marcus indeed did 'borrow' most part of the artwork AND put it in that project without even asking for permission.

What will you do?

Possible choices:
  1. Ignore this matter, as you think legal matters are hairy in nature
  2. Send a stern email to project mailing lists which have thousands of recipients and openly accusing Marcus of plagiarism. Nailed him squarely by providing line-by-line diff's to show indeed Marcus copied intentionally.
  3. Send him and the project leader a private note explaining the issue and hope for a quick resolution
  4. Recommend Marcus to work for M$ as this is usually what has been done there
Choice #2 and #3 are both viable solution (actually #4 is also very valid...), though they have entirely different consequences.

The above is not a thought experiment. The story is as follows:

Recently, some Linux developers found out there code was in the openBSD code repository (news article here). The code in concern is on the device driver for Broadcom's wireless chipset.

Two factors contribute to this dispute: the effort that went in to the project, and the nature of openBSD license.

First of all, chipset specs are usually confidential and not released to public, and Broadcom doesn't have the device driver for Linux. Having no way to get more information about the chipset, those developers spent a lot of effort to reverse-engineer the Windows driver to learn the internals, and used that information to write a driver for Linux. This is not a trivial task that can be done over a weekend.

Moreover, the openBSD license allows the use of their code in closed-source projects (i.e. no source code will be released). The Linux developers are concerned that Broadcom may import their (more elegantly written) code back into its private code base.

The lead developer for the Linux driver, Michael, chose choice #2 by shooting a stern warning email to several well-populated mailing lists. Initially the openBSD lead, Theo, in an effort to soften the blow and save some face for Marcus, suggested the code was checked in by 'mistake'. However Michael and friends just didn't get it and produced all the evidences to prove their case.

The outcome is Marcus, the guy who 'borrow'ed the code deleted all the offending code he checked in and called for quit.

Here I don't intend to paint Michael as a villain. In fact, he is the one on both the moral and legal high ground because he does catch a copyright violation, and his effort may be lost if he doesn't act promptly.

That being said, empathy is absent in Michael's approach. In other words, in virtue of his legal position (i.e. "that guy really copied my stuff!!"), his sending the said email to thousands of developers around the world literally left Marcus no where to go. Putting yourself in Marcus' shoes, what can you do when there are solid evidences presented in public of your mistakes? Nearly all people will choose to run away from the public spot light and quit.

Plagiarism is indeed incorrect, but by exposing the person in question literally naked in public is a disservice. Remember, we are dealing with humans who have feelings. If I were Michael, upon seeing the post saying this was a mistake, I would offer Marcus the benefit of doubt by saying "Well, mistakes do happen sometimes. Let's move on to correct this." All in all, Marcus already acknowledged this mistake (though a 'careless' one) and offered to fix it. This way, not only the issue could be resolved much quicker, also everybody would take note of the EQ and forgiveness involved. The world is, unfortunately, not black and white. There are plenty of gray areas that we need to deal with.

In the end, Michael not only doesn't get the result he wants (that Marcus admits he copied the code), he also alienates a lot of people (I am one, at least).

I have a lot of thoughts on this subject because I am a software developer and I also have my share of mistakes.

The original mail exchanges in the mailing list is here. Sadly, the discussion turned into a comedy with name-calling and mud-slinging.

No comments: