私のチームは、かんばんスタイルのアプローチを使用して開発を行っています。このアプローチでは、機能とバグ修正のストーリーが、準備ができたときに本番環境にフィルターされます。現在、VCSとしてSVNを使用しており、各ストーリーの開発に機能分岐アプローチを採用しています。ワークフローの非常に単純化されたバージョンは次のようになります。
ただし、最近発生した問題の1つは、同じアプリケーションの多数のフィーチャーストーリーが同時に実行されている場合、それらのストーリーの1つにバグがあると、問題が発生する可能性があることです。つまり、ストーリー1が再統合されてバグがあったが、ストーリー2と3はそのバグが発見される前に再統合されたとします。現在、そのバグを含む3つのリリースがあります。つまり、2つのことのいずれかを実行することになりますが、どちらも優れていません。
だから私の主な質問は次のようになります:
リリーストランクに移動する前に、QA「トランク」にリリースできます。これにより、より多くのテストを取得でき、優れた統合ビルドをリリースに昇格させることができます。バグを見つけた場合、問題が発生します。バグを修正して統合するか、リリーストランクに渡されたブランチを選択して、バグのある機能をスキップするかを決定する必要があります。
これは、バグのあるブランチが多数統合されている場合(つまり、リリースに進まない一部の機能がQAにマージされるため)、QAトランクがリリースとゆっくり同期しなくなる可能性があることを意味します。これを解決するには、常にバグを修正してから、次のサイクルでリリースにプロモートされるQAへの更新をマージするか、失敗してその一部にならない場合は、機能ブランチからのすべての変更をQAから元に戻します。すぐに解決します。
ブランチでもテストする必要がありますが、他の機能との統合が不十分なために発生したバグが必ずしも表示されるとは限りません。次の段階、つまりQAトランクに昇格するのに十分な能力があることを示す必要があります。
もちろん、既知の問題としての影響を説明するメモを付けてバグをリリースすることもできます。エンドユーザーが見つけた、デプロイされた製品のバグがすでにあることは間違いありません。ライブ環境で見つかったバグと同じ方法で、新しいバグに対処できます。