【あんさんぶるぷろぐらみんぐ】
アンサンブルプログラミング とは?
最終更新:
💡 1つの作業を、チームで合奏する
チームで同時に1つの作業に取り組む開発手法。入力担当(Driver)と、方針を考えて伝えるナビゲーターなどの役割を交代しながら進める。モブプログラミングとも呼ばれ、対面でもリモートでも実践される。
📌 このページのポイント
- チームが同時に同じ作業へ取り組む。モブプログラミングとも呼ばれる
- 入力担当は入力し、ナビゲーターは方針を考えて伝える
- 役割を交代し、相談や知識共有をしながら進める。効果は作業やチームによる
- リモートでは共有画面や共同編集、通話などを組み合わせられる
全員で1台のパソコンって、効率が悪くない?
作業を分担するより、人の時間を多く使う面はあるよ。一方、その場で相談でき、認識のずれや後からの修正を減らせる可能性がある。手戻りやレビュー待ちが必ずゼロになるわけではないので、チームの作業に合うかを試して振り返るんだ。
ペアプログラミングとは何が違うの?
ペアは2人で取り組むけれど、アンサンブルはチームで同じ作業に取り組むよ。専門の異なる人が一緒に考えたり、新しいメンバーに考え方を説明したりできる。人数だけで良い設計や知識共有が保証されるわけではないんだ。
具体的にはどうやって進めるの?
入力担当は、ナビゲーターが話し合って伝えた内容をコードにするよ。他の人は次の手順を考えたり、調べたりする。役割を定期的に交代する実践があり、提唱者のチームでは15分ごとに入力担当を替えていた。これは一例で、全チームの固定ルールではないんだ。
発言しにくい人も自然に参加できる?
交代するだけで参加しやすくなるとは限らないよ。質問できる間を取る、説明の速度を合わせる、休憩や参加方法を相談する、といった配慮も必要だね。誰かが入力している間も、全員で同じ問題について考えられるようにするんだ。
リモートでもできるの?
できるよ。共有画面と通話、あるいはLive Shareのような共同編集機能を使う方法がある。共同編集ツールを入れるだけで手法が成立するわけではなく、同じ作業に集中し、引き継ぎや会話の方法を決める。通信や参加者の環境に合わせた調整も必要だよ。
まとめ:ざっくりこれだけ覚えればOK!
「アンサンブルプログラミング」って出てきたら「チームで同じ作業を一緒に考え、役割を交代して進める手法」と思えばだいたいOK!
📖 おまけ:英語の意味
「Ensemble Programming」 = 合奏型プログラミング
💬 Ensembleは音楽の合奏などに使う言葉。チームが1つの作業に取り組む様子に重ねた名称だよ。モブプログラミングという呼び方も使われているんだ。