読者です 読者をやめる 読者になる 読者になる

pixivで行っているバグフィックスデーについて紹介します

こんにちは、ISUCONのために2ヶ月ほどgoをみっちり書いてた@edvakfです。練習した甲斐あって2位になることができました。

f:id:devpixiv:20140325045217p:plain

バグフィックスデーについて

pixivではPHPのアプリケーションのエラーはすべてfluentd経由でMongoDBに入れていて、管理画面からスタックトレースなどを見られるようにしています。

デプロイ直後などに見たことのないエラーが出ていないかをここで確認したりします。もちろん自分の入れたバグやクリティカルなものであればすぐに直します。

f:id:edvakf:20141027113237p:plain

たまにこのチェックをすり抜けて、クリティカルではないけれども1日数個ぐらい出てるようなものが溜まってしまうことがあります。

pixivでは1ヶ月に1回程度、こういう類のバグを潰す日として「バグフィックスデー」というのを実施しています。

流れ

参加者は普段pixivのサーバーサイドを書いているエンジニア6〜8名程度で、その日ターゲットとするバグは前日までにチケット化しておきます。(エラーログ表示画面からワンクリックでチケット化できるようになってこの作業がだいぶ捗るようになりました)

当日は、あまり一緒に組んで仕事したことのない2人1組を作って、このペアに対して1個〜3個のチケットをくじ引きで割り当てます。各ペアのチケットのサイズ(ストーリーポイント)の合計はだいたい同じになるようにします。バグフィックスデーを始めた当初はペアではなく一人ずつやっていたのですが、バグを追いかけるのには複数人の目があったほうが効率が高いですし、あさっての方向の直し方をすることもなくなると感じました。「バグフィックスはペアプロで」は本当におすすめな方法です。

修正したバグはその日のうちにレビューしてもらって修正をデプロイします。レビュワーはバグフィックスデーに参加している他のメンバーであることが多いですが、ペアで進めているので一人がレビューしている間でも作業が止まらない利点があります。

1日の最後に、バグフィックスデーに参加したメンバー全員で集まって5分〜10分ぐらいで「どういうバグだったか、どのように直したか」について発表をします。発表があることで、どういう問題があったのか全員で共有できますし、達成感とか成功感も持てます。良いバグフィックスデーだったのでまたやりたい、と思えることが重要です。

的確な粒度のチケットになっていれば、その日のうちに7割方のチケットが消化できます。残りのチケットは、実は1日でどうにかなるものではなかったという気付きがあるものが多いです。これについてはその旨をチケットに書いておいて、別の機会にまとまった時間をとってあたることにしたり、「もう1日ぐらいかければ終わるんだけど」というものについてはバグフィックスデーで担当になった人が普段の仕事のうち1日を割いて終わらせることにしています。

まとめ

pixivでのバグフィックスデーについてと、そこで得られたノウハウについて紹介しました。

バグフィックスデーを行うようになってから、普段頻繁にエラー画面を見ている人だけが毎日バグを直している、ということが減ったりして、とてもよい効果を得られていると思っています。

インターンシップで味わってみませんか?

このバグフィックスデーを題材に、学生のみなさんにpixiv開発のディープな部分を味わっていただくインターンシップを企画しました。

エンジニア向け pixiv開発のbugリストからの脱出!エンジニア職インターン

応募要件

深い部分を短期間で体験いただくために、下記の経験のある学生を募集します。

https://ssl.pixiv.net/recruit/entry/winter_intern.php

<参加条件> 高専・短大・大学・大学院・専門学校に在学中の学生(学年は問いません)

■必須要件
○下記を行えること
・Linuxサーバー上のファイルを編集してgitを用いた開発が行えること
・GitHubでpull requestを送った事があること
○下記の知識がある事
・ MySQL等のRDB利用の基礎知識

○下記の経験があること
・PHPでのプログラミング経験もしくは、PHPに限らず複数の言語でのプログラミング経験

腕に覚えのある方向けGitHub選考エントリーコースを用意

書類&面接による通常のエントリーに加えて、GitHubでのPull Requestによる選考を行うGitHub選考コースを用意しました。

GitHub選考コース申し込みフォームから応募者情報とGitHubアカウントを送信の上、GitHub上で公開した課題にそってPull Requestを送ってください。

そのPull Requestで選考します。

こちらでのチャレンジがおすすめです。是非トライしてください。idobataによる技術サポートチャットも用意してます。

インターンの詳細

こちらをご覧ください。

エンジニア向け pixiv開発のbugリストからの脱出!エンジニア職インターン - ピクシブ株式会社 採用サイト

お問い合わせ

インターンシップに関するお問い合わせは、 下記フォームからお問い合わせください。

お問い合わせ - ピクシブ株式会社 採用サイト