多くの人にとって、2 週間のイテレーションは短くはありません。私たちの多くは、1 週間の反復を行っています。Kent Beck は、毎日の展開を奨励しようとさえしています。そして、開発プロセスをクリーンアップすることには利点があり、応答性を高めることができます。
TDD の品質を下げてデータを取り出してはいけません- 後でクリーンアップするのは非常に難しく、最終的には顧客に、迅速で汚い、ハッキングされたリリースを迫られる可能性があることを教えるだけです。彼らは、結果として生成されるがらくたコードを認識しません。また、それを維持することもできません。誰かが私にそれをやらせようとしたら、私はやめます...そして、「適切にテストする時間がない」場所で働くことを拒否しました. それはうまくいく言い訳ではありません。
注: TDD について書くときは、機能テストを含めます。これらは、認識可能なユーザー ストーリーという点で顧客にとって意味のあるシナリオを実行する必要があるため、重要です。機能テストは最も重要なテストであるため、通常はストーリーの作業を開始します。「テストの顧客は、説明した内容を取得します...」他のすべてのテストは交渉の対象になる可能性がありますが、私がチームを率いるときは、少なくともストーリーごとに 1 つの機能テストを行うか、(スクラムの人々が言うように) 「完了していません!」;-)
後でテストを追加できるとは思わないでください。それを行うのははるかに困難です。(私は両方の方法で試しました - 信じてください。)システムが進化するにつれて、リファクタリングや書き直し、または一部を破棄する必要がある場合でも、実際にテストを組み込む方が安価です。
常に適切なコード カバレッジがなければ、高品質のコードを取得することはできません。
ここで重要なのは、コード テストカバレッジです。無意味な無数のテストだけでなく、壊れる可能性のあるものもカバーします。心配する必要があるものをカバーする重要なテストです。
間に合わず、それが問題である場合は、その理由を考える必要がありますか?
- 計画/リリースのスケジューリングの問題ですか?
- コードのメンテナンスやリファクタリングに問題はありますか?
- チームに不当なプレッシャーをかけている人はいますか? (CTOに彼らを打ち負かしてもらいます...)