ジェレミーは非常に確かな答えを提供しましたが、私は滝からアジャイルへの移行の文脈にトピックを載せることでそれを増強しようとしました。私たちは、今や2年間アジャイルを成功させてきました。
Scrumアジャイルの重要な成功要因は、行われていない作業の量を最大限にすることです。手動テスト(単位、機能、負荷、スケーラビリティ、ネガティブ)は、十分に活用されていないエンジニアリング能力です。実際には、すべての新機能が増えると、あるレベルの品質を維持するために必要な手動テストの量は、フィーチャの相互作用によってテストマトリックスが拡張されるため、フィーチャの数が非線形(幾何学的に)に増加するため、 。私の会社では、手動テストの「技術的負債」と呼ばれています。
スクラムでは、すべてのユーザーストーリーが製品所有者が承認する前に合意した定義を満たす必要があるため、テストサイクルが加速します。どのスプリントでも、多くのユーザーストーリーはすべてのスクラムチームによって実行されるべきです。各話が手作業によるテストを必要とする場合、それは国防総省と自動化の欠如によって行うべきであり、多くの時間が浪費されます。
低リスクの静的領域に対処しないように、コードが変更されている場所で、合理的なテスト戦略を検討します。スクラムでは、コードリファクタリングが推奨されています。これは、各ストーリーが非常に薄い機能性のスライスであり、顧客のフィードバックが新しい/変更されたユーザーストーリーの形でバックログに即座に組み込まれるからです。したがって、優れたスクラムプログラムは、滝プログラムよりも「リリース日」に近い「コードフリーズ」を持つことになります。これは、一度テストして完了するのが難しくなります。あなたは何度も技術的な債務利息を支払うことになります。
ジェレミーの最後の考えは、あなたのアイデアをどのように売ったり、変化をもたらしたかに関するものです。私はこれが非常に重要であると思うので、自分の考えをいくつか追加することができます。管理者がアジャイルについて真剣であれば、スクラムチームのフィードバックを真剣に受け止めます。レトロスペクティブでは、チームメイトに単体テストカバレッジのないコードを修正する方法について質問することができます。それはいくつかのフィードバックを引き出すはずです。
もう1つの方法は、プログラムの成果物に障害物の証拠を探すことです。障害を遅らせるものとして定義されている障害。 「回帰」の欠陥が特定されているバグ追跡システムがありますか?あなたのチームは、特定のテストケースが実行される頻度を追跡していますか?適切な単体テストのカバレッジを持つソフトウェアのコンポーネントはありますか?もしそうなら、それに取り組んでいるチームは他のチームよりも少ない問題にぶつかりますか?経営陣はドル/ポンド/ユーロを気にします。自動化された単体テストが不足し、金銭に変換されているために何人の人が無駄になったかを把握する。管理者は、エンジニアの1人が完全にロードされたコストを教えてくれるでしょう。技術的な負債が直面するまで、この廃棄物は永久的であることを彼らに思い出させる。
これはすばらしい答えです。私は単体テストにコードを変更するという自信を持っていると付け加えます。これは大きなプラスです。コードが意図したとおりに動作することを証明する単体テストがない場合は、方法論に関係なく難しいでしょう。テストは、後に返済する先行投資です。コードを記述するのにかかる時間は、そのコードを維持する時間に比べて重要ではありません。 – Andy
良い点。 「テストカバレッジの向上」についてのあなたの言葉を笑います。コードカバレッジは、「私があまりにも長く生きなければならないのか」のトピックの1つです。「自分でやる」というアイデアに関しては、開発者が「自分でやる」とすれば、書かずに基本的に仕事をしている開発者と比べて、仕事を終えるのに時間がかかるようだ単体テスト。 –
@Andy - ほとんどのbeancounters _hate_コードが変更できるという考え!しかし、はい、私は私の答えを更新します。 –