Ownership of Ideas

Today while at work, I spent about an hour and half writing two little command line tools to team members in accomplishing tasks with Team System that the out of the box tools just don't provide.

The coding tasks were trivial. A total of probably 50 lines of code between them, including the argument checking.

The first tool, generates CSV output of version history of a server path, allowing the optional passing of a work item type name and one or two field names from that work item type. It will recurse through links looking for a related (to the nth-degree) work item of the type you passed in and include the value on that work item for the one or two field names you passed in. Oh yeah, it also includes file level detail. With the CSV in hand, you can quickly pop it into Excel 2007 and use all of the Pivot Table and Grouping goodness that it provides.

The second tool, provides a method for associating multiple changeset with a single work item. The syntax is simple, pass a work item id, and 1 or more changeset ids. The tool will then open the work item, loop through the changeset ids adding links to the work item, then save the work item and return back to the prompt.

My first reaction was to post these tools out to CodePlex for the community to use and build on. I figured, there is hardly any valuable IP here and the tasks are trivial enough. However, one of my coworkers implied that it would somehow be unethical for me to do.

Well, I've been pondering that all day. I really don't think there is any violation of ethics in this case. I never signed anything stating that the company owned my ideas. Granted they do own the output I produce on their time and on their hardware. But do they own the ideas?

So, since they were trivial enough (and the psuedo-code for them is in the preceeding paragraphs), I'll just rewrite them on my own time and on my own hardware and post them out to a new project on CodePlex as soon as I get the chance.

Tags: intellectual property, ip, codeplex, ideas, tfs, team system