こんにちは、櫛井です。
8月19日(水) に開催される学生限定のISUCON夏期講習で講師をつとめていただく予定の、ISUCON5 出題者であるトレジャーデータ株式会社の@kamipoさんと@tagomoris さんのお二人に、ISUCONの魅力やISUCON5の問題についてなど色々と聞いてみました。
まず初めに、kamipoさんは過去全てのISUCONに参加してことがある経験者で今回は初の出題側、tagomorisさんはISUCONの企画立案者でISUCON1〜2では出題担当、ISUCON3〜4では優勝しておりISUCONで負けたことがないというお二人であります。

左 kamipoさん、右 tagomorisさん
念のためですが、ISUCON5はこのような日程です!
・学生限定ISUCON夏期講習 8月19日(水) ※8月5日締切 申し込みはこちら
・ISUCON5 オンライン予選 9月26日(土)、27日(日)の二日間のいずれか
・ISUCON5 本選(渋谷ヒカリエ)10月31日(土)
――押しかけちゃいましたが、今日は宜しくお願いします。今回は「ISUCONを知らない人や参加してみようと思ってるけどまだ参加したことがない人向け」に色々聞かせてください。まず、ISUCONとはなんでしょうか?ご自身のブログでも説明いただきましたが、こちらでも聞かせてください
8月19日(水) に開催される学生限定のISUCON夏期講習で講師をつとめていただく予定の、ISUCON5 出題者であるトレジャーデータ株式会社の@kamipoさんと@tagomoris さんのお二人に、ISUCONの魅力やISUCON5の問題についてなど色々と聞いてみました。
まず初めに、kamipoさんは過去全てのISUCONに参加してことがある経験者で今回は初の出題側、tagomorisさんはISUCONの企画立案者でISUCON1〜2では出題担当、ISUCON3〜4では優勝しておりISUCONで負けたことがないというお二人であります。
左 kamipoさん、右 tagomorisさん
念のためですが、ISUCON5はこのような日程です!
・学生限定ISUCON夏期講習 8月19日(水) ※8月5日締切 申し込みはこちら
・ISUCON5 オンライン予選 9月26日(土)、27日(日)の二日間のいずれか
・ISUCON5 本選(渋谷ヒカリエ)10月31日(土)
――押しかけちゃいましたが、今日は宜しくお願いします。今回は「ISUCONを知らない人や参加してみようと思ってるけどまだ参加したことがない人向け」に色々聞かせてください。まず、ISUCONとはなんでしょうか?ご自身のブログでも説明いただきましたが、こちらでも聞かせてください
tagomoris
はい、まずISUCONとはシンプルに「Webアプリケーションを早くする」というものですね。プログラミングは普段趣味でやってると自分でイチから作ることはありますが、誰かが書いたものに手を入れるというのはあまりありません。オープンソースでWebアプリ丸ごとってのはあまり無いですし、そもそも性能が問題になることはない。この「Webアプリを早くする」というのは、仕事でやらないとあまりやらないジャンルで、仕事じゃなくてやれるというか仕事じゃない状態でそれをやるのは珍しい。そんな技術コンテストです。
――そもそもなぜISUCONをやろうと思ったんでしょうか?
tagomoris
単純に、そういうことやると面白いかなって思っただけですね(笑) みんなで一緒のことをやるのは面白い。同じお題があって、それぞれ違うことを違う方法でやるのが面白い。みんなが同じ問題をやれば言い訳きかないですしね。
実際にやってみるとすごいことをやる人が出るんじゃないかと思っていたんですが、ISUCON4の予選だったと思いますけどC++で実装しなおして予選を突破した人がいて、面白かったですね。自分ではまず出来ない方法だし、普段自分がどのくらいやっているか差がすごく出るんですね。何をやってもいいけど、きちんとやりきれる知識と経験があるというのが大事なので。
――tagomorisさんは以前「ナンバーワンを決めるんや!」みたいなことをおっしゃっていたと思いますが、あれはもう最近言わないかんじなんでしょうか?
tagomoris
ああー、いや、言わないってことじゃないですが。1番を決めるって言っても難しいじゃないですか。「すげえなこの人」って思うこともあるけど「でもそれってこの条件じゃないと使えないよね」とか「一般的にこうした方がいいんじゃないの」って思っちゃう。会社の体制とか状況によって許されるやり方って事もあるだろうし、それなりに結果が出るということもある。それを「自分たちのところでは出来ないしなぁ」という言い訳を作りながら聞いてしまう自分がいるんですよね。
そういうのを全く取り払ったら何が見えるのか見てみたかったんですね。すごい強い人にボコボコにされたらどうなるんだろうと… そういう世界まだ見たことが無いんですが…。なんかすいません。

参加側で負けた事がない tagomorisさん
――ナンバーワンを決めるって言ったら「ナンバーワンは俺だ」って宣言することになるから言わなくなったと…納得しました。ISUCONという競技にはどのような楽しさがあるんでしょうか
tagomoris
他のことは何も考えずに1つのことに集中できるのというのがすごく楽しいですよ。普通にコード書いてると仕事ですけど「この時間からこの時間までこれしかやらなくていいよ」といわれて書くのは楽しい。学生の頃もコード書いてましたけど、基本的には時間制限がないんですね。学祭に出すとかタイムリミットがあるものはデスマ化しますけどそれは例外として。とにかく6〜7時間でガッツリやっておしまいというのはない。その時間をガッツリ集中してチームでやるのが楽しいんです。
それと、時間制限がある中をチームで密接にやるというのも仕事ではほとんど無いですね。仕事でやる時はもうちょっとゆるいチームワークで、例えば何時間かを1人でがーっとやって、それぞれ分担して、1日に1回とか確認しながら進めていくことが多いので。ここまで緊密なチームワークが要求されることはないですよ。
kamipo
みんな仕事していてもそれぞれ向き合ってる問題は違うから、まわりのエンジニアと相対的に自分のスキルや能力を比較できるタイミングって全然ないんですよね。ISUCONはそれが実現されてるなと思って、それが楽しいというかすごい面白いなと感じてます。
問題の設計がいいおかげなんですが、普通に作るよりもボトルネックがちゃんと用意してあるので、解決できればWebアプリが早くなるようになってる。変にやろうとするとドツボにはまったりする。仕事でそこまでしないよねってことをみんななぜかギリギリをせめてやっちゃうのも面白い(笑)
それと、過去のISUCONがすごいのは何か1つだけ強いとか得意なチームでは勝てないってことだと思います。そういう結果にしようと思ったら出題側も考えないといけないし、例えばカーネルモジュール作りました、超早いHTTPサーバ作りました、だけじゃ勝てないんです。そこが面白いところでもあると思います。

辛いものには滅法強い kamipoさん
――では総合力が高いところが勝つ?
tagomoris
1回目の時からそういう気持ちで作ったし、そのあとの出題者の方々もそういう狙いや方向で問題を作ったからそうなってるんだと思います。なにか1つだけで勝てるのは面白くないよなっていう。以前、チューニンガソンという技術コンテストがあって、あれは一点突破の勝負だったんですね。
kamipo
そうでしたね、問題は行ってみないとわからないから「Javaやるか、寝るか」みたいな。
tagomoris
一点突破もそれはそれで競技としては面白いし、これに強かったらこうなるんだすげえなってのはあるんですが、知ってるかどうかの要素が強くなるんです。普通にWebアプリを書いていると、1つのことに詳しいから強いってことはないはずで、どんな言語でもちゃんと書こうと思えば書けるはず。ISUCONが複数の言語の参考実装を用意しているのは、言語の問題じゃないしフレームワークの問題でもWebサーバの問題でもないってことを表明するためなんです。複数言語を用意するのは大変なんですけどね…
※注 課題アプリケーションの実装をお手伝いいただける方を募集しております!
▼ISUCON5 課題アプリケーションの実装をお手伝いいただける方を募集!
――楽しさという点以外で、参加するメリットや得られるものってありますか?
tagomoris
自分が出てみるまでは「なんでみんなこんな激烈に喜ぶのかがわからなくて、面白いんだろうけど俺出られねえしな…」と思っていたので。kamipoさんはわかるんじゃないですか?
kamipo
うーん、ちょっと本筋と違うかも知れませんけど、ぼくリアル脱出ゲームが好きなんですね。あれって脱出率がすごい低くて10%とかなんですよ、つまりほとんどの人が脱出できない。与えられているものは同じなのに、見えてる人と見えてない人がいるってことがめっちゃ悔しいんですよ。「あいつらはあれに気付けたのかー」って。ISUCONはそういうところが似てるかなと思ってます。大人になると本気で悔しいって思うことがほとんど無いんですね。その「本気で悔しい」という気持ちになれるのが、ISUCONのいいところだったり得られる体験なんじゃないかなと思います。
僕はLLプログラマだから、本気で早いプログラムを書くと勝てない世界があるんです。競技プログラミングみたいな本気で早いプログラムが書けない、プログラマとしてこういう分野で勝てないと思ってます。でも、今まで自分が仕事として問題解決してきた技術を使って競争できる場があるってのがすごく面白いなと思ってますし、自分の本気をぶつけられる場所としてISUCONがあると思うのでエンジニアにとって貴重な体験になると思います。
――「余裕で優勝できちゃうわー」と思いながら参戦して入賞すら出来なくてコテンパンにやられたって話もちょいちょい聞きますね。tagomorisさんはいかがですか?
tagomoris
自分の場合は、単純に自分がやってないことを他の人が試した話を聞けるのがとてもよいと思ってますね。例えば、今まで仕事でVarnishサーバを使ったことないけど使いどころを選ぶとISUCONでも力を発揮できるってのは何となくわかるんです。終わってみて参加者と話していると、普段から仕事でバリバリ使っている人が「Varnishを使ってこれをやってこのくらいのスコアが出たよ」っていう話がポロッと出てくる。
みんなが同じ問題を説いているから、そういうプロのノウハウが山程聞けるんです。みんな話したくてしょうがないから(笑) それって超貴重なノウハウなんですよね。普通に勉強会に呼んで話してもらおうと思ったら金額的にいくらかかるかわからないくらい高額になるだろうし、自分でやったことと比較しながら聞けるのですごく自分の身にもなるんですよ。
――参加側のメリットは多いということですね、では出題側の大変なところはどういうところでしょうか?
tagomoris
ISUCON1と2を作った時ですが、普通に作ると簡単すぎる問題がまず出来るんですね。「これでいけるかな」と思って誰かに解いてみてもらうと簡単すぎる。難しくするために色々盛り込むけど、今度は難しくなりすぎる。自分たちは問題を知ってるしどういうふうにやれば早いアプリになるのかがわかっているので、どんどん難しいのを詰め込んでいっていくと作っているうちに「俺が思いつくものはみんなきっと出来るだろう」と思い込んでしまって、最終的に難しくなりすぎる。ここが難しいところですね。
ISUCON1 は出場しない同僚に解いてもらって意見を聞いて、ISUCON2 は解く側と作る側の分担をしてと、問題の難しさの調整をしていました。あとは、やってみてわかるものですけど、一番先にこの点数に達したチームには特別賞、というのがあると「ここまではいくんだな」というのがわかるので、ガイドラインみたいなのは大事だなと思いましたね。第三者の目がないとつらいなと。
※注 ISUCON4 では特別賞がありませんでした
――ISUCON4 終了時に「次回は出題お願いしますね!」と私から依頼して約束を果たしていただいたという形になりましたが、トレジャーデータさんとしてご協力いただけることになり、ありがとうございます。仕事として作業いただくことになると思いますがどのような理由でお受けいただいたんでしょうか?OSS活動の一環という形でしょうか?
tagomoris
そんなに深い話はないんですが(笑) そうですね、仕事とは直接関係ないけど、この出題に関しては「OSSっぽいなにか」という括りになっています。OSS活動に寛大というか「面白くてやってるのならいいんじゃない」というニュアンスです。他のこともそうですが、業界のためになるならいいんじゃないかというスタンスで会社としては見てもらっています。Fluentdとかまさにそんなかんじですが、直接これをやるとトレジャーデータが嬉しくなるという話でやっているわけでもないです。
kamipo
トレジャーデータにいて感じることなんですが、馬車の時代から車を作っていたみたいに、最初に車を作ったとしてもみんなが車に乗る世の中にならないと道も作られないし車も増えていかないんですよね。トレジャーデータは「そもそもみんなデータを分析したいんだけど分析し始めるまでが遠いからそこを近くする」ってのをやっているんです。例えばFluentdをつかってトレジャーデータではないところにデータをあげることもあるけど、データを分析をする世の中にするために必要なことと思っています。巡り巡ってデータ分析という基盤の提供をしているんですね。
tagomoris
ですね、いま話したことはISUCONとは直接関係ないですけど、何かの業界を底上げするっていうのはどこかがやるのはすごく大事で、細かいことを考えず底上げするのは必要なんです。ISUCONは業界を底上げするという視点では一緒で、どこかがやっていけばいいと思っていて、トレジャーデータがやってもいいし、どこか違う会社がやってもいいよねくらいの感覚です。続いていけばいいなと思ってます。
――ありがとうございます。ではちょっと視点を変えて、例えば学生が参加した時にどういったメリットがありますか?
tagomoris
そうですね。Webサービスの人たちが普段なにをやっているのかが一発でわかると思いますよ。ISUCONは普段やってることしか出せないから、どんなアプローチでどういう技術を使っているかがハッキリとわかります。学生の頃にWebアプリを自分で作っても、キャッシュを頑張ろうとかSQLをマシにしようとかはないんですよね。学生枠もあるので一般よりは多少本選に進みやすいと思いますが、予選を入れると2日でお手軽に2回体験できるってのはすごいメリットになるんじゃないかなと。
負荷のかかるサービスに手を入れるのって、学生だとどこかにバイトでいくしかないですよね。そして、どんな会社でもそうですけど、性能問題ってサービスに直結するので "出来る人" がさわるんです。「今サービス全体が超遅くなっててページも表示されないんだけどやってみていいですか」とは言えないんですよね。自分で手を動かして改善していくステップはそういう状況では踏めないんです。それが体験できる機会はそうそうないし、学生以外にも是非体験してほしいです。
kamipo
僕が考えるに「普段はギターで今日はボーカル」とか仕事だと出来ないけど、ISUCONだと出来るんですよね。ミスっても誰にも迷惑かからないし、でも超真剣にやれる。ミスっても誰にも迷惑がかからないってことはプログラミングしていくうえではありえないし、仕事だと尚更なので。 だからISUCONでは「当方ボーカル、ギター募集」ってかんじでチャレンジできるので色々やってみてほしいなと思います。何でもアリ、がISUCONなので!
――出題に関して、そろそろ予選と本選の問題内容は決まってきましたか?中身を知ってしまうのも面白くないので雰囲気を教えてください
kamipo
今までいち参加者としてやってきた気持ちでいうと「現実の問題に則した問題」にしたいなと思っています。それでいて「なるほどこうきたか」という問題にしたいですね。参加者として負けてきた経験があるので、勝てなかった人にとって納得感があるというか「この問題だったらしょうがない」というものにしたいです。
tagomoris
イメージとしてですが、予選はすごく王道っぽい問題にしようかなと思ってます。去年だと200組近くが予選に参加して20組くらいが本選に進めるという割合だったので「予選こそがISUCON」という人が増えてます。なので「これがISUCONだ」というものにしたいですね。
――では過去問やってればぼちぼちいけるってことですかね?
tagomoris
無駄にはならないと思いますけど、もっと普通に「Webアプリケーションあるある」な要素を入れていきたいと思ってます。「予選だからこれが有効」ってのはない形で、本選でも有効な予選にしたいですね。
本選に関してはもうネタはありますが、上位に行った人が「あぁ、これをやれた自分はすごいな」と思える問題を出したいと思っています。2年参加側にまわったので気力が充実しているため、期待していてください。
――ありがとうございました
というわけで、参加メンバーの募集を皆さん今から始めておいてください!学生の皆さんは交通費補助あり、メンバー募集も出来るISUCON夏期講習の参加者を絶賛大募集中ですので是非ご応募ください。実際に過去問題を解きながら、スピードアップのコツを教えてもらうことも出来るようです。
講習後の懇親会ではtagomorisさんやkamipoさん、過去に三度優勝経験のあるsugyanさんなども参加予定ですので直接色々と話が出来ると思います。学生限定ISUCON夏期講習の開催日は 8月19日(水) で、8月5日(水)が締切となっています。お申込みや詳細はこちらからご確認ください。
▼旅費負担!出場メンバー募集OK! 学生限定の ISUCON夏期講習 開催のお知らせ
過去のISUCONの問題、参考解答例などそれぞれの回ごとにまとめていますのでこちらも是非。
▼ISUCON1 まとめ
▼ISUCON2 まとめ
▼ISUCON3 まとめ
▼ISUCON4 まとめ
はい、まずISUCONとはシンプルに「Webアプリケーションを早くする」というものですね。プログラミングは普段趣味でやってると自分でイチから作ることはありますが、誰かが書いたものに手を入れるというのはあまりありません。オープンソースでWebアプリ丸ごとってのはあまり無いですし、そもそも性能が問題になることはない。この「Webアプリを早くする」というのは、仕事でやらないとあまりやらないジャンルで、仕事じゃなくてやれるというか仕事じゃない状態でそれをやるのは珍しい。そんな技術コンテストです。
――そもそもなぜISUCONをやろうと思ったんでしょうか?
tagomoris
単純に、そういうことやると面白いかなって思っただけですね(笑) みんなで一緒のことをやるのは面白い。同じお題があって、それぞれ違うことを違う方法でやるのが面白い。みんなが同じ問題をやれば言い訳きかないですしね。
実際にやってみるとすごいことをやる人が出るんじゃないかと思っていたんですが、ISUCON4の予選だったと思いますけどC++で実装しなおして予選を突破した人がいて、面白かったですね。自分ではまず出来ない方法だし、普段自分がどのくらいやっているか差がすごく出るんですね。何をやってもいいけど、きちんとやりきれる知識と経験があるというのが大事なので。
――tagomorisさんは以前「ナンバーワンを決めるんや!」みたいなことをおっしゃっていたと思いますが、あれはもう最近言わないかんじなんでしょうか?
tagomoris
ああー、いや、言わないってことじゃないですが。1番を決めるって言っても難しいじゃないですか。「すげえなこの人」って思うこともあるけど「でもそれってこの条件じゃないと使えないよね」とか「一般的にこうした方がいいんじゃないの」って思っちゃう。会社の体制とか状況によって許されるやり方って事もあるだろうし、それなりに結果が出るということもある。それを「自分たちのところでは出来ないしなぁ」という言い訳を作りながら聞いてしまう自分がいるんですよね。
そういうのを全く取り払ったら何が見えるのか見てみたかったんですね。すごい強い人にボコボコにされたらどうなるんだろうと… そういう世界まだ見たことが無いんですが…。なんかすいません。
参加側で負けた事がない tagomorisさん
――ナンバーワンを決めるって言ったら「ナンバーワンは俺だ」って宣言することになるから言わなくなったと…納得しました。ISUCONという競技にはどのような楽しさがあるんでしょうか
tagomoris
他のことは何も考えずに1つのことに集中できるのというのがすごく楽しいですよ。普通にコード書いてると仕事ですけど「この時間からこの時間までこれしかやらなくていいよ」といわれて書くのは楽しい。学生の頃もコード書いてましたけど、基本的には時間制限がないんですね。学祭に出すとかタイムリミットがあるものはデスマ化しますけどそれは例外として。とにかく6〜7時間でガッツリやっておしまいというのはない。その時間をガッツリ集中してチームでやるのが楽しいんです。
それと、時間制限がある中をチームで密接にやるというのも仕事ではほとんど無いですね。仕事でやる時はもうちょっとゆるいチームワークで、例えば何時間かを1人でがーっとやって、それぞれ分担して、1日に1回とか確認しながら進めていくことが多いので。ここまで緊密なチームワークが要求されることはないですよ。
kamipo
みんな仕事していてもそれぞれ向き合ってる問題は違うから、まわりのエンジニアと相対的に自分のスキルや能力を比較できるタイミングって全然ないんですよね。ISUCONはそれが実現されてるなと思って、それが楽しいというかすごい面白いなと感じてます。
問題の設計がいいおかげなんですが、普通に作るよりもボトルネックがちゃんと用意してあるので、解決できればWebアプリが早くなるようになってる。変にやろうとするとドツボにはまったりする。仕事でそこまでしないよねってことをみんななぜかギリギリをせめてやっちゃうのも面白い(笑)
それと、過去のISUCONがすごいのは何か1つだけ強いとか得意なチームでは勝てないってことだと思います。そういう結果にしようと思ったら出題側も考えないといけないし、例えばカーネルモジュール作りました、超早いHTTPサーバ作りました、だけじゃ勝てないんです。そこが面白いところでもあると思います。
辛いものには滅法強い kamipoさん
――では総合力が高いところが勝つ?
tagomoris
1回目の時からそういう気持ちで作ったし、そのあとの出題者の方々もそういう狙いや方向で問題を作ったからそうなってるんだと思います。なにか1つだけで勝てるのは面白くないよなっていう。以前、チューニンガソンという技術コンテストがあって、あれは一点突破の勝負だったんですね。
kamipo
そうでしたね、問題は行ってみないとわからないから「Javaやるか、寝るか」みたいな。
tagomoris
一点突破もそれはそれで競技としては面白いし、これに強かったらこうなるんだすげえなってのはあるんですが、知ってるかどうかの要素が強くなるんです。普通にWebアプリを書いていると、1つのことに詳しいから強いってことはないはずで、どんな言語でもちゃんと書こうと思えば書けるはず。ISUCONが複数の言語の参考実装を用意しているのは、言語の問題じゃないしフレームワークの問題でもWebサーバの問題でもないってことを表明するためなんです。複数言語を用意するのは大変なんですけどね…
※注 課題アプリケーションの実装をお手伝いいただける方を募集しております!
▼ISUCON5 課題アプリケーションの実装をお手伝いいただける方を募集!
――楽しさという点以外で、参加するメリットや得られるものってありますか?
tagomoris
自分が出てみるまでは「なんでみんなこんな激烈に喜ぶのかがわからなくて、面白いんだろうけど俺出られねえしな…」と思っていたので。kamipoさんはわかるんじゃないですか?
kamipo
うーん、ちょっと本筋と違うかも知れませんけど、ぼくリアル脱出ゲームが好きなんですね。あれって脱出率がすごい低くて10%とかなんですよ、つまりほとんどの人が脱出できない。与えられているものは同じなのに、見えてる人と見えてない人がいるってことがめっちゃ悔しいんですよ。「あいつらはあれに気付けたのかー」って。ISUCONはそういうところが似てるかなと思ってます。大人になると本気で悔しいって思うことがほとんど無いんですね。その「本気で悔しい」という気持ちになれるのが、ISUCONのいいところだったり得られる体験なんじゃないかなと思います。
僕はLLプログラマだから、本気で早いプログラムを書くと勝てない世界があるんです。競技プログラミングみたいな本気で早いプログラムが書けない、プログラマとしてこういう分野で勝てないと思ってます。でも、今まで自分が仕事として問題解決してきた技術を使って競争できる場があるってのがすごく面白いなと思ってますし、自分の本気をぶつけられる場所としてISUCONがあると思うのでエンジニアにとって貴重な体験になると思います。
――「余裕で優勝できちゃうわー」と思いながら参戦して入賞すら出来なくてコテンパンにやられたって話もちょいちょい聞きますね。tagomorisさんはいかがですか?
tagomoris
自分の場合は、単純に自分がやってないことを他の人が試した話を聞けるのがとてもよいと思ってますね。例えば、今まで仕事でVarnishサーバを使ったことないけど使いどころを選ぶとISUCONでも力を発揮できるってのは何となくわかるんです。終わってみて参加者と話していると、普段から仕事でバリバリ使っている人が「Varnishを使ってこれをやってこのくらいのスコアが出たよ」っていう話がポロッと出てくる。
みんなが同じ問題を説いているから、そういうプロのノウハウが山程聞けるんです。みんな話したくてしょうがないから(笑) それって超貴重なノウハウなんですよね。普通に勉強会に呼んで話してもらおうと思ったら金額的にいくらかかるかわからないくらい高額になるだろうし、自分でやったことと比較しながら聞けるのですごく自分の身にもなるんですよ。
――参加側のメリットは多いということですね、では出題側の大変なところはどういうところでしょうか?
tagomoris
ISUCON1と2を作った時ですが、普通に作ると簡単すぎる問題がまず出来るんですね。「これでいけるかな」と思って誰かに解いてみてもらうと簡単すぎる。難しくするために色々盛り込むけど、今度は難しくなりすぎる。自分たちは問題を知ってるしどういうふうにやれば早いアプリになるのかがわかっているので、どんどん難しいのを詰め込んでいっていくと作っているうちに「俺が思いつくものはみんなきっと出来るだろう」と思い込んでしまって、最終的に難しくなりすぎる。ここが難しいところですね。
ISUCON1 は出場しない同僚に解いてもらって意見を聞いて、ISUCON2 は解く側と作る側の分担をしてと、問題の難しさの調整をしていました。あとは、やってみてわかるものですけど、一番先にこの点数に達したチームには特別賞、というのがあると「ここまではいくんだな」というのがわかるので、ガイドラインみたいなのは大事だなと思いましたね。第三者の目がないとつらいなと。
※注 ISUCON4 では特別賞がありませんでした
――ISUCON4 終了時に「次回は出題お願いしますね!」と私から依頼して約束を果たしていただいたという形になりましたが、トレジャーデータさんとしてご協力いただけることになり、ありがとうございます。仕事として作業いただくことになると思いますがどのような理由でお受けいただいたんでしょうか?OSS活動の一環という形でしょうか?
tagomoris
そんなに深い話はないんですが(笑) そうですね、仕事とは直接関係ないけど、この出題に関しては「OSSっぽいなにか」という括りになっています。OSS活動に寛大というか「面白くてやってるのならいいんじゃない」というニュアンスです。他のこともそうですが、業界のためになるならいいんじゃないかというスタンスで会社としては見てもらっています。Fluentdとかまさにそんなかんじですが、直接これをやるとトレジャーデータが嬉しくなるという話でやっているわけでもないです。
kamipo
トレジャーデータにいて感じることなんですが、馬車の時代から車を作っていたみたいに、最初に車を作ったとしてもみんなが車に乗る世の中にならないと道も作られないし車も増えていかないんですよね。トレジャーデータは「そもそもみんなデータを分析したいんだけど分析し始めるまでが遠いからそこを近くする」ってのをやっているんです。例えばFluentdをつかってトレジャーデータではないところにデータをあげることもあるけど、データを分析をする世の中にするために必要なことと思っています。巡り巡ってデータ分析という基盤の提供をしているんですね。
tagomoris
ですね、いま話したことはISUCONとは直接関係ないですけど、何かの業界を底上げするっていうのはどこかがやるのはすごく大事で、細かいことを考えず底上げするのは必要なんです。ISUCONは業界を底上げするという視点では一緒で、どこかがやっていけばいいと思っていて、トレジャーデータがやってもいいし、どこか違う会社がやってもいいよねくらいの感覚です。続いていけばいいなと思ってます。
――ありがとうございます。ではちょっと視点を変えて、例えば学生が参加した時にどういったメリットがありますか?
tagomoris
そうですね。Webサービスの人たちが普段なにをやっているのかが一発でわかると思いますよ。ISUCONは普段やってることしか出せないから、どんなアプローチでどういう技術を使っているかがハッキリとわかります。学生の頃にWebアプリを自分で作っても、キャッシュを頑張ろうとかSQLをマシにしようとかはないんですよね。学生枠もあるので一般よりは多少本選に進みやすいと思いますが、予選を入れると2日でお手軽に2回体験できるってのはすごいメリットになるんじゃないかなと。
負荷のかかるサービスに手を入れるのって、学生だとどこかにバイトでいくしかないですよね。そして、どんな会社でもそうですけど、性能問題ってサービスに直結するので "出来る人" がさわるんです。「今サービス全体が超遅くなっててページも表示されないんだけどやってみていいですか」とは言えないんですよね。自分で手を動かして改善していくステップはそういう状況では踏めないんです。それが体験できる機会はそうそうないし、学生以外にも是非体験してほしいです。
kamipo
僕が考えるに「普段はギターで今日はボーカル」とか仕事だと出来ないけど、ISUCONだと出来るんですよね。ミスっても誰にも迷惑かからないし、でも超真剣にやれる。ミスっても誰にも迷惑がかからないってことはプログラミングしていくうえではありえないし、仕事だと尚更なので。 だからISUCONでは「当方ボーカル、ギター募集」ってかんじでチャレンジできるので色々やってみてほしいなと思います。何でもアリ、がISUCONなので!
――出題に関して、そろそろ予選と本選の問題内容は決まってきましたか?中身を知ってしまうのも面白くないので雰囲気を教えてください
kamipo
今までいち参加者としてやってきた気持ちでいうと「現実の問題に則した問題」にしたいなと思っています。それでいて「なるほどこうきたか」という問題にしたいですね。参加者として負けてきた経験があるので、勝てなかった人にとって納得感があるというか「この問題だったらしょうがない」というものにしたいです。
tagomoris
イメージとしてですが、予選はすごく王道っぽい問題にしようかなと思ってます。去年だと200組近くが予選に参加して20組くらいが本選に進めるという割合だったので「予選こそがISUCON」という人が増えてます。なので「これがISUCONだ」というものにしたいですね。
――では過去問やってればぼちぼちいけるってことですかね?
tagomoris
無駄にはならないと思いますけど、もっと普通に「Webアプリケーションあるある」な要素を入れていきたいと思ってます。「予選だからこれが有効」ってのはない形で、本選でも有効な予選にしたいですね。
本選に関してはもうネタはありますが、上位に行った人が「あぁ、これをやれた自分はすごいな」と思える問題を出したいと思っています。2年参加側にまわったので気力が充実しているため、期待していてください。
――ありがとうございました
というわけで、参加メンバーの募集を皆さん今から始めておいてください!学生の皆さんは交通費補助あり、メンバー募集も出来るISUCON夏期講習の参加者を絶賛大募集中ですので是非ご応募ください。実際に過去問題を解きながら、スピードアップのコツを教えてもらうことも出来るようです。
講習後の懇親会ではtagomorisさんやkamipoさん、過去に三度優勝経験のあるsugyanさんなども参加予定ですので直接色々と話が出来ると思います。学生限定ISUCON夏期講習の開催日は 8月19日(水) で、8月5日(水)が締切となっています。お申込みや詳細はこちらからご確認ください。
▼旅費負担!出場メンバー募集OK! 学生限定の ISUCON夏期講習 開催のお知らせ
過去のISUCONの問題、参考解答例などそれぞれの回ごとにまとめていますのでこちらも是非。
▼ISUCON1 まとめ
▼ISUCON2 まとめ
▼ISUCON3 まとめ
▼ISUCON4 まとめ