Slide 1

Slide 1 text

©MIXI エンジニアの心も繋ごう、 グループアサイン 新しい人がコードレビューに参加しやすい環境を作ってみませんか? モンスト事業本部 ゲーム運用部  モンストサーバ1グループ JEE WONJUNG

Slide 2

Slide 2 text

©MIXI 自己紹介 ● 他3社を渡って2020年に株式会社ミクシィ(現: 株式会社MIXI)入社 ● 現在モンストサーバ1グループのリーダー ● どこにいても春風のような人になりたい! 2

Slide 3

Slide 3 text

©MIXI はじめに 3

Slide 4

Slide 4 text

©MIXI 良いコードレビュー 良くないコードレビュー 4

Slide 5

Slide 5 text

©MIXI 良いコードレビュー ● 技術的負債を最小限にできる ● 設計などの技術情報が共有される ● 不具合発生を事前に防ぐ ● メンバーのスキルが向上する ○ チーム全体の質が上がる ○ サービス向上に向けて対応スピード・開発速度が上がる ● 会社のコードとして意識が高くなる ● コミュニケーションが円滑になる 5

Slide 6

Slide 6 text

©MIXI 良くないコードレビュー ● 時にはレビューする人の時間を消費してしまう ○ 大きな作業、難しい作業 ● レビューの遅延 ○ 再作業、再設計の原因 ● 一部メンバーの無関心 ○ 指名されたレビュアー、または作業者の依存関係 6

Slide 7

Slide 7 text

©MIXI モンストサーバチーム 既存のコードレビュー 7

Slide 8

Slide 8 text

©MIXI モンストサーバチームの既存のコードレビュー 8 働き方 基本リモート 人数 10~15名 開発言語 Ruby タイトル歴史 2023年10周年を迎えます。 バージョン開発期間 (QA期間含め) 1〜1.5ヶ月 1案件の開発参加人数 1~2名 レビューの対象コード ツール、テストコードも含む マージ条件 最低限3名のApprove必須 コードレビュー 自由参加

Slide 9

Slide 9 text

©MIXI チームのレビューの課題 9 Pull Request 作成 コード レビュー レビュー 反映 Pull Request マージ バージョン開発開始 コード締め切り みんな開発案件で忙しい

Slide 10

Slide 10 text

©MIXI リーダーの悩み 10 ● 新しく配属した人をチームに、チームのコードになじませたい ○ コードレビュー参加に自然と繋がって欲しい ● コードレビューの参加率を高めたい ● 良いコードレビューで共に成長に繋がって欲しい ● 締め切り直前にレビューコメントが集中するなどのレビューの課題を解決し たい もっと早く気づいていたら ... 締め切りなのにまだ残ってる! 今回全然レビューに参加してないけ どなんかあったか?

Slide 11

Slide 11 text

©MIXI 新人の悩み 11 ● モンストサーバコードの難しいところ a. コンテンツの専門用語が多い b. DB負荷を避けるため色んな種類のキャッシュを使う c. ジョブキューを使う d. 分散DB構造 今のコードでいいの? 相談したいけど... 締め切りもうすぐなのにレビューのコメントが ...! レビュアーとして参加したいけど、自信がない

Slide 12

Slide 12 text

©MIXI モンストサーバの育成ポイント 12 ● 開発経験・知識について自分の言葉で共有できるようにすること ● 興味がある技術に対して、構造まで理解しようとする好奇心を持つよう にすること ● 向上心、向学心を持って成長できるようにすること ● 個人の成長がプロジェクトのユーザーサプライズに繋がること 詳しくは https://mixil.mixi.co.jp/culture/13107

Slide 13

Slide 13 text

©MIXI コードレビューするのなら、 もっと良いサイクルにしたい! 13

Slide 14

Slide 14 text

©MIXI グループアサインとは? ● 案件の担当を決める際に担当者をグループ分けする ● グループ内での相互レビューを義務付ける ● 2022/09/13からチームで導入 ○ 1グループ作って検証 ✓ 1回目: 2022/09/13~2022/10/27 ✓ 2回目: 2022/10/27~2022/12/13 ● 3人で1グループ ○ リーダー1名、ベテラン、新卒 14

Slide 15

Slide 15 text

©MIXI グループアサインで期待される効果 15 ● 密着仕様把握、設計、デバッグの効果 ● 普段レビューに難しさを感じる部分のハードルを下げる ● お互いのコードを知ることで不在の時にお互い対応できる ● 成果物だけではなく、開発過程も共有する(悩みポイント、設計の方法、デ バッグ記録など)

Slide 16

Slide 16 text

©MIXI グループアサイン実行期間と流れ 16 アイス ブレイク 開 発 振 り 返 り 改 善 点 反 映 開 発 振 り 返 り 改 善 点 反 映 …

Slide 17

Slide 17 text

©MIXI 1回目のグループアサイン 17

Slide 18

Slide 18 text

©MIXI 1回目で得られたもの 18 ● メンバーのやる気 ○ reviewのコメントが増加 ○ 全員締め切り前に余裕持って終わった ● 気軽に相談できる雰囲気 ● 難しさを感じる部分のハードル下げ ○ 質問のコメントが増えた ● メンバーの責任感 ● メンバーのコミュニケーション力

Slide 19

Slide 19 text

©MIXI 第1回目のグループアサインの改善点 19 もっと忙しい時で試したい 声を出して設計意図とコード読む機会があるといいかも

Slide 20

Slide 20 text

©MIXI 2回目のグループアサイン 20

Slide 21

Slide 21 text

©MIXI 1回目と違う状況 21 ● アサインの量、難易度(増やしました) ● お互いの案件チャンネルに入った ○ 原則、担当者以外は案件チャンネルに入ってない ○ 案件の結果だけではなく、コミュニケーション過程から結論まで共有で きるようにした ● 口頭レビューを導入

Slide 22

Slide 22 text

©MIXI 口頭レビューの効果-Production Effect 22 ● 声を出して読んだ本が記憶に良く残るという心理学の言葉 ○ どういう意図で設計したかをもう一度考えるようになる ○ 説明しながら、コードの目的が整理される ● さらに、質問と答えのやりとりでコード作成意図が深まる

Slide 23

Slide 23 text

©MIXI 口頭レビューの効果-Rubber duck debugging 23 プログラマーがラバー・ダック(ア ヒルちゃん)を持ち歩きアヒルちゃ んに向かってコードを1行ずつ説 明することによりデバッグを行うと いう話が由来である。

Slide 24

Slide 24 text

©MIXI 2回目で得られたもの 24 ● お互いのコード知ることで不在の時にお互い対応できた ● 成果物だけではなく、開発過程も共有した ○ 悩みポイント ○ 設計の過程と方向性 ○ デバッグ記録 ● 口頭レビューの効果が確認できた ○ 設計の整理 ○ PRの意図の整理 ○ デバッグ効果

Slide 25

Slide 25 text

©MIXI 新たな課題 25

Slide 26

Slide 26 text

©MIXI 忙しい時の義務 26 作業スケジュール反省 メンバーのメンタルケア

Slide 27

Slide 27 text

©MIXI メンバーのロール 27 スポーツと同じロール分担は必要 - 作業進捗管理 - レビュー状態管理 - メンタルケア - 設計レビュアー - パフォーマンスレビュアー

Slide 28

Slide 28 text

©MIXI もしあなたのチームに グループアサインを 導入することになったら? 28

Slide 29

Slide 29 text

©MIXI 考慮すること... ● グループの目的 ● グループメンバーのロール ● 開発プロセス ● アサインの量 ● グループの人数 (🌟) ● 絆を作れるコミュニケーション方法 29

Slide 30

Slide 30 text

©MIXI 終わりに 30