思考錯誤

すべてはどうでもよくなる

WEB+DB PRESS のペアプロ・モブプロ特集を読んだ

ペアプロについて

なぜやるのか?

情報の伝達効率を最大化するため

何が良いのか?

  • 集中力が向上する
    • 簡単にフロー状態に持っていける
    • 疲れるのでやりすぎないこと(!)
  • 作業の質が向上する
    • ヌケモレなどのミスが圧倒的に減る
      • なぜなら2人分の脳と目を使うから
      • 英語では Four Eyes と呼ばれる
    • 声に出して相手に伝えることで頭の中が整理される
      • 一人で声に出しながらコーディングすることはなかなかできない(デスクにアヒルちゃんがいるなら別だが・・・)
    • コードの属人性が減る
      • 特定の人しか触れないようなコードが減って進捗がブロックされづらくなる
    • 相手に説明しようとするとき(コードを書き始める前(!))に間違いに気づくことが増える
  • 情報伝達効率が上がる
    • 即時フィードバックを受けれる
      • 細かいニュアンスまで伝えられる
    • 可読性や保守性への指摘といったする側受ける側も心理的な負担になることをその場でフィードバックできる
  • 高い教育効果が得られる
    • 結果だけではなくコミットとコミットの間のプロセスを共有することができる
      • 個人的にはこれが最大のメリットなのではと思う
    • コードを自分ごととしてとらえるようになる
    • 暗黙知の共有ができる
      • 熟練者が暗黙的に行っている通常共有がしづらいことの共有
      • たとえば判断の勘所など
    • ベテランにとっては、不要な技術やツールを手放すアンラーニングの機会になる
  • 楽しい
  • 技術的負債の返済にも有効

悪いことはある?

  • ここは自分で書いた、的な実感が生まれない
  • ペア内にしか知見が貯まらない

どうやるのか?

  • コードを書く前に方向づけをする
    • 最終目標を定める
  • 目標到達までに必要な作業を書き出す
    • TODOリストに書き出すと良い
  • TDD はペアプロと相性良し
    • 交代するタイミングがわかりやすい
  • Teletype for Atom のリアルタイム共同編集機能を使えばリモートでも可能
  • 脱線しないようにペアのうちナビゲートする方がコーディングする方を諌めて方向修正させる
  • 喋る
    • 内容は今考えていることやこれから書こうと思っているコード
    • 喋ることが超重要
  • 迷ったり悩んで手が止まったときはすぐ相談する
  • Pair Programing Ping Pong Pattern
    • 交代しながらやる
  • 熱中しやすいので水分補給を忘れずに

いつやるのか?

  • 新機能を追加するとき
  • 新メンバーが入ってきたとき
  • デバッグや不具合の修正をするとき

以上。モブプロについては読み飛ばした。

WEB+DB PRESS Vol.102

WEB+DB PRESS Vol.102