ペアプログラミングは、エクストリームプログラミング(XP)プロジェクトでのコードレビューの必要性を排除しますか?


14

極端なプログラミングプロジェクトでは、プログラマはほとんどの場合ペアプログラミングを行います。

これらのペアも回転するため、つまり、プログラムをさまざまな人とペアにし、集団所有権の感覚があるため、ソースコードは頻繁にレビューおよび更新されています。

そうであれば、コードレビューが必要ですか?つまり、プログラミングを停止し、実際にコードレビューを行うだけです。


3
ペアプログラミングはXPのテナントにすぎません。XPに従っていない他の多くのアジャイル方法論があります。中には何もありませんアジャイルソフトウェア開発のための宣言アジャイルマニフェストの背後にある原則ペアプログラミングを言及しています。コードレビューについても何もありません。すべてのアジャイルが極端であると想定しないことが重要です。

質問を言い換えて、XPのみを含めるようにします。
エドゥアルドコパット14

あなたがそれを試さないで、停止するための基準を設定したことを確認する理由はありますか?チームがコードのチェックインに満足しているのであれば、それで十分な理由になるはずです。
ジェフ14

回答:


13

Extreme Programmingの重要なリソースの1つは、WardのWikiであるPortland Pattern RepositoryであるC2.comです。これは、多くの人々がさまざまな方法論をハッシュし、それらを使用したときにそれらを文書化した場所です。

このwiki内には、Ron JeffriesやKent Beckを含む多くの貢献者がいるExtreme Programming Code Reviewsというページがあります。

これに、彼らは言った:

多くの大規模なプロセスの達人は、コードレビューを重要視しています。それらは、標準への準拠を保証することを目的とし、さらに重要なことは、コードが明確で効率的で、機能し、QWANを持っていることを保証することを目的としています。彼らはまた、コードに関する知識をチームの他のメンバーに広める手助けをすることも意図していました。

ExtremeProgrammingでは、すべての開発が2人のエンジニアが一緒に行う必要があります。コードは実際にその場でかなりの程度までレビューされます。これにより、複数の人が常にコードを熟知していることが保証されます。

ExtremeProgrammingでは、すべてのオブジェクトにUnitTestsが必要です。これらは、オブジェクトが機能することを保証し、変更されたまま機能し続けます。

一部の言語は反射的です。このような言語では、UnitTestsは重要な標準への準拠を直接確認できます。(たとえば、オブジェクトは#=と#hashの両方を実装するか、どちらも実装しない必要があります。)

ExtremeProgrammingはCollectiveCodeOwnershipを実践します。これは、注意が必要なオブジェクトが多くの開発者によって閲覧されることを意味します。これは、標準に準拠していないコードを生成するコードに圧力をかける傾向があります。訪問する開発者は、逸脱を発見した場合にコードを適合させることが推奨されます。これにより、コードを作成したプログラマーの最初のペアを超えて、コードの知識が広められます。

したがって、ExtremeProgrammingプロジェクトは明示的なレビューを必要としません。方法論からそれらを削除します。

また、他の人からのトピックに関するかなり多くの議論があります。

ただし、重要な点は、テスト、共同所有権、およびペアプログラミングを組み合わせることで、コードレビューで通常行われるべき次のような目標を解決できることです。

  • 何が行われているかの知識を分散させる
  • コードに2番目(またはそれ以上)の目玉セットがあり、標準に準拠していることを確認する
  • コードが正しく機能することを確認する

これらは、エクストリームプログラミングのペアプログラミングと自動テストを通じて継続的に行われているため、明示的なファガン検査は不要です。

関連資料:


4
私は別のq&aで、コードレビューは不必要な無駄(言葉の意味では無駄)であり、ペアプログラミングはコードレビューが提供するすべての利点を提供する好ましい方法であるべきだと主張しました。言うまでもなく、私はあなたのようにVOICE OF AUTHORITY(TM)でそれをバックアップしていなかったので、人々は私の議論に反論しました。毎日論理を扱う人々のグループにとって、私たちは非論理的な束です。
マイケルブラウン14

6
追加のコードレビューなしでペアプログラミングを行うことのリスクは、両方のプログラマーが執筆時点で深く関与しており、その時点で完全に明確で論理的に見えるコードを書く可能性があることですが、数日後に再び見るとそうではありません。リスクの大きさや許容範囲は、組織によって異なります。
バートヴァンインゲンシェナウ14

あなたは同様にペアプログラミングが不要な廃棄物とそのコードレビューすべきであるなどなどであると主張する可能性があり@MikeBrown
AlexFoxGill

WASTEが私が「リーン」という言葉の定義を意味したことを見てください。典型的な組立ラインプロセスを考えてください。アイデアは、できるだけ早く車を下り、品質チェックを事実の後に行うことです(コードレビュー)。無駄のない原則は、(ペアプログラミング)で品質を構築するためにもう少し時間と労力を要することを支持するため、事後チェックは不要になります。
マイケルブラウン14
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.