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

プロジェクトの成功を支える ZenHub と モブプログラミング / ZenHub and M...

プロジェクトの成功を支える ZenHub と モブプログラミング / ZenHub and Mob Programming

Yoshiaki Yoshida

July 11, 2018
Tweet

More Decks by Yoshiaki Yoshida

Other Decks in Technology

Transcript

  1. ZenHub - GitHub の Issue をラップした「タスク管理ツール」 - Chrome 拡張 or

    Firefox 拡張 or 専用ウェブページ - $5 user / month - 他の「タスク管理ツール」と比較しても, よくできていて, 大規模でも使える - Trello - Waffle.io - Zube
  2. ZenHub 用の リポジトリを用意する ( 実装は複数のリポジトリに 分散するため ) プロジェクトで取り組む MVP ごとに

    Epic を作る ( 1 プロジェクト : n Epic ) 全てのタスクに Epic と Milestone (スプリント) を設定する ・2018-06-15 (金) ・2018-06-29 (金) ・2018-07-13 (金)
  3. Backlogs のタスクは 基本的にメンバーを 割り当てない ( 割り当てると, メンバーごとに 偏りが生まれる ) Doing

    には 「WIP 制限」を掛ける 各タスクは1-3日で 確実に Closed に できる粒度にする
  4. タスクの Close は全員の前でする - デイリースクラムでタスクを Close する - 「全員の前で Close

    すること」に意味がある - 情報共有のため - 「右に進んだ 」という達成感 - 「Close おめでとう 」と褒め合える空気感 - Fearless Change「小さな成功」 - 「流れの速さ」をデイリースクラムで感じ取る
  5. 完了の定義 - 全てのタスクで 「完了の定義」を決める - 本当にタスクが完了なのか?の判断軸がブレないようにするため - 作業時間の大幅なブレ, 無駄も減る -

    「終わったことになってるけど, 終わってなくない?」 - 全てのタスクに必ず「完了の定義」を含める - 単純に Markdown の List 機能を使えば OK!
  6. 何をモブプログラミングのネタにする? - It should be interesting(楽しそう) - Everyone should be

    able to contribute(貢献したい) - It should be small, but not too small(小さすぎず,小さく) - It should not have a tight deadline(タイトな期限がないこと) - It should not be overly complex or simple(簡単すぎず,難しすぎず) 僕のチームでは, ゴールが明確な「API 実装 / フロントエンド実装」などをネタにすることが多い さらに「モブリリース」という, 珍しいイベントを開催することもある
  7. MDE (Mob Development Environment) - What editor/IDE to use (エディタ)

    - Keyboard shortcut mappings (ショートカット) - On screen code navigation (エディタに行数を表示する) - 「上!上!4行上!」は禁句で「150行目!」と言う - Version control user account (専用の GitHub アカウント) - Timer (タイマー)
  8. MDE (Mob Development Environment) - What editor/IDE to use (エディタ)

    - Keyboard shortcut mappings (ショートカット) - On screen code navigation (エディタに行数を表示する) - 「上!上!4行上!」は禁句で「150行目!」と言う - Version control user account (専用の GitHub アカウント) - Timer (タイマー) 僕のチームだと, ドライバーは自分の慣れた環境で開発してもらう (HHKB + IntelliJ など)
  9. Mob Station - Large Screen TV (巨大なディスプレイ) - Separate smaller

    screen for mob timer (タイマー用のディスプレイ) - Whiteboard (ホワイトボード) - Comfortable area (快適で広い場所) - Assortment of keyboards (復習の種類のキーボードを接続しておく) - などなど “Manage the noise” と書かれていて, 他のチームに迷惑を掛けない, 独立した場所が良い
  10. 時間配分 / 人数 - 本書だと「1時間半」から慣らしていくと書いてある - また, 新人がドライバーを担当する場合は「15分」など短くすることも重要 - ダラダラ伸びないように,

    決めた時間は厳守する - メンバーは「3-8名」で, ベストは「4名」と書いてある - 「3名」だと, 1人減ると「ペアプログラミング」になってしまうので NG 僕のチームでは「ポモドーロ (25min + 5min)」でモブセッションを回している
  11. プランニング (25min) レトロスペクティブ (25min) モブプログラミング (25min) x n - まず

    git pull から開始する - 実装をする - lint / spec を実行する - 問題なかったら git commit をする - 最後に git push をする - 拍手をする アレンジした今のフロー