おひさしぶりです。(ほぼ3か月ぶりの更新)
この記事は2019年3月2日に開催された株式会社mixi主催のBug Shooting Challenge #2 に参加してきたのでその参加記になります。
ブログを書くまでがBug Shooting Challengeですよ。
Bug Shooting Challengeとは
文字通り、バグをシューティングするチャレンジです。
もっと詳しく説明すると、お題となるWebアプリケーションと問題(シナリオ)が与えられて、制限時間内に原因を特定し、原因の解説とコードのバグを修正できるのかを競うという競技形式のイベントです。
もうちょっとちゃんとした説明は以下を見てもらえると。
学生対象 不具合調査体験ワークショップのご紹介
実は所属してるサークル(traP)にBug Shooting Challenge #1の総合MVP受賞者がいて、他のchallenge(git challengeなど)でも何人ものtraP部員が優勝してきたという経緯があるので、目指すは優勝(総合MVP)という意気込みで参加しました。(結果は下をご覧ください。)
参加記
前日
当日はdockerで開発環境を構築するので、dockerで環境を構築する練習をしました。(これは自分の開発環境がWindowsで、過去にRailsの環境構築に失敗したことがあったためです)
余談ですけど、Windowsでdockerを使うには基本的に「Hyper-V」という仮想化システムが必要になるのですが、これはWindows10 Homeでは使えず、Windows10 Proにアップグレードする必要があります。
しかし実は裏道があって、学生向けのエディションである「Windows10 Education」だと同じように「Hyper-V」を使うことができます。
このWindows10 Education、実は某工大生だと無料!!!!!
これで特にエディションに悩まされることなくWindowsでdockerを使うことができます。
(他大学の学生は自分の大学のソフトウェアライセンスを確認してみてください)
気持ち早めに寝て当日に備えました。
当日午前中
サークルの看板を背負っているという気持ちでサークルのロゴが入ったパーカーを着て参加しました。
おいす~#mixi_BSC
— nagatech (@_nagatech) 2019年3月2日
Bug Shooting Challengeでは2人1組となって競技を進めていきます。
自分のペアは同じ大学の院生の方で、しかも自分のTwitterのフォロワーでした。
自己紹介した瞬間に「もしかしてながてちさんですか?」って言われたのにはさすがに笑いました。
11時からはBug Shooting Challengeに向けて、技術に関する講義を受けました。
HadoopやHiveについては、学生のうちから触る機会はほとんどないのでとてもためになりました。
お昼
いいイベントにはいい弁当!w
釜飯 #traP1yakudo #mixi_BSC pic.twitter.com/QLRcOuEa5x
— nagatech (@_nagatech) 2019年3月2日
(challenge系の昼食って釜飯って決まりでもあるのだろうか…)
食べながら社員の方とわいのわいの喋りました。
午後
いよいよBug Shooting Challenge本番。
自分のWindows環境にzcat
コマンドがないのにちょっとハマりましたけど、dockerでの環境構築がうまくいってひと安心しました。
問題の詳しい内容については言及することは出来ないので、だいぶぼかして書くと、
- 問題は全部で3問あり、1問ごとに独立した不具合です。
- 問題文からどの部分がおかしいのか、ログのどの部分を見たらいいのか、アプリケーションのどの部分を修正したらいいのかを制限時間内に特定・修正していきます。
- 修正はgithubのプルリクエスト機能で提出するというのが問題の流れです。
- 制限時間は1問50分だった(気がする)のですが、状況を見て延長などをしてくれました。
- 問題ごとに点数が用意されていて、各問題の一番得点が高かったチームと総合得点が高かったチームが表彰されます。
懇親会
ご飯とお酒を片手に、参加者の人たちとわいわいお話をしました。
traPは意外にも他大学でも有名らしく、traPパーカーを着ていた自分はいろいろな人に話しかけてもらえました。
また、Twitterのフォロワーも同じようにこのBug Shooting Challengeに参加していて、「やっと(リアルで)会えましたね~!」みたいなシーンもありました。(オフ会かな?)
結果発表
残念ながら総合MVPは逃してしまいました…
が、
問題3で問題別MVPを受賞しました!!!
問題に関わってくるので具体的には言えませんが、決め手としては問題に対する解答が(いろんな意味で)良かったとのことです。
以下が解答にいただいたコメントになります。(画像は問題に関わる記述などがあるので一部加工してあります)
問題3はいち早くバグを特定・修正して余裕感を醸し出していたので問題3のMVPを受賞できて内心ほっとしました。
問題3提出して暇になった#mixi_BSC
— nagatech (@_nagatech) 2019年3月2日
1問だけ原因は特定したのに修正する部分を間違えて別なバグを生んでしまった問題があったので、そこができたら総合MVPも狙えたんじゃないかと思っています。(負け惜しみ)
感想
2人1組のチーム戦なので、役割分担やコミュニケーションが大切だと感じました。自分のチームは相方がログを精査して原因の絞り込み、自分がバグを生み出す部分を特定しコードを修正と、いい感じに連携がとれていたと思います。
また、あまり原因特定に時間をかけるのではなく、原因の説明の方に時間を割いたほうがよかったかなと思いました。制限時間に追われて解答の記述が適当になってしまったというのもありますが、原因と対策を他人に分かりやすく説明するということの大切さを学べました。
以上が参加記になります。
優勝(総合MVP)できなくてくやしい… 精進します。
このBug Shooting Challengeは学ぶことも多かったうえにめちゃくちゃ楽しかったので、みなさんも次があったら是非参加してみてください。
最後に運営のmixiのみなさんお疲れ様でした!