社内ISUCONを開催してみた所感

こんにちは。新規開発チームでギャザリーの開発を担当している明智です。
恥ずかしながらISUCONに参加したことがないエンジニアです。 そんなエンジニアが準備期間1ヶ月で社内ISUCONを開催したので、その全貌をレポートします。

開催のきっかけ

ISUCON未経験者の私が社内ISUCONを開催することになったきっかけは、グループマネジャーのあるSlackの投稿でした。
他社の社内ISUCONのブログを見て、「これやってみたいな。やってみない?」
この投稿の1分後に 「やりましょう」 と返事をし、晴れて社内ISUCONの主催者となりました。 このスピード感もさることながら、こういった企画を役職など関係なく誰でも実施できるところが弊社の面白いところだなと改めて感じました。 まぁ、開催が決まってからが大変なんですけどね。

Slack

準備

ISUCONのこと自体よくわかっていないという状態だったので、開催が決まった直後は過去のISUCONや社内ISUCONの事例をひたすら調べてました。 ISUCONは、お題のWebサービスをとにかく早くすることを競い合うコンテストです。 このコンテストを通して技術力の向上はもちろんのこと、同時に エンジニアの横のつながり を強める場にしたいなと思うようになりました。 というのも、ライフスタイル領域で多くのサービスを展開している弊社ですが、担当サービスを超えて交流する機会がそこまで多くないという現状がありました。 せっかく同じ会社にいるんですから交流したいですよね?
そこで、本家ISUCONでは3人までのチームを組んで登録なのですが、今回は個人で参加登録してもらい運営側でチーム分けを行う方式にしました。 各チームが以下の項目を満たすようにチーム分けに工夫を入れてます。

  • 担当サービスがばらばら
  • 得意分野がばらばら
  • 社会人歴がばらばら

出題問題はピクシブ社の問題を利用させていただきました。 はじめはアレンジして独自の問題にしようと思っていましたが、適切な問題設定などノウハウがなかったのでそのまま利用することにしました。 ただ、ベンチマークは競技者が実行したら自動でポータルサイトに反映させたかったので、ちょこっと改修しました。 準備ではあるものの、ベンチマークの改修は自身の学びにもなり楽しく進められましたよ。

当日

当日はこのタイムスケジュールで進行していきました。 他社の事例だと半日から数日の開催でしたが、業務調整のしやすさなどを考慮し4時間弱としています。

時間 題目
17:00 開会の儀(出題問題発表など)
17:10 社内ISUCON開始
21:00 閉会の儀(結果発表など)

当日に近づくにつれて 「結局インスタンスの準備しただけやけど、このまま開催して大丈夫か?」 という不安な日々を過ごしていましたが、開始5分でこの不安な気持ちは綺麗さっぱりなくなりました。 開始後すぐに問題の把握を行い、方針を話し合っているのです。 その後は、各チーム一進一退で白熱したコンテストになっていきました。 途中は軽食としてピザを食べながらやったり、エンジニアの元気の源であるRed Bullを配ってラストスパートをかけてもらったり。 Red Bullの甲斐あってか、ラスト30分で一気にスコアを伸ばしたチームがぶっちぎりで優勝。
優勝チームになぜ一気にスコアを伸ばせたのかを聞いてみると、「いくつか目星を付けていたことを全て試し終わると一気にスコアが伸びていた」 とのことでした。 試した内容は他のチームも考えていたことではあったものの、着実にやりきるところが結果につながったように思います。 当たり前のことを当たり前にやることの重要性を目の当たりにしました。

Portal

参加者の声

開催してみるまでは本当にどうなるのかわからなかったのですが、結果としては参加者全員に満足してもらえました。
実際に参加者の声を紹介します。

参加してみた感想

  • ISUCON未体験だったので楽しかったです!
  • 大変楽しかった。次回があるなら是非参加したい(まだまだやりきれず悔しいので)。
  • 普段関わりのない人とチームを組んで取り組めたのが面白かった

参加者の多くがISUCON未経験者にもかかわらず 楽しい という感想をもらえたのは嬉しかったです。 今回の悔しさから次回へのリベンジを早くも決めている人もいました。
また、今回の工夫点であるチーム分けもうまく機能していたようです。

改善すべき点

  • 事前にチームの共有があるともっと仲良くなれるかも
  • 実装言語ベースでチーム分けするとよさそう
  • 時間はもっと長めにとっても良いと思う。

チーム分けに関していくつか改善点をもらいました。 今回は開始前のソワソワ感を演出するためにチーム発表を開始2時間前にしたのですが、事前にチーム発表を行った方がいいかもしれないですね。 チーム分けに実装言語は考慮に入れれてなかったので、これは入れた方が参加者側も良さそうだと感じました。(今回はほとんどのチームがRubyで、1チームだけNode.jsという内訳でした)
時間に関しては結論なんでもいいかなと思いました。 さすがに4時間弱は短すぎたかなと思う反面、短いなら短いなりの戦い方があるのでそれはそれで見ていて面白かったです。 半日から1日がちょうどいいような気がしています。

開催してみて

率直に、開催してよかったなと思っています!
出題問題や社内ISUCONの事例が多くあるので、開催するための準備は容易に行えます。 今回は実質1週間も作業してませんが、それでも満足度の高いものにできるのでまだやったことがない人で興味があればすぐにでも始めるべきだと思います。
ただ、本当の意味で開催者になるためにも次回は問題を独自で作成するようにしたいなと個人的には思っています。 問題を作成するのは大変ですがやる価値は十分ありますし、問題を作成する機会なんてそうあるものでもないですしね。
最後に、次回はもっと大規模な開催という野望を抱いております。(他社とのコラボとか面白そうと妄想中)
興味のある方がいればぜひ一緒にやりましょう!

20161021 212056