「ペアプログラミング」を編集中

ナビゲーションに移動 検索に移動

警告: ログインしていません。編集を行うと、あなたの IP アドレスが公開されます。ログインまたはアカウントを作成すれば、あなたの編集はその利用者名とともに表示されるほか、その他の利点もあります。

この編集を取り消せます。 下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。

最新版 編集中の文章
2行目: 2行目:
  
 
== 概要 ==
 
== 概要 ==
ペアプログラミングは[[冗長化]]手法として広く知られている[[HDD]]の[[RAID]]構成を[[プログラマー]]という[[人的リソース]]に適用したものである。これにより[[デスマーチ]]突入率を大幅に抑えることができる。
+
ペアプログラミングは[[冗長化]]手法として広く知られている[[HDD]]の[[RAID]]構成を[[プログラマー]]という[[人的リソース]]に適用したものである。
  
なお、[[RAIDコントローラー]]に相当するプロジェクトの現場責任者(日本では[[システムエンジニア]]と呼ばれることが多い)が無能である場合は、ペアプログラミングの理想も虚しく、綺麗に空中分解する。そのような人物は[[バグ]]を抱えた[[不良品]]であり、迷わず[[リストラ]]して[[新品交換]]するのが望ましい。
 
  
[[副作用]]を軽減する効果がある。
+
ペアで業務に取り組むという行為は絶対の安全が求められる分野では常識となっており、たとえば航空機の機長と副機長や、チーム医療などでは当たり前の形態である。
  
==他業種ではあたりまえ==
+
よってペアプログラミングという概念は[[プログラマー]]に限ったものではなく、営業職なども基本的にペアで行動するようにしている企業も少なからず存在している。ペア行動の有無は[[ブラック企業]]を判別する手法としても注目が集まる。2014年3月ごろから発生した[[すき家]]の[[パワーアップ工事]]も[[ワンオペ]]が原因のひとつと言われている。
ペアで業務に取り組むという行為は絶対の安全が求められる分野では常識となっており、たとえば航空機の機長と副機長や、チーム医療などでは当たり前の形態である。刑事ドラマの警察官も2人組、覆面パトカーでドライブしている警察官も2人組が基本である。つまり「ペア」いう概念は[[プログラマー]]に限ったものではない。某外資系電機メーカーなど、一部の企業では営業職なども基本的にペアで行動するようにしているところも少なからず存在している。
 
 
 
わざわざお硬く提唱される時点で知能指数の低い者が多い(多くなった)業界だということである。
 
 
 
ペア行動の有無は[[ブラック企業]]を判別する手法としても注目が集まる。2014年3月ごろから発生した[[すき家]]の[[パワーアップ工事]]も[[ワンオペ]]が原因のひとつと言われている。
 
  
 
== 利点 ==
 
== 利点 ==
20行目: 14行目:
  
 
=== よりよいコード ===
 
=== よりよいコード ===
相乗効果により[[設計]]や[[実装]]の質が向上することが期待される。2人組だと常に[[コードレビュー]]と[[単体テスト]]が行われているような状態になるため、後から読めない[[スパゲッティコード]]を抑制できる。とくに[[中級者病]]の抑制には強い効果を発揮する。
+
相乗効果により[[設計]]や[[実装]]の質が向上することが期待される。2人組だと常に[[コードレビュー]]と[[単体テスト]]が行われているような状態になるため、後から読めない[[スパゲッティコード]]を抑制できる。
  
 
=== 作業効率の向上 ===
 
=== 作業効率の向上 ===
32行目: 26行目:
  
 
=== 勤労意欲の向上 ===
 
=== 勤労意欲の向上 ===
ペアプログラミングを行うことでチームの各人が互いをよりよく知ることができ、結束力を生み出しやすい。またペアプログラミングの方が1人で作業するよりも楽しいと感じる開発者もいる。これは友達の少ない[[プログラマー]]の[[コミュ力]]を向上させることにもつながることであろう。
+
ペアプログラミングを行うことでチームの各人が互いをよりよく知ることができ、結束力を生み出しやすい。またペアプログラミングの方が1人で作業するよりも楽しいと感じる開発者もいる。
  
 
=== 集団的なコード所有権 ===
 
=== 集団的なコード所有権 ===
41行目: 35行目:
  
 
== 欠点 ==
 
== 欠点 ==
===コミュニケーション障害者===
 
 
経験を積んだ開発者によっては、初心者とのペアプログラミングを一種の退屈な指導と捉える場合もある。一部の技術者は1人で作業することを好み、ペアでの作業を面倒と感じる場合もある。
 
経験を積んだ開発者によっては、初心者とのペアプログラミングを一種の退屈な指導と捉える場合もある。一部の技術者は1人で作業することを好み、ペアでの作業を面倒と感じる場合もある。
これは上級者側の[[コミュ力]]不足、[[指導力]]不足であるともいえ、そのような人物は[[RAプログラム]]の対象としても差し支えない。
 
 
また、ペアの組み合わせによっては双方が「よくわからんけどあいつはしっかりやるし大丈夫だろう」の考えの元に行動してしまい、結果として人件費を2倍かけたのにもかかわらず逆にチェックが杜撰になることもあるので注意が必要である。プロジェクトリーダーや人事はお互いが「あいつで大丈夫か」と思えるような人材同士(かつ険悪な関係にないもの)をペアにする必要があり、リーダーや人事の高い能力が求められる。
 
 
===人件費===
 
小規模な[[ブラック企業]]では[[ワンオペ]]による[[プログラミング]]が広く行われており、そのような環境下ではペアプログラミング以前に[[プログラマー]]1人のみですべてを行い、[[プロジェクトマネージャー]]や[[システムエンジニア]]などという役職も存在しない。また、その前提で[[チキンレース]]の末に[[不当廉売]]のような価格が横行しており、[[安かろう悪かろう]]を繰り返し顧客からの信頼も薄いため、正常な価格への値上げも難しい状況に陥っている。このような[[ブラック企業]]では[[人件費]]を捻出することが難しくペアプログラミングは夢のまた夢である。
 
 
====RAIDプログラミング====
 
ただこの状態は[[大企業病気]]の真逆の[[弱小企業病]](なお私が勝手に名付けた名称で一般的なものではない)であるといえ、顧客からの信頼性の面や企業としての収益性の面からみても放置すればその企業は確実に経営破綻する。それを回避するためにも徐々にでも正常な状態にもっていく必要があるといえる。
 
 
いわゆる世間一般でいわれるペアプログラミングは[[ハードディスク]]でいえば[[RAID1]]構成である。確かに目先の[[コストパフォーマンス]]は悪い。
 
そこでまずは[[RAID5]]のような[[RAIDプログラミング]](なお私が勝手に名付けた名称で一般的なものではない)からはじめてみてはいかがだろうか。
 
 
[[プログラマー]]は最低3名構成で、うち1名はペアプログラミング的に巡回を担当する。
 
それを日替わりなどで行うのである。
 
万が一、不慮の事故や病気などで[[プログラマー]]が1名ほど欠落しても、一時的にペアプログラミング状態は停止することになるが、巡回するプログラマーを通常のプログラマーとして補欠できるため[[デスマーチ]]に陥る確率は大幅に低減できる。
 
 
そして企業として少し余裕が出てきたならば巡回するプログラマーを徐々に増やすなどして[[RAID6]]や[[RAID50]]に近い形態に移行し、最終的には[[RAID1]]、すなわち本来のペアプログラミングの体制にもっていけばよい。
 
 
長くなりそうなので以下に検証ページを作る。
 
*[[RAIDプログラミング]]
 
  
== 現実 ==
+
また、ペアの組み合わせによっては双方が「よくわからんけどあいつはしっかりやるし大丈夫だろう」の考えの元に行動してしまい、結果として人件費を2倍かけたのにもかかわらず逆にチェックが杜撰になることもあるので注意が必要である。
2人組であれば開発速度は落ちないどころか向上すると言われているが、目下の[[人件費]]が2倍になるという理由から、いわゆる[[IT土方]]が集う、いわゆる[[ブラック企業]]ではまず行われていない。そもそもそんな企業の人事やプロジェクトリーダーは能力不足によりまともに機能するペアを社内で構成することすらできず、ますますブラック化を加速させているのが実情と思われる。
 
  
[[システム]]を発注する顧客の場合は、「本当に完成品を納品してくれそうか」を測る指標として、[[見積]]段階でペアプログラミングを導入しているかを尋ねてみると良い。尋ねると良いどころか、必ず確認しておかなければ危険な点であると言う人もいる。
 
  
 
== 関連項目 ==
 
== 関連項目 ==

MonoBookへの投稿はすべて、他の投稿者によって編集、変更、除去される場合があります。 自分が書いたものが他の人に容赦なく編集されるのを望まない場合は、ここに投稿しないでください。
また、投稿するのは、自分で書いたものか、パブリック ドメインまたはそれに類するフリーな資料からの複製であることを約束してください(詳細はMonoBook:著作権を参照)。 著作権保護されている作品は、許諾なしに投稿しないでください!

このページを編集するには、下記の確認用の質問に回答してください (詳細):

取り消し 編集の仕方 (新しいウィンドウで開きます)

このページで使用されているテンプレート:

このページは 1 個の隠しカテゴリに属しています: