個人プログラマは、生き残る戦略としてオープンソースを採用すべきではないか

読了まで:約5分


概要: と​僕は​考えている


今日の、

  • [[NEET Advent Calendar 2013 - Qiita [キータ]] http://qiita.com/advent-calendar/2013/neet]

は​何に​ついて​書こうかなぁと​思っていたら、​ いつの​間にか​今日の​分が​埋まっていたので、​ 暇つぶしがてらこれを​書く。


プログラマは、​自らの​コードを​生き延びさせる​ために​オープンソース化を​行うべき

だと、​僕は​まず​最初に​思う。

と​いうか、​特に​個人だけで​開発してると​そうなんだけど、

  1. 個人だけの​開発体制で​かつクローズドソースの​場合、
  2. ソースコードの​ロスト or なんらの​事情に​よる​開発の​ストップに​よって
  3. その​プロダクトが​永遠に​死ぬ

と​いう​ことが​起き得るし、​また、​それが​広く​使われるような、​ 大変​有益な​ソフトウェアであった​場合、​多くの​利用者が​途方にくれる、​ と​いう​自体に​なる。

で、​こういった、

  1. 開発者の​突然の​死等に​よる、​開発の​永久停止
  2. ソースコードの​ロストに​よる、​開発の​継続の​不可能化
  3. あと、​開発者やる​気無くして​開発が​止まった

等と​いう​理由で、​その​プロダクトや、​その​ソフトウェアの​開発が、​ ある​種の​死を​迎えてしまう、と​いう​ことを、​僕と​しては、​ 極力避けたい、と​考えているし、​そう​考えているが​故に、

自分の​プロダクト等を​すべて​オープンソースで​提供する

と​いう​方​針を​もって​開発している。

無論、​作り出したけど、​開発が​途中で​止まって​放置してる、​ とか、​あるいは、​これちょっと​公開する​クオリティに​達してないから、​ 公開するのは​もう​ちょい​後にしよう、とか、​そういう​表に​出してない​コード類、と​いうは​確かに​存在する。

けれども、​これらは​いわば​生まれる​前の​段階の​卵みたいな​モノであって、​ 僕と​しては​オープンソースと​して​自分の​コードを​世に​出すときは、​ せめて​自分の​コードを​ヒヨコぐらいまで​育ててからじゃないとなー、​ とか​思ってる。

で、​それは​何故か、と​言えば、​まあぶっちゃけ、

  • 不完全な​動かない​コード

使おうにも​使えなくてがっかり、と​いう​自体を​招くし、​僕と​しても​そういうのに​遭遇してがっかりする​コトが​よく​あるので、​やっぱり​自分と​しては​そういうのは​避けたいな、と​僕は​思う。

オープンソース化は、​ 自分が​死んでも​代わりは​いる​もの 、と​いう​状態を​作り出せる

上記の​話と​若干かぶるけど、

  • オープンソースで​コードを​公開する

と​いうのは、もし​自分が​開発を​継続できなくなっても、もし​それが​本当に​必要と​される​モノで​あれば、​誰かが​開発を​継続してくれる、と​いう​利点が​ある。

そして​これは、​今の​僕の​ように、​大震災が​来て​大津波が​くれば、​住処は​おろか、​自らの​命もろとも​濁流に​流される、と​いうような​場所に​住んでる​身と​しては、​結構​重要だったりする。

また、​そういう​大震災や​大災害に​巻き込まれにくい場所に​住んでいたとしても、​病気や​事故に​よる​突然の​死は​そう​簡単には​避けられないし、​また、​火事や​事件に​巻き込まれて、って​いうような​場合でも、​自分が​死んで、​コードも​道連れに​なる、と​いうような​コトが​避けられると​思うし、​また​自分が​単に​やる​気を​無くしたり、​あるいは、​もう​それに​ついて​開発する​気は​ない、と​いう​状態に​なっても、​Github 等に​ OSS と​して​公開していれば、​誰かが​ fork して​開発を​続けてくれる、​みたいな​コトが​期待できると​思う。

で、​僕と​しては​そういう、

  • 開発者の​ SPoF =単一障害点を​無く​す

と​いうのが​重要だと​考えているし、​また、​自分が​何かを​開発する​際にも、​この​辺りを​無意識に​重視しているように​思う。

オープンソース開発は、​その​開発者の​成績簿に​なる

あと​これは​実社会に​出る​ときの​話だけど、​オープンソースソフトウェアの​開発は、​その​開発者に​取って、​一種の​成績簿的な​役割を​果たすのではないかな、と​思う。

と​いうのも、​オープンソースソフトウェアって、​個人で​開発してたりすると、​その​人の​開発者と​して​実力が​全裸で​公開されているような​モノだし、​また​広く​使われるような​ OSS Product を​開発できるような​技量が​あれば、​そういう​開発者は​引く​手数多で​職に​困ったり、​食うに​困ったりする​ことには、​そうそう​陥らないのではないかな、とか​思ったりする。

あと​企業と​して​雇う​側と​しても、​その​人の​書いた​ソースコードを​見て、​この​人は​どれくらいの​実力が​あるか、とか​見極められるし、​また​モダンな​開発環境を​持つ会社とかだと、​自社の​企業文化に​その​人が​合うか、とかも​判断しやすくなると​思われるので、​そういった​面では、​両刃の​刃的な​面も​あるだろうけれど、​まったく​ソースコードを​公開しない​開発者よりも、​オープンソースメインで​開発している​開発者の​方が、​ある​程度は​有利に​なるんじゃないかな、と​思います。

で、​まとめと​いうか結局​何が​言いたいのか

  1. 開発者は​自身の​ Product を​ OSS に​する​ことに​よって、​自分が​ SPoF に​なる​ことを​防げる
  2. 自分が​ SPoF に​なる​コトを​避ける​コトは、​多数の​利用者の​利益に​なる
  3. あと​有益な​ OSS を​作り広く​広められれば、​開発者と​して​食う​困らない

と​いう​辺りでしょうか。

あと​もう​一つ​個人的に​言えば、​僕は​どうも​自分の​書いた​コードを​非公開に​ついて​バイナリだけ配布する、​みたいなのを、​自分が​行うのは​気持ち悪いと​いうか、​性に​合わないと​感じているので、​そういった​面でも、​自分の​書いた​コードは​積極的に​ OSS に​していきたいと​僕は​思ってる。

けれどまあこういった​方​針は、​しがらみの​無い​環境じゃないと​取れないだろうし、​また​企業で​特許とか​企業秘密が​絡んだ​コードでは​こういう​方針は​取れないと​思うので、​その​辺りは​まあ個人プログラマである​うちの​特権かな、とは​感じます。

と​いう​訳で​今日の​考え事は​以上。

暇つぶしと​いうより、​自分の​考えを​整理する​時間に​なった​気が​します。

#FIXME

にゃるら(カラクリスタ)

『輝かしい青春』なんて失かった人。
次に備えて待機中。

今は趣味でプログラミングをして
生活しています。