Over the past few weeks I've been working on a program to analyze performance results and determine if there have been any regressions or improvements in the performance of our product, and, if so, when and where these happened.
When I demoed this program to my manager last week and explained the theory behind my program and that I had just made this algorithm up myself, he suggested that I should try to get it patented.
This gives me somewhat of a dilemma. Software patents are evil. It would be against my personal ethical code to do anything to help a software patent get filed.
On the other hand, if I refuse to help Microsoft patent this idea it could be a Career Limiting Move. Obtaining a patent (especially for something I invented myself without any help) would really improve my visibility at work, it would help with my chances of a promotion, the one-time bonus of up to $1,500 would be quite welcome and having my name on a patent would be good resume fodder (not to mention an ego boost). The technique is probably not useful for software developed by an individual or small team, and the patent would probably never be used offensively (I don't think my program would ever be turned into a shipping product). Also, some would say that I have already sold out my principles by working for the company in large part responsible for turning software from an endeavour practiced somewhat like science (where everyone built on everyone else's published work) into a commercial industry (where ideas are jealously guarded and hoarded and lawyers abound). And finally, Microsoft might patent this idea even without my help if I refuse (the idea is legally theirs rather than mine).
This may be moot point if this has technique has been done before, and I'm thinking of using a completely different (albeit possibly still patentable) algorithm instead, but I'm sure at some point I will have to make a decision to either choose the path of good and righteousness or sell out for personal gain. What do you think I should do?