teratailはじめました

2020/8/9作成

思い立って、プログラミング特化型Q&Aサイトのteratailのアカウントを取って、いくつかの質問を眺めて回答してみました。まだ始めたばっかりですが、今の時点で思うところをまとめておきます。

質問する人にとっては自力でわからないことに回答がもらえるメリットがあるわけですが、回答する人にとってはメリットはなんでしょう。人の役に立てたという満足感もありますが、私が感じた一番は自分の勉強になるというところかなと思います。自分がある程度得意なジャンルであっても、何もかもを全て把握しきっているわけではありません。普段の開発ではあまり使わない機能については習熟してないことも多いです。そういうときに回答を通して勉強できるのはメリットかなと思います。

ただ、勉強になりますから、結構手間がかかります。一つの質問の回答のためにドキュメント調べたり、なんなら手元の環境で再現試験を行ったりしますから、1時間2時間はあっという間に過ぎたりもします。あんまり熱を入れすぎるとちょっと大変ですね。

再現する環境の用意が大変ってのはありますね。質問内容を見ただけで回答がわかることもありますが、実際に手元で動かしてみないとわからないことも多い。でも今どきの開発環境なんて構築するのは結構大変ですし、都度自分の生活環境にいろんな開発ツールをインストールするのも困る。となると、普段からDockerやVagrantなどで仮想開発環境を用意しておいて手軽に試せるようにしておくというのは大事かなと思います。

私は現時点では回答者として参加しているのですが、回答できる質問を探すのは結構大変です。そもそも質問者の方が問題そのものが十分理解できてなくて、質問内容が十分整理されていないために、回答のしようがないなと思うことも多々あります。それもそうで、世の中にはラバーダック・デバッグという手法があります。バグに困ったときに、他のスタッフに相談する前にアヒルのおもちゃに向かって問題を説明すると、説明の過程で何が原因かが判明して解決するというものです。アヒルのおもちゃの代わりにテディベアが使われることもあります。ともあれ、本質はアヒルかテディベアであるかではなく、問題を説明する過程で何が問題であるか整理され、その過程で原因も判明するというわけです。つまり、問題が解決できないのは問題自体を整理解明できてないということですね。おそらくですが、結構な割合のteratailerさんが、質問を書いている最中に自己解決して質問をせずに済んでたりするんじゃないでしょうかね。質問者自身が十分に問題を整理できてない状態で質問されているので、回答者としてもそもそも問題が何かを把握することができない。こういう質問の場合、大抵は既にベテラン回答者の方から追記依頼が出ていますので、そちらでのやり取りで詳細が把握できることもあります。

また、質問者の方が質問内容をよく把握してないというのは、その後の回答の流れにも問題を生じさせます。回答者が適切な回答をしたとしても、それを質問者が理解できるとは限らないのです。これはteratailに限らない質問サイトでの共通の課題だとは思いますが。回答がついて解決した後質問者はベストアンサーを選ぶわけですが、この選択も適切にできるとも限りません。頓珍漢な回答にベストアンサーが付いている残念なこともあります。もっとも、teratailの場合は他のユーザが回答を評価することができますので、そちらでカバーできる面もあるでしょうか。

質問者の方に少々厳しいことを書きましたが、回答者にも問題がないわけでもありません。なかには頓珍漢な回答がついてることもあります。teratailは回答するとスコアが貰えます。このスコアは特に換金できるわけでもない自己満足にすぎないものですが、それでも他の回答者とスコアを競えるとなると、とにかくスコアをあげるために何でもいいから回答するという人も出てくるのかもしれません。私はずっと以前ですが、はてな人力検索で回答者をしていたことがあるのですが、その時も頓珍漢な回答をする人がいました。はてな人力検索では回答者ははてなポイントが貰え、これは換金可能だったというのも大きいかもしれません。もっとも、回答でもらえるポイントは非常に少なくて小遣い稼ぎとしても割に合ってない額ではあったんですけどね。

質問があがって回答がありながら、質問者が回答を放置しているということもあります。ひどいのになると、質問から数時間しか経ってないのに質問者がteratailを退会してたりもします。何のために質問したのだろうと疑問に思うわけですが。回答を手元で試して質問者さんの問題が解決しているのならまだいいのですが、その結果をteratailにフィードバックしてもらえないと、回答者も他のユーザも困ってしまいますよねぇ。

とまあ、いろいろ思うところもありつつも、冒頭に書きましたとおり勉強になるのは確かなので、ぼちぼち自分の出来る範囲で時間を作って回答している今日この頃です。

(2020/8/22追記)

引き続きぼちぼちとteratailで回答してるんですが、teratailの参加をいざなうための仕組みって凄いなと思ったので、ちょっと書き留めておきます。

まずスコアがあります。質問や回答をするとスコアが貰えます。スコアは積算され、他のユーザさんとランキングが競えます。ランキングはこれまでのトータルのほかに月間、週間でのランキングもあります。新参者の私は総合ランキングでは競うのは大変ですが、月間や週間なら競うこともできそうですね。

バッジもあります。teratail上での特定の活動の回数が一定以上になるとバッジが貰えます。質問を5回したらとかですね。一つのバッジにもレベルがあって、5回回答したら次は10回回答というようにレベルがアップしていきます(レベルアップの回答数は適当です)。バッジ一覧画面で、自分が持ってるバッジと持ってないバッジをずらっと一覧すると、まだ持ってないバッジをもらうためにもうちょっと活動頑張ってみるかという気になります。またバッジの種類も豊富で、回答するのにしても、質問から15分以内のスピードスナイプとか、3日以上未回答に対する救世主とかいろいろあります。たくさんバッジがあるとつい集めたくなってしまうコレクション心理を突いてきてるわけ。バッジがたくさんあるので、コンプリートは相当に難しいと思います。つまり、いつまでも続けられるわけですね。

teratailの仕組みはまだあります。質問にはタグが付けられるのですが、このタグごとのレベルもあります。タグごとに質問や回答でスコアが集計され、タグごとにランキングされるほか、タグレベルも取得できます。タグレベルはnormalから始まってblue, bronzeとアップしていき、最上位のblackになるにはスコアが2500も必要。一つのタグぐらいならblack取得できるかもしれませんが、多くのタグで上位のレベルになるのは大変そうです。つまり、いつまでも続けられるということですね(2回目)。

エンジニア向けサービスでは、こうした参加をいざなう仕組みに力を入れているところって意外と少ないような気がします。例えばQiitaでは記事にLGTMが出来て、ユーザごとのContributionsの総計が算出されますが、そこまでです。公式にユーザランキングがあるわけではありません。非公式にランキングを発表されてる方はいらっしゃいますけどね。GitHubでは草を生やして活動履歴を誇示できますが、これも他者と比較できるわけでもありません。これは勝手な想像ですが、Qiitaをはじめとしたほとんどのエンジニア向けサービスは、技術を追求すること自体がエンジニアの喜びなんだから、スコアなんかでモチベーションを引き出すのは邪道だって考えがあるんじゃないでしょうか。いやほんと勝手な想像ですが。一方、teratailは正反対でユーザが参加してくれるならどんな施策でもやりましょうという意思を感じます。どちらが正解ということはもちろんありませんが、結果としてサービスが盛んになればそれがそのサービスにとっての正解なんだろうと思います。

私はやらないので正直よく知らないのですが、多分ソシャゲではteratailのような施策ってたくさんありそうな気がするんですよね。そういえば、teratailではアカウントを取ったあとは「次はこれをやりましょう」とチュートリアルを案内もしてくれる。これもソシャゲっぽい感じ。