プログラマ御用達サイトの現CEOがブログで次期CEOを募集。どんなサイト?

プログラマ御用達サイトの現CEOがブログで次期CEOを募集。どんなサイト?

Image by Mudassar Iqbal via Pixabay

◆プログラマならよく知っているQ&Aサイトが新社長を募集

「Stack Overflow」というサイトを知っているだろうか? 知っている人はプログラマである可能性が高い。プログラマとして普通の行動をしていると高頻度で出会うサイトだからだ。

 この「Stack Overflow」が、次のCEOを募集しているという。創業者の Joel Spolsky が自身のブログに、そうした内容のエントリを投稿した。

「……こうしたミッションを率いる相応しいCEOを見つけるのは簡単ではない。私たちはきっと高額なヘッドハンターを雇うだろう。しかし、ここは Stack Overflow だぜ。私がこれまでに学んだことは、私が解答できない質問に答えられる誰かが、コミュニティにはいつもいたということだ。」

 くだけた感じで訳すとこんなところか。こうした台詞が、ユーモアとして出てくる土壌が「Stack Overflow」にはある。プログラマ御用達のサイトのCEOが、なぜこうしたエントリを投稿したのか。「Stack Overflow」について書くことで、プログラマ以外の人にも伝わればと思う。

◆世界トップ50アクセスに入る「Stack Overflow」

 そもそも「スタックオーバーフロー」という用語は、プログラミング用語だ。「スタック」はデータ構造の1つ、「オーバーフロー」は溢れ出すこと。「スタックオーバーフロー」とはプログラムのバグの一種だ。

「Stack Overflow」というサイトの名前は、設立者のブログの読者投票で決まった。このサイトは、プログラミング領域における知識共有コミュニティ、平たく言うとQ&Aサイトだ。

 さて冒頭の文章に戻る。「Stack Overflow」というサイトを知っている人は、プログラマである可能性が高い。そう言い切るのには理由がある。プログラマは、プログラムを書いている時に、よく問題に直面する。

 動くと思うコードが動かない。コードが想定した動作をしない。なぜかエラーが出る。なぜか止まる。その理由がさっぱり分からない。

 そうした時、その理由を考え、手掛かりを探そうとして検索エンジンを利用する。プログラムの関数名をキーワードにする時もある。もっと具体的なのは、出力されたエラーメッセージを「"〜"」でくくって検索することだ。

 何か情報はないか。自分が見落としている前提条件はないか。ずばりの解決方法が書いてあったら、この上なくラッキーだ。そうした期待とともに検索結果を見ると、かなりの高確率で出会うのが「Stack Overflow」というサイトだ。

 一縷の望みを託してGoogleのリンクをクリックする。そして、おそるおそるWebページを見る。そこには質問と解答が掲載されている。それも複数の異なるアプローチの解決方法が並んでいる。ページには問題を解決したコードと、どのように解決したかの説明が書いてある。有用な解答は、読者投票で高ランクになっていて一目で分かる。

 筆者も、何度となく「Stack Overflow」にたどり着いて、数々のコードを読んできた。多くの問題が解決したし、解決しなくても他のアプローチのための知識を得た。そうしたことを重ねることで、「Stack Overflow」というサイトが有用であることを認識していった。

「Stack Overflow」は、Jeff Atwood と Joel Spolsky によって2008年に開始された。2019年3月時点で登録ユーザは約1020万人であり、2600万を超える質問が存在する(Stack Overflow - Wikipedia)。

 それぞれの質問にはタグが付いており、そのタグの付いた質問の数も確認できる。本記事を書いている時点での数字を掲載する。「javascript」179万397件、「java」153万4572、「c#」130万975。100万以上の解答のあるタグが6種類、10万以上の解答のあるタグが55種類。いかに巨大なサイトであり、知識が蓄積されているのかが分かる(Tags - Stack Overflow)。

 ウェブサイトのアクセス数をランキングしていることで有名な「Alexa」では、「stackoverflow.com」は世界トップ50のWebサイトの1つとなっている。

 記事執筆時点では46位。ちなみに「stackoverflow.com」よりも上のサイトは、43位「Amazon.co.jp」、44位「Github.com」、45位「Xvideos.com」。下の47位は「Bilibili.com」である。これらと比較することで、その規模感が分かるだろう。その大きさから、プログラマーでない人でも、存在を知っておいてよいサイトだと言える。

◆失敗と解決方法の情報共有

「Stack Overflow」だけでなく世にQ&Aサイトは多くある。日本では、Yahoo!知恵袋、OKWAVE、発言小町などが有名だ。

 専門家に質問するサイトや、価格比較サイトでの質問コーナーなどもある。掲示板サイトでの質疑応答も含めれば、ネット上では多くの場所で質問と解答が行われて、知識が共有されている。

 しかし、そうしたQ&Aが、ネットのノイズと見なされることもある。たとえば、Googleで検索をした場合に、Yahoo!知恵袋のページがヒットする。リンクをクリックすると、「そうですね。大変ですね!」という解答がベストアンサーになっている。質問への解答ではなく、感情の共有を質問者が評価する。そうしたケースを何度も見た。

 また、解答が間違っているケースもある。答えを検証する方法がない質問の場合、その答えが正しいか分からない。その点、プログラムに関する質問と回答は検証可能だ。実際にそのコードが動くか確かめればよいのだから。

 インターネットは、数々のプログラムによって動いている。そうしたこともあり、プログラミングについての質疑応答は、昔からネット上に存在していた。しかし、古いスタイルの掲示板は、初心者には敷居が高かった。

「知識があることを偉い」と勘違いした古参が、新参者を「勉強不足」となじる場面を多く見て来た。誰もが初心者から始まるのだから、そうした態度はよくないと何度も思った。今でも時折、そうした検索結果に出会うと残念な気持ちになる。

 そうした問題に1つの光明をもたらしたのが、質問や回答、回答者を評価するシステムだ。人間関係や人間の行動を、システムの設計により制御する。そうすることで無用な軋轢を取り除き、望ましい行動を人間に取らせる。「Stack Overflow」に限ったことではない。Q&Aサイトの多くでは、こうした設計上の工夫が見られる。

「Stack Overflow」では、「reputation(評価)」というシステムで、行動に導線を与えている。サイト上では、質問や回答にはプラス票やマイナス票を与えることができる。その投票によって評価は増減する。

 評価が上がれば、権限が解放されて、できることが増える。「Stack Overflow」はQ&Aサイトに、ゲーミフィケーションを持ち込んでいる。

 古い掲示板などで古参が居座り、権威的に振る舞っていたのは、「コミュニティ内での地位」が「報酬」の代わりになっていた側面がある。そうした望ましくない振る舞いを取り除くために、「権威」の代わりに「評価」や「権限」が報酬として与えられるようにデザインされているわけだ。

 また「Stack Overflow」では、質問に対する回答とコメントを分けているのも特徴的だ。質問と回答だけが大きく表示され、それらに対するコメントは小さい文字で掲載される。結果的に、質問と回答だけが目立ち、訪問者にとって価値のある情報だけが目に入る。

 利用者もガイドラインに従い、「質問と回答」「それ以外のコメント」を分けて考え、書き込む。この仕組みが、感情のぶつけ合いを抑止している側面もある。

 人の行動や感情は、ルールとその運用によって変えることができる。ネットが知識の共有の場になるためには、人間関係や行動のデザインが必要になる。

 何よりも、有用な情報が多く、分かりやすく提示されている「Stack Overflow」は好感度が高い。誰もが手放しで絶賛するわけではないが、望ましい知の共有のために努力している様子が伝わってくる。

◆理想的な「知の共有」

 冒頭の Joel Spolsky のブログエントリに戻ろう。「私が解答できない質問に答えられる誰かが、コミュニティにはいつもいた」。

 インターネットは、世界の人々の知的レベルを押し上げると期待されていた時代があった。

 ――自分が答えられないことに、答えてくれる誰かが世界のどこかにいる。

 ――世界の人々は、そのために繋がっている。

 そうした理想に、現実が少しでも近づいていけばよいと思う。

<文/柳井政和>

やない まさかず。クロノス・クラウン合同会社の代表社員。ゲームやアプリの開発、プログラミング系技術書や記事、マンガの執筆をおこなう。2001年オンラインソフト大賞に入賞した『めもりーくりーなー』は、累計500万ダウンロード以上。2016年、第23回松本清張賞応募作『バックドア』が最終候補となり、改題した『裏切りのプログラム ハッカー探偵 鹿敷堂桂馬』にて文藝春秋から小説家デビュー。近著は新潮社『レトロゲームファクトリー』。

関連記事(外部サイト)