web-dev-qa-db-ja.com

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

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

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

そうであれば、コードレビューの必要性はありますか?つまり、プログラミングをやめて、実際にコードレビューを行うだけです。

14
Eduardo Copat

エクストリームプログラミングの重要なリソースの1つは、ウォードのWiki(別名ポートランドパターンリポジトリ) C2.com のリソースです。これは、多くの人々がさまざまな方法論を解き明かし、使用方法を文書化した場所です。

このwiki内に、次のページがあります。 Extreme Programming Code Reviews これには、Ron JeffriesやKent Beckなど、多くの貢献者がいます。

これに対して、彼らは言った:

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

ExtremeProgrammingでは、すべての開発が2人のエンジニアが共同で行う必要があります。コードは実際に、かなりの程度、その場で実際に見直されます。これにより、複数の人が常にコードについて親密な知識を持つことが保証されます。

ExtremeProgrammingでは、すべてのオブジェクトにUnitTestsが必要です。これにより、オブジェクトが確実に機能し、変更されたとおりに機能し続けます。

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

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

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

他の人からのトピックについての議論もかなりあります。

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

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

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

関連読書:

13
user40980