Webサイトに登録するとき、パスワードを忘れた時の秘密の質問、なんてのを入れる場合がある。「母親の旧姓は」とか「ペットの名前は」といった奴だ。これに正解するとどうやら本人らしいということで登録メールアドレスに仮パスワードが送られてきたりする。もう少しセキュリティをあげる方策として、秘密の質問に答えるまでの制限時間を設けて時間オーバーだったら、その質問は使えなくなる、というのを考えた。秘密の質問、他人であっても時間をかければ調べられることが多い。それを防ごうというのだ。当然、本人であっても何らかの事故で制限時間をオーバーすることはありうるので、秘密の質問は複数登録しておくということになる。単純なCGIでは難しそうだが、Javaアプレットを使えば何とかなりそうだ。実装手段を考えたとして、こんなのは特許にできるだろうか。コンピュータネタ、目次へ少なくとも今度の案件に使うことはないなあ。。。というのは契約の問題で「特許権は発注者に属する」からである。私がここで実装してしまうとその特許は発注者に行ってしまい、他の案件で使うには現在の発注者の許可がいる。下手するとパテント料が発生する。だから使わない方が無難である。ということでコードだけ書いて自社の特許管理部門に社内提案しよう。
というのは仮の話で(アイディアは実際に自分で考えたものだが)、現在、特許をそう取り決める請負契約での開発は行ってない。しかるにそのような発注者に有利な知的所有権の取り決めを含んだ契約があることは知っている。つまりここで言いたいのは「発注者は有利な契約を結んだつもりかもしれないが、そうすると逆に受注者は特許になりそうな新技術を(考え付いたとしても)実装してくれないよ、ということだ。つまりオーソドックスなアルゴリズムで構成されたシステムが納品されるということだ。セキュリティレベルも平凡。速度も平凡。
もしここで契約書に「発注者が保有しているソフトウェア特許を受注者は自由に無償で使用してよい」という一文があれば話は別かもしれない。
これがないと、たまたま知的所有権なんぞ気にしない優秀なプログラマーが画期的アルゴリズムを実装し、それで発注者が特許をとってしまった場合、受注者は他の発注者の案件はもちろん、その発注者の別の案件にすらそのアルゴリズムを使うことができないからである。使ってもいいが特許使用料を!となると到底承服できない不利益をこうむることになる。だからいい考えを思いついても、使わずに陳腐なアルゴリズムを使い続ける方がよいわけだ。というわけで、発注しただけで知的所有権までもらっちゃうような契約は、一見有利に見える発注者にとっても不利益になる。やめちゃいましょう、ということだ。