Upgrade to Pro — share decks privately, control downloads, hide ads and more …

エンジニアの心も繋ごう、グループアサイン【MIXI TECH CONFERENCE 2023】

エンジニアの心も繋ごう、グループアサイン【MIXI TECH CONFERENCE 2023】

MIXI TECH CONFERENCE 2023
にてお話したジ ワンジョンの資料です。

動画:https://youtu.be/83VWlNCtS2Q

https://techcon.mixi.co.jp/d3-7

MIXI ENGINEERS
PRO

March 03, 2023
Tweet

More Decks by MIXI ENGINEERS

Other Decks in Technology

Transcript

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

    View Slide

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

    View Slide

  3. ©MIXI
    はじめに
    3

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  16. ©MIXI
    グループアサイン実行期間と流れ
    16
    アイス
    ブレイク























    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  25. ©MIXI
    新たな課題
    25

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

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

    View Slide

  30. ©MIXI
    終わりに
    30

    View Slide