Make組ブログ

Python、Webサービスや製品開発、ライブラリー開発についてhirokikyが書きます

オープンソースに貢献する第一歩は?

オープンソースに貢献するというと難しそうなイメージがあります。 僕も昔、 How to become a hacker を読んで感動してOSSに興味を強く持ったのですが、 オープンソースに還元するというのは難しいことのように思えました。

とくにGitHubもない(今ほど普及していない)時代であればどこで作られているのかもよく分かりませんし、 今となっても数少ない「すごい人」が活躍しているように見えます。

でも、実はそんなに難しくないですよ、という話をします。 また、ある意味では一番難しいパラダイムシフトが大事かもしれないね、という話もします。

この話は僕が日頃考えていることで、最近仕事やコミュニティーであった出来事には全く関係していません。 DjangoCongress JP の運営で何かあったとかではないので、変な邪推はしないでください(リラックスして大丈夫です)。 また、昔話的なこともしますが、僕はオープンソースと関わって10年とかその程度なので、長い人からすれば説明に間違いがあったり「新参が何を語るか」という気持ちになったりするかもしれません。

でも、そんな人も、DjangoCongressに参加してくれる人やスタッフ、発表者などすべての人も、この気持ちが共有できていると嬉しいな、とは思います。

本文はじめに

オープンソースに貢献する第一歩は、「自分はお客様である」と考える習慣を捨てることだと思います。 同時に「製品、サービスの提供者である」と考える習慣も捨てることだと思います。 これが、「第一歩」だと思います。

僕がこの話をする理由は「オープンソース」というものが当たり前になった今、改めてその活動とは何なのかを捉え直したいからです。 普及した故に逆説的に「自分たちのもの」では無くなっているのでは、と感じているからです。

オープンソースとは

オープンソースとは平たく言うと「みんなで便利なプログラムのソースコードをオープンにして共有すれば超良いよね」という考えです。 あまりにもザックリな説明なので、深い理解や歴史に興味がある人はオススメの書籍を最後に書いておくので読んでください。

さて、もちろんですがオープンソース活動の中心にはオープンソースソフトウェアを作ることあります。 それについての情報を発信したり、場を提供することも素晴らしいことです。 How To Become A Hacker では以下の5つがあげられています

  1. Write open-source software
  2. Help test and debug open-source software
  3. Publish useful information
  4. Help keep the infrastructure working
  5. Serve the hacker culture itself

引用元 How To Become A Hacker

1、2は分かりやすいですね。 3はブログやFAQで有用な情報を書くこと、 4はメーリングリストRFCを運営すること(もはやSlackなどの各種サービスに代替されていますが)、 5はハッカー文化について伝えたり入門する内容を書くということですね(EricRaymondがオープンソースについて活動してきたこと自体を含むので意味の理解は若干難しいと思います)。

当たり前となったオープンソースの良いところ、ちょっと悲しいところ

How To Become A Hacker は素晴らしい文章なので読むことを強くオススメします。 ですが今となっては「当たり前」とも捉えられる内容かもしれません。 オープンソースそのものや、ハッカー文化や心構えを書いたエッセーだからで、今は「オープンソース」に疑問を持つこともないだろうからです。

僕が感じるのは、当たり前になった「オープンソース」に新しい接し方ができているということです

  1. オープンソース活動を通して、キャリアを形成する
  2. オープンソース活動を通して、企業やその製品やサービスを認知してもらう
  3. オープンソース活動を通して、業界の標準をとり製品やサービスに優位に進むようにする

(新しい、というのはオープンソース活動が普及した後、みんながGitHubを使うようになった後くらいの意味です)。

オープンソースが当たり前になったのは僕はすごいと思いますし、それを中心にした個人や企業の戦略なども良いものだと受け取っています。 かなり好意的に受け取っていますが、逆に、ある意味で遠いものになってしまったようにも感じます。

とくに2、3については「企業主体のオープンソース」となってしまい、「自分たちが参加するものではなくなってしまった」ように感じています。 1についても、「利用者」を超えて「貢献者」になった「すごい人」のみが、輝くように感じてしまいます。 (あくまで負の側面を抽出して見ていると捉えてくださいね)。

オープンソース(への貢献)と僕たちとの間に壁があるように感じてしまいます。 この壁とはなんでしょうか?それは、「お客様」と「提供者」の壁です。 オープンソースは全員が参加者であり提供しあうもののはずですが、このような「壁」を感じるのが昨今です。

お客様という癖

なぜお客様になろうとしてしまうのでしょうか? ソースコードはそこに公開されています。情報は自由に発信できます。

その原因は、人間には「お客様」になろうとする癖があるからだと思います。

人は生きていれば、人生のほとんどの時間を「お客様」として過ごしています。 たとえば、買い物をするときは「お客様」と扱われます。 電車に乗っているときは「乗客」と言われますね。 外食をするとき、仕事用の有料ソフトを使っているとき、はてなブログプロを購読して使っているとき、これら全ての瞬間で「お客様」となれます。 そして、仕事をしているときは「製品、サービスの提供者」としてお客様に価値を届けていることと思います。

つまり、人は生きている時間のほとんどを「お客様」もしくは「提供者」として生きていることになります。 「お客様」と「提供者」として常に生きています。 だから人は自然と「お客様と提供者」という立場をとる癖があると思っています。 (良い悪いという話ではなくて、その癖が染み付いているということ)。

「お客様」として受け取るのが当たり前という気持ちを持ってしまうことがあります。 逆に、何かを人にするときは「サービスの提供者」として最大限に頑張ってしまう癖もあります。

その「お客様と提供者」習慣があるからこそ、オープンソースにおいても「利用者」と「開発者(貢献者)」に分けて感じてしまうのではないでしょうか。

僕は、オープンソースフリーソフトウェアの世界ではその感覚を捨てて良いと思います。 捨てなきゃいけない、という意味ではなくて、その感覚から自由になって楽になって良いんだよ、ということです。

貢献する第一歩は「お客様」習慣をやめること

オープンソースへの貢献って難しいんでしょ?」

いえ、そうではありません。 僕はこの「お客様、提供者という感覚を捨てる」とこが第一歩だと思います。 オープンソースはみんなのものです。「お客様」として製品やサービスを受けることに専念する必要はありませんし、「提供者」として頑張って人のためになりすぎる必要もありません。

まだまだプログラミングも学びたてという人は、もちろんスキルを伸ばすことはまず大事だと思います。 ですが、勉強会に行くときも、純粋に自分がそこの一員として振る舞えば良いと思います。 私とあなた、という関係ではなく、みんなが一緒にいるんだという感覚をもつこと、これが第一歩だと思います。

そうすれば視点が変わると思います。

たとえば以下のような視点を持てると良いと思います

  • ツールに不満があったときは、それを改善する提案をしてみる
    • 難しければ、どう提案すればいいか人に聞いてみる。
  • ドキュメントに分かりにくい点があれば直す提案や変更をする
  • だれか困っている人がいれば解決の相談にのってあげる
  • 勉強会やイベントに行ったときにゴミが落ちていれば拾ってあげる。机を一緒に拭いてあげる

このように些細な瞬間でも「お客様でも提供者でもない一員である」と思えばやれることはたくさんあると思います。 おせっかいで良いと思います。ぞんざいに扱われるときもありますが、逆に言えば相手も丁寧に扱う責任もないので仕方ないと思います。 そういう、お互い自然であって良いという感覚が広まれば良いなと思います。 PyConJP にいくと、みんなが丁寧にゴミを捨てていて良いなと思います。

ポイントは「いい子」になろうと言っていないことです。自分らしく一員として振る舞えば良いということです。 そのうえで出来ることがあるなら協力しよう、ということです。 「このソフトまじ使いにくいな」とか言うのは自由だと思います。僕もしょっちゅう言っています。 ただその上で何かアクションを起こしたりできると良いと思います。

今からできることは

まず今から以下の観点をもってみましょう。

  • このツールやライブラリーはここが良くなれば良いのにな(僕にも協力できるかもしれない)
  • このドキュメントの和訳はここが直すと良さそうだ(誰に伝えると良いだろう)
  • この本は面白いな(読みどころとか読み方、ポイントを多くの人に伝えられないだろうか)

週末に勉強会に行く人は、心の中で実践してみましょう。

  • イベントで学んだことをまとめてブログに書こう(他の人にも教えてあげよう)
  • イベントをこうすれば皆がより楽しめる、学べるかな(手伝ってあげよう、いま協力しよう)

そういう「ちょっとした気持ち」から変わっていけば良いと思います。 自分はオープンソースコミュニティーの一員だと思って、何かできそうなときは、ゴミ拾いでも良いので協力してみましょう。

それが、僕はそれが一番大切な貢献だと思います。

オススメの本、エッセー

以下の本はこの話に深く通じる内容です。 僕自身がかなり好きな本やエッセーなので、ぜひ読んでみてください (ご丁寧にAmazonの広告としているので、この話を読んでよかったと思う人、僕にコーヒーを買ってあげたい人は以下から買ってください)。

伽藍とバザール

伽藍とバザール

伽藍とバザール

フリーソフトウェアと自由な社会

フリーソフトウェアと自由な社会 ―Richard M. Stallmanエッセイ集

フリーソフトウェアと自由な社会 ―Richard M. Stallmanエッセイ集

それが僕には楽しかったから

それがぼくには楽しかったから 全世界を巻き込んだリナックス革命の真実 (小プロ・ブックス)

それがぼくには楽しかったから 全世界を巻き込んだリナックス革命の真実 (小プロ・ブックス)