職場でのペアプログラミングはどのくらい一般的ですか?


16

私はいつもペアプログラミングに興味を持っていますが、12年の開発で、彼らがこのプラクティスを採用した場所で働いたことはないので、人々がそれをどう見るかについて常に懐疑的です。

これはお金/時間(同じコードで作業している1台のコンピューターで2人の人を見つけた先の尖った上司!!!!彼らはあえて!)または他の理由によるのだろうか?


8
この状況ではPHBが正しいと思います。1つの出力に対して2人(したがって2つの給与)は、基本的に悪いビジネス上の決定です。ペアプログラミングが個人よりも生産的であるケースは多くありません。少なくとも「フルタイム」ではありません。したがって、新しいスタッフメンバーのメンタリングや特定の問題に共同で取り組むこと以外は、あまり行われていません。
TZHX

3
これが価値があることを先のとがった髪のボスに納得させるのは非常に難しい。
ウォルター

3
新しいコードの場合、ペアプログラミングには大きな価値があると思います。最初の反復には同じ時間がかかる場合がありますが、IMEはデバッグ時間を大幅に短縮します。そして、2人が同じコードを知っていると、一緒に独立して見ることができるため、デバッグが容易になります。「十分な目玉があると、すべてのバグが透明になります。」
マイケルK

1
@Michaelは、常にではありませんが、レガシーコードのペアリングが役立つと思うことがあります。サイロを分解したり、リファクタリングコストを削減したりできます。とはいえ、私はあなたに完全に同意します。
DevSolo

5
@TZHX:「1回の出力で2人が悪いビジネス」それは重大な欠陥のある議論であり、あなたはそれを知っています(コードの行ごとにプログラマーにお金を払うように)。ペアプログラミングは複雑なトピックであるため、簡単に却下すべきではありません。
マーティンウィックマン

回答:


20

私は同じギグを15年間受けてきましたが、最近(最近12〜18か月間)アジャイル技術の採用を開始しました。ペアプログラミングが使用される場合、結果のストーリー/機能は、欠陥のない時間通りに実装されました。それでもまだ十分に採用されているとは思わない。

アジャイルを採用する前に、他の開発者と私は長年にわたって頻繁にキーボードを共有していました(3〜4か月に1回)。私たちの管理チームは気が進まないように見えましたが、通常は以下のいくつかを達成したため、非公式のペアリングで常に満足していました。

  • チームのサイロを削減(チームが6〜8人の開発者である場合に大勝利)
  • 欠陥の少ない生産されたコード
  • 各開発者は通常、そこからスキルを獲得しました

経営陣は消極的だと思いますが、赤ちゃんの一歩を踏み出し、その機能が後で優れていることを実証できる場合(コスト節約)、および/または各(または1つ)の開発者がいくつかのスキルを獲得した(前倒しで支払う)場合、蒸気を拾うことができますあなたやあなたのチームに合ったプラクティスであることがわかります。


素晴らしい洞察力のDevSolo、共有してくれてありがとう。おそらく非常に安定したチーム(人員の離職率が低い?)
ozz

どういたしまして。私たちの売上高はかなり低いです... 4人の移転(4つの建物と2つの州)を通して、4人が15年以上にわたって同じオフィスを共有しています!
DevSolo

皮肉なことに、あなたのエイリアスは 'DevSolo'です;)nb私の経験はあなたのものと一致しています
-ChrisAnnODell

11

私の推測では、おそらく開発者から多くの抵抗があるでしょう。おそらく大学や高校時代に、世界で最もやる気のない人たちと一緒に働くことを余儀なくされたことを覚えていますか?それらの人々はまだ存在しています。すべての「一流」の人々で構成されたチームがない限り、このタイプのセットアップはグループにいくらかの敵意を引き起こします。


非常に真のペムダス!
オズ

2
+1、残念ながら。チームワークはあなたが開発しなければならないスキルであり、あなたが望んでいないなら、あなたはできません。たぶんそれはプログラマーのマネージャーがすべきことです-彼らが持っている人々と最も生産性を促進するチーム構造を見つけてください。
マイケルK

4
この職業は自我を抑える必要があります。必ずしも簡単ではありませんが、報酬は非常に有益です。
DevSolo

@DevSole ...それは私の答えと正確に関係していますか?
ペムダス

@Perndas、抵抗はエゴによるものだと、おそらく間違って思っていました。少なくとも私がそれを見たとき、それが理由のようです。開発者が実際にこれに抵抗するのは2人(覚えている)だけです。一人の自我は部屋に収まりませんでしたが、もう一人は自信を持って問題を抱えていました。
-DevSolo

9

公式には行っていませんが、行き詰まったときはいつでも開発者に電話をかけ、一緒に解決策を検討します。アイデアをバウンスし、他の人が実装している間、一人の人に考えさせるのに最適な方法です。それで、あなたがそれをタイプしているので、あなたの思考の流れを失うことはありません。

もっとやりたいと思います。


4
使い慣れていない場合に使用する別のツールは、「ゴム製ダッキング」と呼ばれます。基本的に、机の上にゴム製のアヒルのようにオブジェクトを置き(あなたは本当におもちゃのヨーダを使用します)、問題を説明します。参照c2.com/cgi/wiki?RubberDucking
DevSolo

代わりに私の隣に座っている人を使います...私たちは机の上に物を置くことができません。
CaffGeek

マジ?
マイケルK

@Michael ...ここにあるルールがわかりません。それでも、いくつかの良いものがすべての悪いものを上回っています...かろうじて。
CaffGeek

それは(かなり間抜けだ。つまり、あなたは彼らがそのバランスに満足して私たちを維持するために余分な労力を入れていると思いませんか?)これらの不合理なルールの管理はプログラマに適用聞いて悲しい
Zektaチャン

9

私は気にしません:

1-コーディング中に音楽を聴くのが好きです。誰もがスレイヤーブラストを耳で聞きたがるわけではありません。

2-私は、人々の肩越しに非常に失礼で、人々がそれをするときに非常に不快になることを考えて育ちました。

3-私は非常に高速だと思うし、解決策のスレッドにいるとき、答えを見つけ始めたとき、中断することは私が最後に必要とするものです。

4-フォーラムやニュースグループを熟読するために時々休憩を取ることはできません。とにかく不適切だと思う人もいるかもしれませんが、改善を続ける上で非常に重要だと思います。気が散ってしまうこともありますが、一般に、知識の増加による利益は、生産性への打撃を上回ります。

他のチームとは異なるかもしれませんが、実際に何かに困惑して必要なときに何度か助けてくれると、私はほとんどの場合最終的に解決策を思いつきます。私は自分のやっていることは本当に上手ですが、もっと続けられるかもしれないと思います...確かではありませんが、とにかく難しい問題を解決する方がいいと思います。ar慢に聞こえるかもしれませんが、それは偽りではありません。

実際に他の人が私のテクニックの一部を習得するのに役立つかもしれないと考えましたが、#3を考慮すると、彼らは私の思考の流れを壊すことなく質問をすることはほとんどできません。

とは言うものの、私は時々それを試しました。時々それはマイナーな利点を持っていますが、私は確かに一貫したものとしてそれを見ることができません。一匹狼システムは私にとってはうまくいき、チームにとってもうまくいくようです。


2
@ Noah、2番目だけに基づいて、ペアプログラミングの概念を理解しているかどうかはわかりません。アイデアは肩越しに見ることではありません。私が実践したように、このアイデアは、PCを共有して連携して動作させることです。マスター/スレーブプログラミングではなく、ピアプログラミングです。おそらく、
後者の

これは完全に有効です。一部の人々は、自分でそれを理解するためにただ放っておきたいだけです。
-MattC

また、ヘッドフォンについては+1。私は一日中金属やトランスを吹き飛ばし、人々が私に物事について話すとかなりイライラします。彼らは私のお気に入りの歌が終わるまで待てないの?:D
MattC

2
@ノア:あなたのリストを読んで、ペアプログラミングのより細かい点を見逃しているようです。みんなのためだと言っているわけではありません。もちろん、カウボーイモードから共有モードに切り替えるのに時間と労力がかかります。TDDを適切に実行する方法を学習するのに時間がかかるのと同じように(または他のアジャイルプラクティスについても)。
マーティンウィックマン

1
つづき...:「シニア」とは、実際にコードを実行しているのではなく、より若い開発者が提案を出すのを助けることを意味します。私はペアプログラミングのアイデアの最大のファンでもありませんが、おそらく私の快適な領域の外にあると思われます。多くの開発者が自分のステーションで作業することを好みますが、他の開発者と一緒に作業していたので、より多くのことを学び、より良いソリューションを見つけることを認めなければなりません。だから、それは本当に個人的な快適さ対より効果的な仕事の問題です。
アンシュースラー

5

ペアプログラミングは、簡単ではない困難な作業を開始または実行するための優れた方法です。より多くの日常的で単純なタスクは、単独で行う方が適切です。

私はスタートアップ/ガレージ会社と大企業の両方で、ペアプログラミングの多くのセッションに参加しました。それは常に、新しくて困難な何かがインセプトされたとき、つまり、せいぜい年に2回、数週間の間だけ起こりました。これはあなたの会社でどのくらいの頻度で発生しますか?


私が望むほど頻繁ではないことは確かです。
オズ

5

私たちはそれを決して呼んだことはありませんでしたが、その当時、私たちは常に新しい問題を攻撃していました。私たちはペアを組んでソリューションを開始しますが、通常は個別に仕上げて詳細を仕上げます。もうそんなことはない。ますます希少になりそうです。


3

あまり一般的ではありません。私が過去10年以上に行ったすべての店で、一度見たことがあります。最も遅くて最も効率の悪い店で。騒がしくストレスの多い環境を作り出しているようです。一人は運転と会話をし続け、もう一人はまったく考えないようにします。

グループでもペアでもコードレビューのためにチームをまとめ、開発者に独自のスペースを提供します。長期的には、最新のアジャイル流行を追いかけるよりも優れているでしょう。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.