なめこ備忘録

プログラミングに関する備忘録や経験したこと,考えたことなど好き勝手書きます.

[tex: ]

Bug Shooting Challenge #2 に参加してきました

f:id:NAMEKO:20190303021857j:plain

こんにちは.なめこです.

2019/03/02にmixiの開催するワークショップBug Shooting Challenge #2(以下BSC)に参加してきたのでその概要や感想など色々書きます(途中途中に飯テロが挟まっています).

BSCとは

株式会社ミクシィ主催の学生対象の不具合調査体験ワークショップです.
ミクシィはこの他にGit ChallengeやTDD Challengeといったまた別のワークショップも開催しており,本イベントはそのうちの1つです.

詳細はこちらをご覧ください.

ざっくり説明すると,なんらかのバグが存在しているゲームサーバが与えられ,そのログから不具合の原因の特定・修正に挑戦するイベントです.

経緯

ミクシィの中の人に勧められて言われるがままに応募.
事前課題を極限まで熟成した後に提出しました.

その後無事選考を通過し,お呼ばれしたので参加しました.

準備

プログラムはRuby on Railsで書かれているとのことだったので(というか事前課題の時点でRails),Railsの勉強を1週間かけてやったりやらなかったり諦めたりしてました.

最終的にはMVCモデルに対するざっくりとした知識とrubyの基本構文を携え,一部メタ読みを踏まえて準備が完了しました(何も完了してないですね).

体験記

スケジュールは以下のような感じです.

  • イベントの説明や利用する技術の紹介
  • ランチ
  • 実際に不具合修正に挑戦
  • 懇親会

イベント概要説明・技術紹介

参加者は「2人だけのCREとして不具合調査を行う」という設定です.なので2人1組で協力して挑戦します.

因みになめこはdeltaチームでした.単にA,B,C,...と順にアルファベットを降って良さげな単語を選んだだけだとは思いますが,かっこよくていいですね,delta.

また,サービスの構成に関する説明と使用するツールについてのハンズオンがありました.
Docker,RailsAWSHadoopに関する爆速説明...雰囲気はわかったので良しとしましょう.

そんな感じで前提知識を軽く説明して午前は終了しました.

ランチ

振り返ると大量の釜飯が鎮座していました.

f:id:NAMEKO:20190303010636j:plain

中身はこんな感じでした.とても豪華なランチ...

f:id:NAMEKO:20190303025004j:plain

釜飯の種類が4種類くらいあったのにも驚きました. コンプリートするにはあと3回来ないと...(※BSCは現在1人1度しか参加できません)

ミクシィのエンジニアの方と一緒にランチをしながら色々な話を聞きました.

Challenge

説明を受け,お腹も膨れたところで本題です.

詳細は書けないのでふわっとした感じになりますが,とりあえず不具合調査の流れとしては以下ような感じです.

  1. 問題の内容を元にログを解析する
  2. 手元の環境で再現する
  3. バグの原因を探り,対策する
  4. バグの再現ができないことを確認する
  5. PRを送る

問題は全部で3問ありました.

1問目はどこから手をつければいいかがわからなくて序盤はただあたふたしていました.
チームメンバーがいい感じのログを見つけてきてくれたので,それを元にいろいろしてたら原因が見つかりました. バグを修正しPRの説明文を唸りながら書き上げて提出しました.

2,3問目はツールの使い方にも慣れが出てきたので2人で若干の役割分担をしつつ進めていきました. 紆余曲折はありましたがなんとか時間ギリギリで滑り込みPRできました.

とりあえず完答できたのでよかったです.

回答の採点後,総合MVPと各問題のMVPが発表されました(時系列的には懇親会の後半).

総合MVPは取れませんでしたが,2問目でのMVPをいただきました.
ぎりぎり首の皮一枚繋がってるような状態で回答していたので選ばれるとは思ってませんでしたが,講評を聞くとなるほどなぁと.

懇親会

ランチに引き続き懇親会も豪華でした.

f:id:NAMEKO:20190303031817j:plain

因みに冒頭の写真は懇親会で出たマカロンです.スイーツの類も中々豊富だったので満足です.

結構いろんな輪に入って多くの人と話せたんじゃないかと思います.(当社比+80%).
他の参加者やミクシィの中の人と色々と話をすることができ,技術の話や進路の話,仕事の話などをたくさんしました.
世間は広かったり狭かったりするなぁと感じました.

感想

何度かアプリ開発系のコンテストに参加したことがある程度で,こういったイベントへの参加は初めてでしたがとても充実した内容だったように思います.

単なるバグの修正の経験だけに留まらず,同種のバグを生み出さないために何を意識して開発を行うべきかや,バグが発生した場合のユーザー対応など,普段の個人的な開発やプロトタイプレベルのアプリ開発では目を向けてこなかった面がまだまだあることに気づくことができました.

具体的な課題としては,体系化された知識を正しくつけておくべきだと感じました.その場しのぎの開発は現状のスキルでも十分可能ですが,保守の面から見た際の管理のしやすさを考えた時,今の自分の付け焼きの知識だけでは不十分だと思います.プロダクト全体を俯瞰して見るためにはやはり十分な知識が必要です.

たった数行程度の間違いや不足であっても,ユーザーや会社に多大な損失を与えてしまう可能性があります.現実問題としてバグの存在しないプログラムを作ることは不可能ですが,それでも可能な限りバグを少なく,あるいは損失を小さくできるように常日頃から意識していければと思います.

謝辞

まずはチームメンバーの@ww_furu_tu に感謝を.ログ解析やバグ再現の面で特にお世話になりました.

またイベントの開催・紹介・運営をしてくださったミクシィの方々,本当にありがとうございました. 今回のイベントを経て見えてくるものは多く,自身の大きな糧となったと思います.重ねてお礼申し上げます.

最後に

曰く,「ブログを書くまでが遠足(BSC)」とのことです.

どんなものであれ,自身の経験をアウトプットしていくことは大事ですのでこれからも続けていきたいです.

蛇足

今回1問目と2問目の間に「もぐもぐタイム」なるものがあり,お菓子とドリンクをもらって話を聞きながら食べてました.

f:id:NAMEKO:20190303025535j:plain

やっぱり糖分摂取は必須ですよね.