仕事外でオープンソースに参加すべき3つの理由

今年もお世話になりました。

さて、半年来個人的に関わってきたプロジェクトがようやく一段落ついたのでお知らせ致します。

pgsql: Support window functions a la SQL:2008.

PostgreSQLというオープンソースのデータベースソフトウェアに機能追加の提案を行っていたのですが、先日本体に取り込まれたようです。

オープンソースに参加するプログラマには大きく分けて二種類あります。一つは、フルタイムでオープンソースに参加し、企業からもそのことに対してお金を貰っている専業の人。もう一つは仕事として別な(多くはプログラムを書く)ことをやっていて、個人の時間を利用して参加している人です。自分は普段企業で顧客向けのコードを書いており、PostgreSQLのコードを書いても1円も貰えないので後者に属します。

では1円も貰えないのに、何故仕事以外でオープンソースに参加すべきか、自分の経験から3つに纏めました。

1.スキルアップ
会社とは全く違う環境、違う基盤の上でプログラムを書くことになるので、新しいツールやルールを覚える必要があります。自分の場合でも、最近流行りのgitというソースコード管理ツールを使って今回のプロジェクトを進めていたため、仕事では覚えるはずのなかったツールについても学ぶことができました。また、全てのやりとりは英語を使って行われるため、英語の良い練習にもなっています。「こんな単語はここでは使わない」とネイティブから指摘されるのが、公の場であるメーリングリストなわけですから、世界への恥さらしもいいところなわけで、必然的に身につくものがあります。


2.世界を体感する
(いわゆるオフショアではなく)海外のエンジニアと会話をしながら仕様や設計を決めて行く作業は、刺激的です。自分一人では思いつかなかったような実装がやいのやいのやっているウチにできあがっていくプロセスは面白いの一言です。
また、ユーザからも「この機能を待っていたんだよ」などとダイレクトにフィードバックが来ますので、作りがいがあります。ここの部分は難しいから後回しに、なんて逃げようとしても、「そこがなければ全体として意味がないです」と見知らぬユーザに言われてしまうと、ううむ、作ってやるか、という気持ちになります。
一般に世界中で使われるプロダクトに日本で携わるのは難しいのではないかと思うのですが、日本の新宿の片隅にいながら世界中の人の期待を感じながらモノを作る楽しみはなかなか味わうことができないと思います。

3.日常業務とのバランスをとる
これが一番大事なのですが、仕事をしていると顧客や上司に仕事を押しつけられたりして自分の貴重な時間が奪われていくような、スポイルされていくような不安を多くの人が感じているようです。本当はそんなことないと思うのですが、やはり自分も少なからずそういった感覚をもったことがあります。そんな時こそ、オープンソースに参加すべきです。オープンソース界隈には本当に優れたエンジニアがいて、また金で繋がれた関係がありません。もちろん納期もありません。自分が諦めればそれまでの努力が報われないだけのことです。こうした活動によって、コーディングの楽しさを取り戻し、また日常業務に精を出すことができるのです。但し、仕組みは、謎です。

というわけで、まるで「オープンソースマンセー」な人に見えるかもしれませんが、自分は決してフルタイムのオープンソースエンジニアになりたいとは思っていません。最後の項目に書いたように、どちらが大事ということではなく、日常業務とのうまいバランスこそが、エンジニア人生をより楽しくするものだと考えているからです。

それでは良いお年をお迎え下さい。