Thursday, July 26, 2007

Some Thoughts on Commercial GWT Components

Recently a message was posted to the GWT developers forum seeking advise on distributing commercial GWT components. The poster explained that his commercial product included an advanced GWT component along with a sophisticated server-side piece to it. His concern was protecting his intellectual property by obfuscating or otherwise hiding his code from his users. I have a few thoughts on that.

Is this a good business plan?

In my day-to-day work I do a lot of Java development, and sometimes I will be working with a commercial Java library for which the source is not provided. Often this causes delays in development because it makes it harder to work with the library. To combat this I simply installed a JAD (Java decompiler) plug-in into Eclipse, and now it only takes a single key stroke to see the source of the compiled classes.

From a customer service point of view it is frustrating to me, the customer, that I need to go out of my way to see the source. I own the product, so why can't I use it? Also note that not distributing the source didn't stop me from looking at it.

This is similar to what the record industry is doing. They want to add DRM to all of their music so that you can't "steal" it. In reality it gets stolen anyway, so all the DRM really does is stop the paying customers from using the music they bought in the manner that they want.

Personally, I feel that if you need to hide the source code from your customers, you are likely taking the wrong route. You will end up making your customers unhappy, and the code will be stolen anyway.

Is piracy good for business?

Did you know that in China it is a good thing to have your music pirated? If it is pirated, then it means that people like it, and the free marketing of piracy is what gets you to the top.

It has been said that Adobe Photoshop at one time wasn't the only product out there for professional image manipulation, but it was the easiest to pirate. I have heard it said that piracy is what made Photoshop the standard.

Microsoft Windows is perhaps the most pirated application that I know of. The part that is interesting about it is that it hasn't stopped them from becoming the most successful software company in the world. The question is, are they as successful because their operating system was pirated, or in spite of it?

The bottom line

In my opinion, if your business plan requires that you protect your intellectual property through the use of DRM or obfuscation, then I think that it is a bad plan.

If you take a look around you will find that many companies have become successful by purposely following a different route. Magnatune sells their music without DRM, and has the tagline "we are not evil". eMusic, also DRM free, it the second largest (I believe) music seller on the Internet. JBoss provides the source of their application server for free, and still makes money. OpenNMS, a monitoring tool, does the same. Add to this Interface 21 (think Spring), and many others.

The bottom line is that you should provide value to your customers, and don't inhibit their use of the product they bought.

I look forward to hearing any thoughts on this.


Channel Hopper said...

I agree on the whole, but I'm not sure the analogy of music is a perfect example. Music by a band such as U2 (chosen because everyone knows them, rather than any particular endorsement) is partly down to the skill the performers have in playing live instruments - something that can't really be stored electronically, while the music they produce can. On the other hand, a band such as Faithless makes a lot of use of sequencers, sampling, and so-on - while their music doesn't have to be protected, I'd be astonished if the 'source code' (ie the raw samples and the project files from their sequencing software) for their music were to be released for download in the same way that JBoss's source code is available for download.

Pace said...

My comments on the topic of piracy in the music sphere can be found here.

Unknown said...

There's is a difference between JAD'ing a class to see what the code roughly looks like and JAD'ing an entire product and being able to recompile it. For example I think its almost almost impossible to JAD IntelliJ libraries and reconstruct the whole codebase in a way thats comprehensible. You'll probably find single character methods and variables in the JAD'ed code.

Are you suggesting that all commerical products should really be opensource? I cannot see libraries like CPLEX every publishing their code and losing their competitive edge in the market by making their IP open source.

Open source makes business sense for a quite a few companies but certainly not all companies, especially product companies.

Robert Hanson said...

First of all, let me clear up some confusion. I am not a pirate, and I am not for piracy. I was just pointing out several cases where piracy was used, both willing and unwillingly, as a marketing device.

> Are you suggesting that all
> commerical products should
> really be opensource?

No, I don't think that I am saying that either, but I am not opposed to it. I think the at the very core what I am saying is that it pains me as a customer when the products I buy I purposely made hard to use by the vendor.

Recently I picked up a copy of Dreamweaver CS3. I don't need the source for it, as having it does not help me use it.

An example of where the source would have been helpful is when a client of mine wanted enhancements made to an e-commerce package that they had bought. They ended up spending many thousands of dollars extra because not having the source made it difficult to enhance.

> I cannot see libraries like CPLEX
> every publishing their code and
> losing their competitive edge

Perhaps not. All I am saying is if hiding the source from the customer makes the product difficult to use, then perhaps hiding it is the wrong thing to do.

What if CPLEX (your example) offered two versions of the library, one with and one without the source. The one with the source would cost about double, would only include some of the source, and comes with a strongly worded EULA that no derivative of CPLEX may be distributed. Would something like that work? If I needed that sort of flexibility as a customer, then double the cost is worth while.

In my end it should be about customer satisfaction, which leads to customer loyalty, and usually a successful business plan.