Computerworld
What to do when developers take code snippets with them
When developers carry toolboxes full of code from job to job, intellectual property implications get hairy
Bill Snyder (InfoWorld)  18 April, 2008 08:12

Every good carpenter has a box of tools he carries from job to job: a hammer of just the right weight, a selection of drill bits, and so on. As he gains experience, his toolbox gets heavier with new, and sometimes specialized, equipment. Similarly, programmers accumulate their own tools as they move from job to job, but these tools are digital and often include snippets of code written over the years.

And that can create a problem, says Vishwanath Venugopalan, an enterprise software analyst with the 451 Group. These snippets are often reused unintentionally in a simple cut-and-paste operation without full knowledge of their former or current company's intellectual property (IP) policies. What's more, "the ubiquitous availability of code snippets in blogs and online tutorials poses a bigger risk to intellectual-property hygiene in a company," Venugopalan says.

Although the problem of IP pollution is probably greater in the open source world, the growing popularity of modular, reusable code (think about Salesforce.com's AppExchange) creates headaches for users and developers of commercial software as well. And that, in turn, is creating a business opportunity for a handful of specialized software companies, including Black Duck Software, Palamida, and most recently Protecode, a startup based in Ottawa, Canada.

Interestingly, none of the three major players in this niche are open source.

Protecode is a plug-in to the Eclipse IDE that detects and logs the content entering a software project, and then checks it against an online database called the Global Intellectual Property Server, or GIPS. That's much easier and more accurate than relying on memory and manual record keeping. Companies can set policies to restrict the code that can be brought into the project based on the license type (such as to restrict GPL code usage). If a programmer uses code that isn't yet licensed by the employer, Protecode will create a bill of materials needed to comply with licensing provisions.

Because Java, C, and C++ code can be developed in Eclipse, the product's integration into Eclipse lends its support for these programming languages. Protecode has indicated that Visual Basic support might be in the cards as well, says Venugopalan.

Computerworld Buyer's Guide - Vendors Matched to this Article

Comments

Where is the line drawn?

Bill,

Interesting article about how developers take code from one company to the next. Of course any kind of copying of code is an automatic infringement on copyright, but there is a far more insidious implication that goes unnoticed in your article.

Lets say I work for company A, and they ask me to build something for them. As part of what I create I use a certain technique that I find works very well. I move on to company B who ask me to build something for them. I find that the same technique I used with company A would work just as well for company B....

What do I do?

Do I avoid the technique altogether because it would infringe on the IP of the company I was at when I created it? Do they own the technique itself or just the implementation? If I use my memory to re-code using the same technique (ie no direct copying of code done) am I breaching their IP? Or am I wasting company B's valuable time and resources by re-inventing the wheel the 10th time over by trying to use my memory to reconstruct the same thing I have created everywhere else?

You could look at two implementations using the same technique and see they were not copied, yet you could see similarities that are significant enough that some people may say its the same thing. Is it considered a pattern and thus not copyrightable? Do I call it MY pattern and put my own patent on it to stop others from using it? Can I put a patent on something which is a technique for doing something?

While some of these techniques may be broad enough to be non-specific (Factory, Controller, Facade, etc), other techniques are fairly specific yet highly re-usable across projects. As a developer I keep seeing a need for a certain implementation, so I keep re-inventing the wheel everywhere I go. Does intellectual property cover the "nuts and bolts" of programming or the use of it as a whole?

I can't help but feel that I am wasting their time by repeating the same thing over and over again when I already know the generic one I created previously already works. What if the new version of it that I coded from my mind misses some vital component? Am I not doing more of a disservice to the customer by NOT re-using code that I know has been tried and tested over and over again by creating something that tries to use my memory to reconstruct the principle?

Surely having a "toolbox" of useful code snippets which you know as a professional is already well tested and encapsulated, as well as being suitable for the purpose is a benefit to any company you bring it to. What I fear is that I do this "favour" for a company, and in return they try to take it off me by claiming it is now their intellectual property, when in reality I could have saved several hours of their time by not re-coding it from memory and costing them money in the process.

Post new comment

Login or register to link comments to your user profile, or you may also post a comment without being logged in.
The content of this field is kept private and will not be shown publicly.
Add to Google
Computerworld Buyer's Guide - Vendors Matched to this Article
Zones
Zone logoZones provide focussed content from Computerworld and leading technology partners.
Newsletter Subscription
Newsletter Subscription
Sign up for our Computerworld newsletters!
Syndicate content
 

Computerworld Webinar

Thursday, June 11th, 2009
10:30am EST (Sydney, Australia)
Screening at your PC

Computerworld is hosting a 30 minute live webinar to help you to learn how unified communications can save you money, foster innovation and business agility by making it easier for people to find, reach and collaborate with one another.

Register Now

Computerworld Community Comments
Whitepaper

State of Internet Security

Spyware, viruses and other malware transported via Web sites represent the most serious data threat to companies today. Read on find out how you can appropriately leverage technology and appropriate business technologies to protect your business.

Enterprise IT Buyer's Guide
Find Technology Vendors Fast
 
Find vendors by name | Find by category
Sponsored Links
 
Send Us E-mail | Privacy Policy
Features List | Media Kit | Advertising | Contact Us

Copyright 2009 IDG Communications. ABN 14 001 592 650. All rights reserved.
Reproduction in whole or in part in any form or medium without express written permission of IDG Communications is prohibited.