凄腕エンジニアも負ける学生の強さ。『ISUCON11』では勝ち筋をどう見いだす?
パフォーマンスチューニングの成果を競うコンテストとして、エンジニア界隈ですっかり定着した感のある『ISUCON』。今年も8月21日に予選、9月18日に本選の日程でオンライン開催される。
CTOレベルも含めて腕に覚えのある多くの現役エンジニアが参加する同イベントだが、10回目のメモリアル大会となった昨年は、上位3位を学生が独占する衝撃の結果に。ここ数年の学生の勢いは凄まじいものになっている。強さの理由は「社会人と比べて対策に多くの時間を割けるから」というのが通説だが、本当にそれだけなのだろうか。
今年は大会史上初めて出題も学生が行う。『ISUCON』はこのまま若い力に蹂躙されてしまうのだろうか。主催するLINEのDeveloper Relations室 櫛井優介さん、さらに出題者、参加者の両方の立場から関わり続け、『ISUCON』の酸いも甘いも知り尽くした現役エンジニアのお二人に「社会人、逆襲の青写真」を語ってもらった。
株式会社PR TIMES 執行役員 CTO
金子達哉さん(@catatsuy)
ピクシブ、メルカリを経て2021年4月にPR TIMESのCTOに就任。『ISUCON』には4回目から毎回出場しており、「9」の予選、「6」では本選の運営として出題を担当。「10」では予選敗退したものの、本選には大会を盛り上げるための「並行チーム」として出場した。著書に『pixivエンジニアが教えるプログラミング入門(星海社新書)(単著)』
さくらインターネット株式会社 クラウド事業部
長野雅広さん(@kazeburo)
mixi、ライブドアを経て2015年よりメルカリでSite Reliability Engineerとして勤務。21年1月、さくらインターネットにジョイン。『ISUCON』創設者の一人で、「1」「2」「9」の出題担当を務めた。参加者としては「3」と「4」で優勝しており、昨年の「10」では本選出場を果たした
規模、認知、問題のボリュームも年々増加
長野:すごく大きなイベントになりましたよね。僕はイベントの立ち上げに関わった一人なんですが、最初は本当に人が集まるかさえ心配だったので。
金子:僕は『ISUCON6』で運営をやらせてもらったんですが、その時に櫛井さんから「今年で最後になると思うので、そのつもりで問題を作ってください」と言われたのを覚えてますよ。
櫛井:ああ、その節はありがとうございました。でも、そう言ったのにはもちろん理由があってですね。会社としてやる以上は、何かしらの目標を置いて、成果を出さないといけないじゃないですか。開催するのには結構なお金も掛かるから。
今で言えば数百万円規模。当時でもそこそこ掛かっていました。ですから、会社から「何の成果につながっているのか」と聞かれると、「そうだよな、直接的に採用につながっているわけでもないしな」と答えに窮してしまうところがあって。「じゃあ今回で最後に」と話したことが、本当に何度かありました。
そういう危機を乗り越えて、今ではここまでメジャーになった。最近は会社からも「むしろここで止めるのは業界に対して無責任過ぎる。短期的な成果は気にせず業界貢献のためと思って続けてみてくれ」と言われるようになりました。
櫛井:めちゃくちゃ反応が良くて、今年も募集開始から1週間くらいで全ての枠が埋まってしまいました。
スポンサーの皆さんもすごく理解があるというか、単にお金を出すというだけでなく、『ISUCON』というものに対して興味を持ち、一緒に楽しもうとしてくれているのを感じます。そこが他の大規模なイベントと違うところではないかと。ある種のコミュニティーっぽいノリがありますね。
金子:弊社も今年はシルバースポンサーなんですが、りん議を出した時に代表(山口拓己さん)から「シルバーでいいんですか?」と聞かれたくらいで。「シルバー以外はもう売り切れなんですよ」と答えましたけど。
金子:最近は問題の分量自体、コードの行数自体がものすごく増えていますよね。
櫛井:いや、そこはちょっと難しい話で。出題の経験があるお二人はよく分かっていると思うんですが、出題する側からすると、8時間を待たずに解き切られてしまっては困るわけです。一方で分量が多過ぎて、誰もボトルネックを見つけられなかったら、スコアが跳ねていかないので競技にならない。
だから、どこまでボリュームを増やすかは毎年議論になる。問題を作る側もすごく難しいんですよ。
「1カ月間遊べる」はずの問題を8時間で
櫛井:昨年は出題の担当者たちに「10回目なのでメモリアルな大会にしたい」と要望を伝えたこともあり、予選、本選とも結構なボリュームになったんです。特に本選の問題は「1カ月間遊べるものにしたい」という思いで作ってくれたそうで。
それを1人で解き切ったということ。仕込んであったポイントのほとんど全てに手を入れているのだから、相当すごいですよ。
金子:本当に意味が分からないですよね。昨年の僕は予選落ちだったので、本選は大会を盛り上げるための「並行チーム」として呼ばれて、問題を解かせてもらったんですけど。一緒に参加した仲間と「2人でも8時間じゃ全然足りないね」と話していたのに。それを1人でやり切ったと聞いて、愕然としました。
櫛井:takonomuraさんは当時筑波大の1年生でした(現在は2年生)。彼は『ISUCON9』にも参加していて、その時も準優勝だったんです。
金子:『ISUCON9』の時はまだ高校生ですよ。僕は出題する側だったんですけど、「学生にはこの問題は難し過ぎたかも」と話していたのに。
櫛井:相当練習していると言っていましたよ。「初参加の時は大会前に8時間の通し練習を何度もやった」って。ISUCON好き過ぎだろ!という感じですよね。
ただ、彼は学生とはいってもクックパッドさんでアルバイトをしているので。おそらく開発現場の空気や優先順位の付け方なども分かっているんです。ですから、練習以前にそもそも相当優秀だというのはあります。その上で訓練を積んでいるとなれば、それは強いよな、と。
長野:クラウドを使ってアプリケーションのボトルネックを見つけるのも非常にうまいんですよね。本来であれば業務でやっている社会人の方がうまくやれるはずなんですが。
櫛井:1人でやることにはアドバンテージもあるんです。3人チームだと、役割分担してそれぞれで進めても、マージした時に全体としてうまく効果が出ないこともあるから。1人でやればそこのコミュニケーションコストがゼロ。「これが一番効くだろう」と思ったところから順番にやっていけばいい。
とはいえ、それを実際にやり切るというのは化け物としか言いようがないんですけど。
金子:アプリだけじゃなくインフラ側も触る必要があるので、その全てを1人で行うのは相当厳しいはずなんですけどね。
櫛井:クックパッドのCTOの成田(一生)さんは「彼は何をやっても最短距離で正解にたどり着いちゃう。人生でどんな選択も誤ったことがないんじゃないか」と言ってました。それくらいにすごい。
昨年は大会後のアフターイベントとしてクイズ大会をやったんですが、彼はそこでも優勝してしまって。『ISUCON』の歴史に関するクイズで、すごく難しい問題を作ったつもりだったんですが。
長野:1回目なんて知っているわけがないのにね。だってその当時9歳とかでしょう?
櫛井:「なんでそんなに詳しいの?」と聞いたら「好きなんで」と。とにかく優秀過ぎる。普通にうちの会社に欲しいです。
リッチなクラウド環境がエンジニアを弱くした?
櫛井:むしろ最近の学生が弱い理由があまりないと思っていて。
というのも、以前であれば、学校でいくら理屈上のプログラミングを勉強していても、実践として本格的に関わるのは働き始めてからだったじゃないですか。
でも、ここ5、6年で競技プログラミング、パフォーマンスチューニングの大会が増えたことで、学生であっても実践的なコードを書ける環境が整ってきている。となれば、若いうちから始めた彼らはそりゃ強いよな、と。
金子:『ISUCON』も歴史を重ねたことで過去問が揃ってきて、練習・勉強しやすい環境になってきている、というのはあると思いますね。
金子:もちろん勉強しやすくなっているのは学生に限った話ではなく、社会人も同じなんですけどね。「コンテストのための勉強」と言うと「忙しいのにそんな時間取れるわけがないだろ」と思うかもしれないですが、結構実際の業務にも結びつくんですよ。
金子:たくさんありますよ。例えば僕は昔、業務として広告サーバを実装していたことがありましたが、その実装に『ISUCON』練習用にやったものが一部入っていたり。他にも、仕事をしていてどこかで詰まった時に「これ、『ISUCON』でやったやつだ!」という気付きはしょっちゅうあります。
櫛井:『進研ゼミ』じゃないですか。
長野:僕は以前『ISUCON』用に速いサーバを書いていたことがあって、作ったサーバのソースコードをOSSとして公開しつつ、ライブドアブログのサーバに実際に使ってみる、といったことも過去にはありました。
そういう意味で言うと、最近の『ISUCON』で社会人がなかなか勝てないことの一因には、クラウドから入っている人が多いというのもあるかもしれないですね。
長野:最近の社会人はクラウドから入っていて、さらにSSHでサーバにログインしたことがないという人もいる。クラウドであれば「足りなくなったらサーバを増やせばいいじゃん」となる。
でも、学生はそういうわけにはいかないですよね。一般的には、サーバなどに掛けるお金がないですから。その分、自分たちのリソースを最大限に工夫して使っている。そうするとすごく技術力が上がるし、面白い仕組みも考えるようになる。そこが強いなと思います。
櫛井:クラウドみたいにオートスケールされたら、すぐにお金が足りなくなっちゃいますからね。
長野:考えなくてもよくなった、ビジネスの方に集中できる環境が整ったというように、良いこととも捉えられますけどね。
櫛井:技術力を上げるのがエンジニアの目的ではないと思うので。もちろんあった方がいいとは思いますけど、その技術を持ってビジネスを成功させることが大きな目的ですよね。
金子:相当規模の大きなサービスじゃないと、その技術はいらないような時代がきていますよね。学ばなくても作れる、お金さえ払えばそういう環境が手に入る状況になってきている。それを良いと思うか悪いと思うかは、人それぞれだと思いますが。
金子:それはすごく求めていますよ。僕はこの4月に今の会社に転職してきたんですが、社内の技術力向上は、一番最初にやらなければと思っていたことの一つでした。
櫛井:「社内ISUCON」をやってましたよね?
金子:やりました。そういう実践の経験がない人も多かったので。一回経験するとやっぱり全然違います。もちろんまだまだではあるんですけど、実装のスピードが上がったのを感じますね。
チーム内の「仲の良さ」も勝敗を分ける説
長野:もう勝てないと思ってます(笑)。完全に負け惜しみですが、『ISUCON』という大会だけが勝負ではなくて、そこで得た経験を糧に自分たちのビジネスを成功できれば、それが勝ちになるので。そういうふうに考えるのもありかな、と。
まあ、普段の業務の中でも疑問に思ったこととか謎に思ったことを逃さずに、ちょっとずつでもいいから深く掘っていくようなことをやっていけば、上位に食い込むことはできるかなとは思います。
金子:『ISUCON』の場合は8時間という時間制限があるのでねえ……。普通に業務をしていてここまでタイトなのは、おそらく障害対応以外にないのでは。時間制限さえなければ社会人もやれると思うんですけど。
櫛井:それは確かに(笑)。でも実際の話、ISUCON開始とともに問題が分かって、何となくどこから手を付けようかと方針を決めても、いざやりましょうとなった時に手が動かない、というのはあることみたいですよ。
もちろん問題は毎年違うんですが、「こういう処理をしよう」というのは割と似通っている。だから事前に準備や練習をして一連の動きをイメージしておくことが、実装までのスピードに直結する気はします。
金子:社会人でも素振りをしてくる人はたくさんいますよ。僕自身は今回、新しい会社の人と出るんですけど、この前もリモートで集まって通し練習をしましたし。
櫛井:この前、学生に「なんでそんなに強いんですか?」と聞いたらいろいろと考えられる要因を教えてくれたんですが、最後に「僕らはみんな仲が良いですからね」と言ってました。社会人だって仲が悪いわけじゃないでしょうけど、気心は知れていても、普段使っている言語が違うとか、得意な技術方面が違うとかもあって。チームとしてうまく機能しないということがある。
学生はもともと公私を超えた関係ということもあり、腹を割ってというか、コミュニケーションが直接的。その分、コミュニケーションコストをガツッと減らすことができて、8時間を有効活用できているのかもしれないです。
長野:社会人は普段、他の会社で働いている人とチームを組む人も多いですからね。
櫛井:そう。なので本気で勝とうと思ったら、そういうコミュニケーションの準備も事前にやっておかないといけないのでしょう。
大会史上初めて学生に運営・出題を託したワケ
櫛井:優勝したチームに次の年の出題を任せるのが毎年の恒例なんです。昨年は上位が全て学生だったからどうしたものかと思ったのですが、打診してみたら彼らも「やってみたい」と言ってくれたので。
社会人がサポートしながらではありますが、今のところはすごく順調にきています。学生といえども彼らは結構しっかりしていて、むしろ「何か手伝ってこいと言われたので来ました」みたいなその辺の大人よりよっぽどバリバリ働いてくれる。受け身ではなく「もっとこうしたい」という提案もしてくれているので、体感としては期待値の300%くらいです。
こういうイベントって、若い人が入ってきてくれないと終わってしまうものだと思うんですよ。学生が運営に回るというのは、いつかはやってみたいと思っていたこと。今年ようやくそれができたので良かったかなと思っているんです。
櫛井:そこはアドバイザリーが入ってクオリティーを担保してくれているのもありますし、金子さんたちが引き継げるようなかたちを作ってくれていたのが大きいですね。
金子:『ISUCON9』の運営をやった時から、将来的には学生でも運営できるようにしたいということが念頭にありました。
当時は毎年、(スコアを測定する)ベンチマーカーがうまく動いていないという状況だったんです。どうやって実装したらいいかというのも、運営界隈で定まっていなかった。
僕は『ISUCON』の追っ掛けみたいなことをずっとやってきていたので、歴代の運営がどういう実装をして、どういう失敗をしていたかが一通り頭の中にはありました。この後、運営に回る人が同じ失敗を繰り返さないで済むようなベースを作るというのは、「9」の予選を担当した時の個人的な目標の一つにあったんです。
なので、僕の作ったベンチマーカーには結構コメントを残していますし、どうやって作ったかのドキュメントも全部残しています。それは将来的に他の人がやることを想定して作ったもの。だから「11」で学生が運営をやると聞いた時は、すごくうれしかったですね。
櫛井:それまでは運営もノウハウの引き継ぎがそこまで密接には行われていなかったんです。僕自身にもそういう観点はあまりなかった。「毎回作る人が違うし、その都度頑張るしかなくない?」と思っていたんですが、やっぱりそうはいかなくて。競技が時間通り開催されないという障害も起こしてしまっていたし。
昨年くらいからはちゃんと反省会もするようにしています。そこにいる誰一人として翌年も運営をやる予定はないんですけど、ちゃんとドキュメントを残すようになってきている。そこはめっちゃありがたいですね。
一体感を醸成する「エモい仕掛け」にも期待
櫛井:昨年は500チームの参加枠が募集開始から24時間で埋まってしまったので、今年は600枠まで増やしたんです。そうしたらわずか2時間で埋まってしまった。「いつからこんなイベントになったんだ?」っていうくらいに参加するのも大変な状況になっていて。お二人は無事にエントリーできました?
長野:ええ、なんとか。
金子:リマインダーを設定しておいてよかったです。
櫛井:そこですよね。予選はずっとオンラインでやってきましたが、本選まで通してオンラインで開催したのは昨年が初めてでした。
『ISUCON』の良さの一つは、90〜100人が一箇所に集まって8時間同じ問題に向き合うことで生まれる一体感や仲間意識。そういう空気をオンラインでどう醸成できるかと思っていろいろ仕掛けましたが、やはり難しかったです。
それは引き続き僕の課題ですが、今年ももちろんいろいろ考えていますよ。ここではまだ詳細は明かせませんが、長く『ISUCON』に参加している人であればあるほど感じ入るような「エモい仕掛け」も用意しているので、楽しみにしていてください。
金子:毎年「優勝するぞ」と言っていてできていないので、今年こそは。今年のチームは僕以外の二人は初出場なので、期待したいですね。
金子:僕がビシッと方針を出せればいける……かな?
長野:僕は去年と同じチームで参加します。目標は優勝……と言いたいところですが、まずは本選に出たいですね。
櫛井:いやいや、本選に出られるだけでもすごいことなんですよ! 予選を突破して本選へ行けるのはたったの30チーム。社会人に限定すると25チームに入らないといけないんです。出場したことがある人なら、この大変さは分かってくれるはずです!
取材・文/鈴木陸夫 撮影/桑原美樹 編集/河西ことみ(編集部)
information
開催スケジュール
・8月21日(土):オンライン予選
・9月18日(土):オンライン本選
開催概要
>>【優勝賞金100万円】『ISUCON11(いい感じにスピードアップコンテスト)』、オンラインで開催決定!
その他、詳細はオフィシャルページより
>>『ISUCON』オフィシャルページ
RELATED関連記事
RANKING人気記事ランキング
米国優位が揺らぐ?ひろゆき「CPUの進化でGPU神話って崩壊しません?」【AI研究者・今井翔太が回答】
NEW!
表面的なテクニックより「基礎基本の重要性」に気付かされた一冊【Node.js 日本ユーザーグループ代表・古川陽介】
AWS認定資格10種類を一覧で解説! 難易度や費用、おすすめの学習方法も
NEW!
正論モンスター化に要注意!ぎくしゃくしない「ミスの指摘」のコツ【澤円「コミュ力おばけ」への道】
社会で成功するゲーマーに、ひろゆきが聞く「現実世界を攻略できないゲーマーに足りないものって何すか?」
JOB BOARD編集部オススメ求人特集
タグ