$30 off During Our Annual Pro Sale. View Details »

【PhpStorm】モブプログラミングの実践と学び【結局はバランス?】

y-tsuzaki
September 24, 2022

 【PhpStorm】モブプログラミングの実践と学び【結局はバランス?】

PHPカンファレンス2022の登壇資料です

https://fortee.jp/phpcon-2022/proposal/911ccf1e-15b0-4465-a02e-f0e4e54aa2df

y-tsuzaki

September 24, 2022
Tweet

More Decks by y-tsuzaki

Other Decks in Programming

Transcript

  1. Copyright© M&Aクラウド
    【PhpStorm】モブプログラミングの実践と学
    び【結局はバランス?】
    PHP Conference Japan 2022
    M&Aクラウド プロダクト開発部 つざき

    View Slide

  2. Copyright© M&Aクラウド
    2
    自己紹介
    つざき
    M&Aクラウド所属
    Webアプリケーション開発 /データ基盤構築(最近)
    Twitter: 820zacky

    View Slide

  3. Copyright© M&Aクラウド
    お品書き
    お品書き
    ・会社/開発チーム紹介
    ・モブプログラミングとは
    ・なぜモブプロをやることにしたのか?
    ・毎日モブプロやってみた
     ・やり方
     ・メリット
     ・デメリット
    ・モブプロ撤退
    ・まとめ
    3

    View Slide

  4. Copyright© M&Aクラウド
    会社説明
    4

    View Slide

  5. Copyright© M&Aクラウド
    求人広告サイトのような M&Aダイレクトマッチング
    5
    買い手

    ・案件報酬はM&A成功報酬のみ
    ・最低手数料なし
    ・売り手ソーシングのチャネルが増える
    ・M&Aニーズを発信するだけで売り手を集客
    ・仲介業者を介さずにダイレクトにやり取り可能
    ・潜在層にもリーチが可能
    手数料無料
    ※プラットフォーム案件の場合 

    ※

    売り手
    1.掲載する
    ・買い手のM&Aニーズを自ら調べることが可能
    ・仲介業者を介さずにダイレクトにやり取り可能
    ・買い手のM&A担当者に直接コンタクトをとれる
    ・仲介業者を使わないので手数料が無料
    2.オファーする
    M&A・出資ニーズを掲載
    買い手のメリット 売り手のメリット
    ・仲介業者を使わないので手数料が無料

    〇〇領域の会社を
    募集します
    この会社と一緒に
    やっていきたい!
    5
    PR

    View Slide

  6. Copyright© M&Aクラウド
    M&Aクラウドの開発チーム
    現在、エンジニア8名
    Laravel, Nuxt.js, Svelte Kitを使って開発をしてます
    6

    View Slide

  7. Copyright© M&Aクラウド
    モブプログラミングとは
    7

    View Slide

  8. Copyright© M&Aクラウド
    モブプログラミングとは
    モブプログラミング(モブプロ、モビング)
    3人以上のエンジニアで 1つのプログラムを書き、チームで成果物を完成させる、チーム作業のテクニック
    「 効果的なモブプログラミングからは、チームによるすばらしいソフトウェアが生まれる。欠陥が減り、キー
    パーソンに頼る部分が少なく、堅牢でじっくり考え抜かれたプログラムが高いフロー効率で完成していく
    のである。」
    モブプログラミング・ベストプラクティス より引用
    8

    View Slide

  9. Copyright© M&Aクラウド
    なぜモブプロをやることにしたのか?
    9

    View Slide

  10. Copyright© M&Aクラウド
    なぜモブプロをやることにしたのか?
    モブプロ導入前の生産性向上の試み
    ・PRレビュー時のペアプロ
    ・WIP制限
    10

    View Slide

  11. Copyright© M&Aクラウド
    なぜモブプロをやることにしたのか?
    PRレビュー時のペアプロ
    11

    View Slide

  12. Copyright© M&Aクラウド
    なぜモブプロをやることにしたのか?
    WIP制限
    同時に作業する数を制限することで、各フェーズの問題点がわかりやすくなる。
    マルチタスクがなくなって効率が上がる。
    1人4ポイント以上同時に持ってはいけないルールにした。
    12

    View Slide

  13. Copyright© M&Aクラウド
    なぜモブプロをやることにしたのか?
    PRレビュー時のペアプロとWIP制限の成果
    サイクルタイムが減少した 3.0日->1.8日
    ベロシティとの負の相関( -0.76)があることも確かめられた
    13

    View Slide

  14. Copyright© M&Aクラウド
    なぜモブプロをやることにしたのか?
    PRレビュー時のペアプロとWIP制限の成果
    → サイクルタイムが下がりベロシティが向上した
    → もっと共同作業してもっと WIPを減らすにはどうしたら?
    →モブプロをやってみよう!
    14

    View Slide

  15. Copyright© M&Aクラウド
    毎日モブプロやってみた
    15

    View Slide

  16. Copyright© M&Aクラウド
    モブプログラミングやってみた
    モブプログラミング・ベストプラクティス
    16

    View Slide

  17. Copyright© M&Aクラウド
    モブプログラミングやってみた
    モブプログラミング・ベストプラクティス
    リソース効率よりもフロー効率
    ←リソース効率を優先の例
    道路をフルに使って大量に車を移動させる
    渋滞が起こる
    ←フロー効率を優先
    道路に余裕を持たせると渋滞が起こらない
    17

    View Slide

  18. Copyright© M&Aクラウド
    モブプログラミングやってみた
    モブプログラミング・ベストプラクティス
    ロール
    ・タイピスト(ドライバ)
    ・その他のモブ(ナビゲータ)
    タイピストはプログラマーではない
    タイピストが勝手にコードを書き進めてはいけない
    その他のモブがしてくれと言ったことを実現するスマートアシスタント
    18

    View Slide

  19. Copyright© M&Aクラウド
    モブプログラミングやってみた
    モブプログラミング・ベストプラクティス
    進め方
    ・10分でタイピスト交代
    ・休憩
     ・30分に一回: 5分
     ・2,3時間に一回: 15~20分
     ・停滞したら都度休憩
    19

    View Slide

  20. Copyright© M&Aクラウド
    - モブプロベストプラクティスでは物理オフィス、物理 PCを前提
    - Code With Meを利用
    - PhpStormで使える共同編集機能
    - SlackのHuddle(音声通話)との併用
    - Slackで呼びかけてシームレスに作業開始
    - Code With Meがよくフリーズするので音声通話は別がよい
    モブプログラミングやってみた
    リモートでのモブプロ
    20

    View Slide

  21. Copyright© M&Aクラウド
    ● モブプロ参加者は3名(2チーム体制のうち1チームで実践)
    ● 毎日やる
    ● 基本的には10:00〜16:00のコアタイムで実施
    ● 進めるタスクは3人で1個
    ● 期間:2ヶ月弱
    モブプログラミングやってみた
    実践方法
    21

    View Slide

  22. Copyright© M&Aクラウド
    毎日モブプロやってみてわかった
    メリット
    22

    View Slide

  23. Copyright© M&Aクラウド
    モブプログラミングやってみた
    メリット
    ● 複数人で問題解決した方がより良い答えがでる 

    ● 未知領域、苦手領域のキャッチアップが楽に(属人性の改善) 

    ● レビュー高速化

    ● 開発知識の平滑化
    23

    View Slide

  24. Copyright© M&Aクラウド
    モブプログラミングやってみた
    メリット: 複数人で問題解決した方がより良い答えがでる
    体感として、話し合いの中でいいアイデアが浮かぶことが多い 

    1人でタスクを終わらせることばかり考えて実装していると、 

    つい安直で長期の保守性の悪い手法を選択しがち 


    複数人で話し合う方が、「このタスクの目的はなんだっけ?」というところからしっかり考えて堅牢なコー
    ドが実装できる

    →計測できていないが、バグや障害の 減少、リファクタリングコストの減少など、長期的なリターンがあ
    ると感じている

    24

    View Slide

  25. Copyright© M&Aクラウド
    モブプログラミングやってみた
    メリット: 未知領域、苦手領域のキャッチアップが楽に(属人性の改善)


    チームで一つのタスクに取り組むので「得意な人が得意なタスクを取る」みたいなことが
    発生しない

    開発の属人性が減りスキルアップにもつながる


    25

    View Slide

  26. Copyright© M&Aクラウド
    モブプログラミングやってみた
    メリット: レビュー高速化


    モブプロをしていないとレビューに時間がかかる

    ・「これってどういうタスクなんだっけ?」というところからスタート 

    ・チャットコミュニケーションの ラリー

    ・レビュー時にひっくり返る(作り直し) 


    → 一緒にタスクをやっているのでPRのレビューは

    サラッと差分を見直すだけで大抵すむ

    26

    View Slide

  27. Copyright© M&Aクラウド
    モブプログラミングやってみた
    メリット: 開発知識の平滑化


    「え? PhpStormってこんな便利な機能があったんですか!?」 

    「こんなショートカットキーがあったのか!」 

    「○○さんの仕事の進め方勉強になるな・・・ 」


    など、一緒に作業してみると新しい発見がたくさん。 

    27

    View Slide

  28. Copyright© M&Aクラウド
    毎日モブプロやってみてわかった
    デメリット
    28

    View Slide

  29. Copyright© M&Aクラウド
    モブプログラミングやってみた
    デメリット
    ・ベロシティが下がった
    ・技術を深ぼる時間が取りづらい
    ・傍観者モードになってしま う
    ・人によって合う合わないがある
    29

    View Slide

  30. Copyright© M&Aクラウド
    モブプログラミングやってみた
    デメリット:ベロシティが下がった
    チームのベロシティが下がった(約 20%低下)
    3人で1タスクなので、勤務時間や家庭の事情、個別の会議などで時間が取れない時はタスクが進めら
    れなかった
    単純計算だと3倍時間がかかる(ベロシティ 66%低下)はずだが
    20%に止まったのは、フロー効率の力を感じる
    まだまだモブプロのやり方に改善の余地があったので
    ずっと改善していけばベロシティは上がっていくかも・・・?
    30

    View Slide

  31. Copyright© M&Aクラウド
    モブプログラミングやってみた
    デメリット:技術を深ぼる時間が取りづらい
    1人でやっている時にはタスク完了にはそこまで影響しないけど技術的に気になったことを深掘りする時
    間が取りやすいが
    モブプロをしていると、他の人が理解しているとそのままスルーしてしまうことがある
    強い気持ちで「ここの技術的背景をもうちょっと深掘りたい」とチームに提案することが必要
    31

    View Slide

  32. Copyright© M&Aクラウド
    モブプログラミングやってみた
    デメリット:傍観者モードになってしまう
    気を抜くと、話についていけなくなったり、他人に考えることをおまかせしてしまう
    (とくに私。勤勉なエンジニアのみなさんには、この話は関係ないかもしれない)
    集中が途切れないように休憩を提案したり、
    流れを止めて「よく理解できなかったので詳しく教えてもらえますか」と質問する勇気が必要
    32

    View Slide

  33. Copyright© M&Aクラウド
    モブプログラミングやってみた
    デメリット:人によって合う合わないがある
    チームが変わって新メンバーがモブプロをやることになったが、
    1日中ずっと通話しながら作業をするのが嫌という声があった
    一日中通話しっぱなしで仕事をすることを強要されると強いストレスを感じるのもわかる
    モブプロの理念の浸透、チームの成熟度とか、人の気質の相性とかも大事
    33

    View Slide

  34. Copyright© M&Aクラウド
    モブプロの撤退
    34

    View Slide

  35. Copyright© M&Aクラウド
    モブプロの撤退
    正式なモブプロ採用は見送りに
    ● ベロシティ悪化
    ● 火付け役(つざき)が開発から抜けた
    ● 新メンバーからの不評(非同期でやりたい)
    35

    View Slide

  36. Copyright© M&Aクラウド
    モブプロの撤退
    部分的にモブプロ実施
    ● タスクの着手時(設計相談・コードの調査)
    ● PRレビュー
    ● 開発知識の平滑化をしたいとき
    ○ 難しいタスク、よく知らない機能をやるとき
    ○ チーム体制が変わった時
    36

    View Slide

  37. Copyright© M&Aクラウド
    共同作業の量の変化
    37

    View Slide

  38. Copyright© M&Aクラウド
    M&Aクラウドにおけるエンジニア同士の共同作業量の時間変化
    38

    View Slide

  39. Copyright© M&Aクラウド
    M&Aクラウドにおけるエンジニア同士の共同作業量の時間変化
    「タスクはチームの仕事」
    という文化
    39

    View Slide

  40. Copyright© M&Aクラウド
    M&Aクラウドにおけるエンジニア同士の共同作業量の時間変化
    「タスクはチームの仕事」
    という文化
    レビュー時のペアプロ
    WIP制限の導入
    40

    View Slide

  41. Copyright© M&Aクラウド
    M&Aクラウドにおけるエンジニア同士の共同作業量の時間変化
    「タスクはチームの仕事」
    という文化
    レビュー時のペアプロ
    WIP制限の導入
    モブプロ導入
    41

    View Slide

  42. Copyright© M&Aクラウド
    M&Aクラウドにおけるエンジニア同士の共同作業量の時間変化
    「タスクはチームの仕事」
    という文化
    レビュー時のペアプロ
    WIP制限の導入
    モブプロ導入
    モブプロ撤退🥹
    42

    View Slide

  43. Copyright© M&Aクラウド
    M&Aクラウドにおけるエンジニア同士の共同作業量の時間変化
    「タスクはチームの仕事」
    という文化
    レビュー時のペアプロ
    WIP制限の導入
    モブプロ導入
    モブプロ撤退🥹
    部分的モブプロ
    43

    View Slide

  44. Copyright© M&Aクラウド
    M&Aクラウドにおけるエンジニア同士の共同作業量の時間変化
    自分達のチームにちょうどいいモブプロ(共同作業)のバランスをみつける必要がある
    44

    View Slide

  45. Copyright© M&Aクラウド
    まとめ
    ● 毎日モブプロしてみた
    ○ ベロシティが下がったがベロシティには現れないメリットがある
    ○ メンバーの気質によってモブプロとの相性がある
    ● 部分的にモブプロすることにした
    ● チームにとってちょうどいいバランスが大事
    45

    View Slide

  46. Copyright© M&Aクラウド
    資金調達プラットフォーム
    2022年冬提供開始
    PR
    昨今の資金調達ニーズ急増にあわせ、従来は
    M&Aクラウド内で提供していた
    「資金調達の機能」を切り出し、資金調達に特化した新サービスを構築中です。
    これにより、日本中のスタートアップ企業の資金調達をスムーズにし、よりスピード感を持った事
    業成長に貢献してまいります。
    46

    View Slide

  47. Copyright© M&Aクラウド
    Thanks for watching this :)
    47

    View Slide