Slide 1

Slide 1 text

No content

Slide 2

Slide 2 text

株式会社Ubie Staff Product Engineer @tonkotsuboy_com 鹿野 壮(かの たけし)

Slide 3

Slide 3 text

01 「並行開発」とは

Slide 4

Slide 4 text

複数の作業を並行 同じリポジトリで複数機能を同時開発する 複数リポジトリで1つの機能を開発する 複数リポジトリで複数の機能を開発する 生活と仕事の並行 ローカルとリモートの並行(→ remote/クラウド) 今回の「並行開発」

Slide 5

Slide 5 text

AIは待ち時間が長い(考える・作る間、人は待つだけ) 1つのセッションに詰め込むとコンテキストが枯渇する 1つ作業を頼んで待つのではなく、 「複数の作業を依頼し、監督する」 待ち時間と人の集中力を、開発の速度に変える なぜ並行開発か

Slide 6

Slide 6 text

手法 何を並行させるか cmux 複数セッション サブエージェント 個別作業 teammate 複数エージェントの連携 /fork , /branch コンテキストを引き継いだ別タスク /autofix-pr メイン作業とPRのCI対応 /btw 作業と質問 git worktree 複数機能開発 remote control 開発とプライベート pmset disablesleep とテザリング 開発と電車・自転車移動 私がClaude Codeでよく使っている並行開発手法

Slide 7

Slide 7 text

02 各手法の紹介

Slide 8

Slide 8 text

GPU駆動の高速ターミナル Claude Codeと相性がよく、 サイドバーの縦タブでClaude Codeのセッション状態がわかる 複数のタスクの表示・移動ができる cmux

Slide 9

Slide 9 text

メインの会話から切り離して、個別の作業を投げる 独立したコンテキストで調査・検索・実装を並列化 本流のコンテキストを汚さずに済む 使用例 「フロントエンド・バックエンドのエージェントにそれぞれ開 発をさせて」と依頼する サブエージェント

Slide 10

Slide 10 text

コンテキストをたもったままセッションを分岐 /branch は完全別作業 /fork は結果をメインに返す 使用例 「ここまでの内容をドキュメントにまとめておいて」と依頼す る /fork と /branch :会話を分岐する

Slide 11

Slide 11 text

クラウド環境にて、PRのCI失敗やレビュー指摘を 自動で修正してpush 対応途中からローカル環境に戻したければ、claude -- teleport 使用例 PR作成後、CI通すだけの状況になったときに実行 /autofix-pr

Slide 12

Slide 12 text

セッションを中断せず、コンテキストを保ったまま会話できる 会話のコンテキストは見えるが、ツールは使えない 使用例 「ここで使われているCSSの@containerってなんだっけ?」 と質問 /btw

Slide 13

Slide 13 text

同じリポジトリで、作業ディレクトリだけを分けるgitの機能 pnpmだとnode_modulesも共有できてディスク消費が少なく高 速 別ファイルの機能なら、安全に同時開発できる 使用例 (プロジェクトの調査を終えた後に) 「検索機能とお気に入り機能を、 それぞれ別のworktreeで並行開発して」と依頼する git worktree

Slide 14

Slide 14 text

worktreeは新しいチェックアウト=gitignoreされた.env 等は存 在しない プロジェクトルートに.worktreeinclude を置くと自動でコピ ーされる 追跡済みファイルは複製されないので安全 .worktreeinclude でgit ignoreされたものを引き継ぐ

Slide 15

Slide 15 text

外出先からローカルセッションをスマホで進捗確認・指示 開発とプライベートを並行させる 使用例 ソファーでだらだらYouTube見ながらスマホから指示出し お出かけして暇になったら スマホから指示出し remote control

Slide 16

Slide 16 text

Remote Controlは便利だが、PCがスリープすると使えない 設定画面のバッテリーから、スリープをしない設定が必要 MacBookの場合、上記設定をしてもディスプレイを閉じると勝 手にスリープする sudo pmset -a disablesleep 1 でフタを閉じてもスリープ しない pmset disablesleep

Slide 17

Slide 17 text

PCがスリープせずとも、Claude Codeがネットに繋がらないと 作業ができない テザリングをすることで、MacBookを閉じて持ち歩いても Remote Controlで作業が可能 使用例 職場から退勤前に作業依頼、自転車で移動中も動作 電車で移動中にスマホから指示出し テザリング

Slide 18

Slide 18 text

Not For Meだったこと。 知見をください 03 やめたこと

Slide 19

Slide 19 text

昔は worktree を使いたくなくて、 リポジトリを複数フォルダにクローンしていた IDEで差分やコード編集がしづらかった 専用ツールまで自作した(multi-folder-git-clone) worktree に乗り換えた IDEがネイティブ対応し、差分も cmux で見やすくなった やめたこと①:同じフォルダにクローン

Slide 20

Slide 20 text

vibe-kanbanのようなカンバン形式でタスク管理する 専用ツールを使ったり、自作していた 結局、ネイティブのターミナルの開発体験に敵わなかった 画像の添付 @ によるファイル参照 差分管理 知見をください やめたこと②:自作のエージェント管理ツール

Slide 21

Slide 21 text

04 まとめ

Slide 22

Slide 22 text

各手法を用いて並行開発し、生産性の向上を狙う 単純な開発の並行だけではなく、作業時間外にClaude Codeを走 らせる まとめ

Slide 23

Slide 23 text

XでClaude Codeやフロントエンドの情報を発信しています @tonkotsuboy_com