「ペアプログラミング」を編集中
ナビゲーションに移動
検索に移動
この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
1行目: | 1行目: | ||
− | '''ペアプログラミング''' | + | '''ペアプログラミング'''(英語:pair programming)とは、大雑把にいうと[[職業プログラマー]]を[[冗長化]]することである。 |
== 概要 == | == 概要 == | ||
− | + | ペアプログラミングは、[[冗長化]]手法として広く知られている[[HDD]]の[[RAID]]構成を、[[プログラマー]]という[[人的リソース]]に適用したものである。これにより[[デスマーチ]]突入率を大幅に抑えることができる。 | |
− | なお、[[ | + | なお、[[プログラマー]]に限ったものではなく、営業職なども基本的にペアで行動するようにしている企業も少なからず存在している。 |
− | + | == 利点 == | |
− | |||
− | == | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
=== 規範意識の増大 === | === 規範意識の増大 === | ||
組合せ次第では、個人の作業よりもサボりにくく、ちゃんと作業を進める可能性が高い。なお組合せを間違えると2人してサボる。 | 組合せ次第では、個人の作業よりもサボりにくく、ちゃんと作業を進める可能性が高い。なお組合せを間違えると2人してサボる。 | ||
=== よりよいコード === | === よりよいコード === | ||
− | 相乗効果により[[設計]]や[[実装]]の質が向上することが期待される。2人組だと常に[[コードレビュー]]と[[単体テスト]]が行われているような状態になるため、後から読めない[[スパゲッティコード]] | + | 相乗効果により[[設計]]や[[実装]]の質が向上することが期待される。2人組だと常に[[コードレビュー]]と[[単体テスト]]が行われているような状態になるため、後から読めない[[スパゲッティコード]]を抑制できる。 |
=== 作業効率の向上 === | === 作業効率の向上 === | ||
41行目: | 33行目: | ||
== 欠点 == | == 欠点 == | ||
− | |||
経験を積んだ開発者によっては、初心者とのペアプログラミングを一種の退屈な指導と捉える場合もある。一部の技術者は1人で作業することを好み、ペアでの作業を面倒と感じる場合もある。 | 経験を積んだ開発者によっては、初心者とのペアプログラミングを一種の退屈な指導と捉える場合もある。一部の技術者は1人で作業することを好み、ペアでの作業を面倒と感じる場合もある。 | ||
+ | |||
これは上級者側の[[コミュ力]]不足、[[指導力]]不足であるともいえ、そのような人物は[[RAプログラム]]の対象としても差し支えない。 | これは上級者側の[[コミュ力]]不足、[[指導力]]不足であるともいえ、そのような人物は[[RAプログラム]]の対象としても差し支えない。 | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
== 現実 == | == 現実 == | ||
− | 2人組であれば開発速度は落ちないどころか向上すると言われているが、目下の[[人件費]]が2倍になるという理由から、いわゆる[[IT土方]]が集う、いわゆる[[ブラック企業]] | + | 2人組であれば開発速度は落ちないどころか向上すると言われているが、目下の[[人件費]]が2倍になるという理由から、いわゆる[[IT土方]]が集う、いわゆる[[ブラック企業]]ではまず行われていない。 |
− | [[システム]]を発注する顧客の場合は、「本当に完成品を納品してくれそうか」を測る指標として、[[見積]] | + | [[システム]]を発注する顧客の場合は、「本当に完成品を納品してくれそうか」を測る指標として、[[見積]]段階でペアプログラミングを導入しているかを尋ねてみると良い。尋ねると良いどころか、必ず確認しておかなければ危険な点であるとう人もいる。 |
== 関連項目 == | == 関連項目 == | ||
− | |||
− | |||
* [[エクストリーム・プログラミング]] | * [[エクストリーム・プログラミング]] | ||