ISUCON6の出題担当になったので抱負を語っておく
メリークリスマス!ピクシブ株式会社 Advent Calendar 2015は本日が最終日です。トリは去年に引き続き今年も@edvakfの担当です。
今日は「腕っぷしに自信のあるウェブエンジニアの祭典」こと、来年のISUCONの出題を担当することになった話を書いていきます。
(ISUCON運営のほうから正式な告知は別途あると思います。なにぶん暫定的なことも多いのですが、ご容赦ください)
ISUCON出題することになった経緯
「来年の出題者アンケートでピクシブさんがトップだったので、よろしければ是非」
なんてことをISUCON5本戦の懇親会で主催の櫛井さんから言われたときは答えに困りました。我々もISUCON「常連」と言える立場になってきましたので、とてもありがたいお話ではあります。しかしながら、率直な感想は
「オマエら押し付けやがってwww」
という感じでした。
というのも、過去2回の出題チームは当日の朝まで完全にデスマ状態で作業していたため、誰もが「出題は絶対勘弁!!」と思っていたはずだからです。
そうは言ってもISUCONのような楽しいイベントは今後もずっと続いてほしいですし、そのためには誰かが出題しなければいけません。
ISUCON誰かが出題しないと続かないので出題したい気持ちはあるけど重圧に負けそうなので軽々しくは手を挙げられないなー
— edvakf (@edvakf) November 3, 2015
ということで、櫛井さんと話しまして、来年のISUCON6は株式会社はてなさんと弊社で共同出題することになりました!
初の共同出題という試みについて
ISUCON3からは予選・本戦形式となり、出題者の負担は相当なものになりました。出題者として用意しなければいけないことを軽く列挙してみました。
- 各言語の参考実装
- ベンチマーカー
- 当日スコアを可視化するウェブサイト
- シードデータの絶妙なチューニング
- OSのセットアップ
- レギュレーション
- (オープニングムービー)
以上を2ヶ月連続で作るのは考えただけでもおぞましい仕事です。
共同出題の形式は、予選と本選をそれぞれ両社で担当することにしました。おそらく1つの問題は1人(または物理的に近い少人数)で作ってしまうのが最も効率的だからです。問題を考えるのはとても大変なので、1つだけに注力できることで負担は格段に軽くなります。……というのは問題を考え始めた現在痛感していることろです。
共同出題の利点は他にもあります。
事前解答の機会がある
ISUCON3のkayacチームがやっていたそうです。
- 問題のすべてを知り尽くした問題作成者には絶対にできないタスク、それが事前解答 https://speakerdeck.com/acidlemon/isucon3hurikaeri?slide=7
今回は、本番よりだいぶ前に両社が作成した問題を持ち寄って事前解答してみる機会を設けることにしました。
1社で問題を作る場合、どうしても出題者たちが問題についての事前知識を持った状態になってしまうと思いますが、2社でお互いの問題を解いてみることでかなり本番に近い状態で事前解答ができます。
これがあることで本番のクオリティが格段に上がると考えられます。
本番より前にデッドラインがある
実はこれが最大の利点なのではないかと思っています。事前解答なら出来が悪くて迷惑をかけたとしても出題者の間で「テヘペロ(・ω<)」で済ませられますし、なんなら事前解答は日程をずらしてもいいわけです。とはいえ他社さんが絡んでくることなので、完全に内輪ではない緊張感で事前解答の準備をしなければいけません。
本番までに一度プチデスマしておくことで余裕を持って本番に挑めます。(お仕事でも同じですよね!)
参考実装を分担できる
事前解答の時点では参考実装は相手の指定した言語だけを用意すれば良いのです。デッドラインが無ければ、「いつ各言語の参考実装を用意すれば良いか」を判断するのはとても難しくなります。早すぎれば問題の変更がしにくくなりますし、遅すぎれば本番に間に合わなくなる可能性がありますから。
そして、事前解答の段階で既にアプリケーションの仕様がほぼ固まっているはずなので、この時点から両社の出題者全員で他の参考実装を用意し始めれば良いはずです。両社で不得意な言語を埋められるのも利点でしょう。
ISUCON6の抱負
何事にも終わりがあり、ISUCONもいずれ続けられなくなる日が来るでしょう。特に出題者への負担は、過去問パターンが増えるにつれどんどん増していきます。
そんな中、僕のやるべきことは、本番の日を余裕を持って迎えることで、来年以降に誰かが「次は出題してもいいかな」と思えるようにすることだと思っています。
僕自身、本当は出場者としてISUCONを楽しみたいところではありますが、それ以上に1年でも長くISUCONを続け、1人でも多くの人に次のように思ってもらえれば幸いです。
今まで自分が仕事として問題解決してきた技術を使って競争できる場があるってのがすごく面白いなと思ってますし、自分の本気をぶつけられる場所としてISUCONがあると思うのでエンジニアにとって貴重な体験になると思います。
過去の出題者の方々は口をそろえて「出題するより解答するほうがよっぽど楽しい」と言っていますが、
ISUCON参加前と参加後に最も多くのものを持ち帰った人こそが勝者と言えるでしょう。
という観点で見れば、出題者は間違いなくISUCONの勝者なのです!
宣伝
ISUCON出題に興味のある方のご応募お待ちしております。