ソフトウェアエンジニアに100の質問

「100の質問が流行れば面白いんじゃないか」「チームやコミュニティで使えば楽しいんじゃないか」と思い、**ソフトウェアエンジニアに100の質問** というタイトルで今回投稿してみました。

内容としては以下に当てはまる方に刺さるのではないかと思っています。

- 「ソフトウェアエンジニアに100の質問」に答えてみたい方
- 100の質問全般について知りたい方
- 100の質問がエンジニアとどう関係があるの？と疑問や興味を持った方
- チームコミュニケーションに刺激が欲しい方
- 採用活動に使えそうなネタを探している採用関係者の方

# 100の質問とは

**100の質問**（より一般化すると **nの質問**）とは、100個の質問に答えたものを自分のサイト等に載せて楽しむ遊びです。質問は「●●に100の質問」という形で用意されており、●●な人はそれをコピペして、自分の回答を書き加えてからウェブサイトやブログ等に投稿する……そんな感じで遊びます。

一昔前に国内で流行りましたが、Twitter を始めとするモダンサービスの台頭により、いつの間にか姿を消してしまいました。

参考: [100の質問とは - はてなキーワード](http://d.hatena.ne.jp/keyword/100%A4%CE%BC%C1%CC%E4)


※ ちなみに「100」と書いていますが、別に 50 でも 30 でも問題ありません。むしろ気軽さや（詳しくは後述しますが）実用性を考えると 100 は多すぎると感じるでしょう。どちらかといえば 100 は「100個もあるんだぞ」というネタ的側面が強いです。 **本記事では「100の質問」という呼び方で統一します。**

# ソフトウェアエンジニアに100の質問

「100の質問」のソフトウェアエンジニア版があったら面白いんじゃないか？ GitHub で運用したら上手い具合にソーシャルされて楽しいんじゃないか？とふと思ったので、作ってみました。

- [ソフトウェアエンジニアに100の質問（GitHubリポジトリ）](https://github.com/stakiran/100q)
- [ソフトウェアエンジニアに100の質問（質問のみ）](https://github.com/stakiran/100q/blob/master/100q.md)
- [ソフトウェアエンジニアに100の質問（筆者回答サンプル）](https://github.com/stakiran/100q/blob/master/100q_stakiran.md)

よろしければ Fork なりコピペなりして遊んでみて下さい。

質問が気に食わない方は、適宜に削って答えるか、独自に作り直して「こんな質問作ってみたよ」と公開するのも良いでしょう。100 が多すぎるなら 50 とか 30 とか 20 に削っても良いですし、そもそも「ソフトウェアエンジニア」に限定する必要もありません。

# で、100の質問は何が有意義なの？

100の質問はただの遊びにとどまらず、実用的な価値も持っていますので見ていきましょう。

## メンバー間のプロフィール共有に

100の質問は、職場の部署やプロジェクトやチーム内で運用することができます。

たとえばメンバー全員に答えてもらい、答えたものをみんなが見れる場所に載せておく……という運用にすると、みんなの詳細プロフィールを見ることができます。息抜き用としても使えますし、エンジニアとしてのこだわりや思い、キャリアプランなどを共有する目的でも使えるでしょう。そこはどんな質問を作るか次第でどうとでもなります。

といっても、すでに定着した集団に対して「さあ今から答えろや」と展開しても「えー、面倒くさいよー」となるに決まっているので、タイミングとしてはプロジェクトやチームを新設する時や、あるいは新人に対して答えてもらうのが良いと思います。

## 採用活動時のエントリーシートに

100の質問は、採用活動を行う企業さんにとっても有益になります。

たとえば **「弊社に入社するために答えるべき 100 の質問」** を用意して、答えることを要件にしてしまうのです。そうすれば、採用側としては「何を訊くべきなのか」を形式的に整理し、応募者に展開することができますし、応募者としてもこれに答えるだけで済む（あるいは答えられない＝この会社には向いてないと判断できる）ので、採用活動を効率化できるでしょう。

もちろん面接や面談で顔を突き合わせて話し合うことも重要です。ただ、100の質問はその前のインプットとして活用できるのではないかと思うのです。

## 自分を見つめ直すために

100の質問は無慈悲です。容赦なく質問を突きつけてきます。

もし仮に、出来の良い「ソフトウェアエンジニアに 100 の質問」があったとしたら、その質問に答えていくだけで自分を見つめ直すことができるでしょう。得手不得手、立ち位置、やりたいこととやりたくないことなど、色んなことを再認識できるはずです。

100の質問は答えるだけでも気付きがあります。**必ずしも公開する必要はありません**。

## 創造的な遊びとして

**100の質問を作る** ことは中々に創造的です。

質問内容を検討することはもちろん、作った「質問一覧」から「答えてもらう用の清書」に変換する仕組みも考えないといけません。もっとも必須ではないのですが、たとえば質問番号を1, 2, 3, ...と手作業で振っていくのはだるいです。特に2番と3番の間に新しい質問を入れた場合は、3番以降の番号を全部手で直すの？という話になります。さすがにツライのではないでしょうか。

このあたりの上手い仕組みを考え、実現することは、エンジニアの腕の見せ所です。力試しや暇つぶしとしても面白いのではないかと思います。

## アピールとして、遊びとして

100の質問を使えば、自分の事をこれでもかとアピールできます。また「この質問に答えてみたよー」と遊ぶこともできます。100の質問というネタは、たぶんエンジニア界隈には無かったと思うので、刺激的ではないでしょうか。

# 実装のお話（今回作った100の質問について）

ここからは少し趣向を変えて、今回作った「100の質問」の実装やらコンセプトやら、内部のお話をします。

## 公開用と作業用

上記でも紹介した [ソフトウェアエンジニアに100の質問](https://github.com/stakiran/100q) は、公開用のリポジトリです。

これとは別に作業用の [stakiran/100q_work](https://github.com/stakiran/100q_work) リポジトリも作っています。質問はこちらで作り、出来上がったものを公開用にコピペして公開している……そんな運用をしています。

というのも、単一テキストだけで100の質問を作るのは大変だからです。具体的には、以下の苦行があります。

- 質問番号を書かなければならない
- 質問の挿入や削除を行った時、以降の質問番号を全てずらさないといけない
- フォーマットを後から変えたい時に、全部手で修正しなければならない

これらを対処するには、何らかの仕組みを考えねばなりません。

## builder.py

そこで私は「入力ファイルを変換スクリに食わせて清書をつくる」「入力ファイルに質問ネタをガシガシ書き殴る」「オプションとかも指定できるようにして出力形式を制御できるようにしよう」みたいなことを考えました。

登場人物

- 100q_src.md …… 入力ファイル。ここに質問を書き殴る。
- [builder.py](https://github.com/stakiran/100q_work/blob/master/builder.py) …… 100q_src.md を食って100の質問の清書を作る。
- 100q.md …… 清書。

こんな感じです。

特に目新しいことはしていないと思いますが、ともあれ、オール手作業よりは楽になりました。

## どんな質問を入れたか

「ソフトウェアエンジニアに100の質問」として、どんな質問が考えられるでしょうか？答えを言うと、質問作成者が知りたいことを尋ねる質問を用意すれば良いと思っています。

私の場合、以下の観点で考えました。

- 働き方
- 環境（デバイスから常用ツールまで）
- 技術的なこだわり
- 宗教論争に対する持論

# 密かな思い

今回このような記事を書いた理由――特に私が「100の質問」に込めている思いを書いておきます。

先日 [GitHub で使われる慣習的なリポジトリについてまとめてみた - Qiita](http://qiita.com/sta/items/c69d73fb1bb781fe6b9c) という記事を公開しましたが、この慣習的なリポジトリとして 100q が広まったらいいなあと密かに思っています（できれば英語圏にも広めたいところですが、今のところは日本語前提にしてます）。

色んなエンジニアさんが 100q リポジトリを作り、質問に答えている世界。面白そうだなあと思います。別に GitHub に限定しなくても良いのですが、とにかく「100の質問」が「エンジニアのみなさんの内をさらけ出す手段」となって広まってくれればいいなーと思っています。

ソフトウェアエンジニアは使用ツールから考え方まで、色んなこだわりを持っています。本人には自覚が無くとも、多くのこだわりが眠っています。そういった「多様性」と言えばいいのでしょうか、もっと知りたいなあと、知れる文化が広まったら楽しそうだなあと思っているのです。

# おわりに

100の質問について書いてみました。参考や刺激になれば幸いです。