OK、噛みます。この問題には技術的な側面がありますが、他の回答ではすでに取り上げています。しかし、本当の問題はプロセスの問題です。真の焦点は、意味のあるソフトウェア開発ライフサイクル(SDLC)(計画、開発、検証、および展開)を確保することです。それぞれを順番に説明します。必要なのは、各フェーズで繰り返し可能なアクティビティです。
計画
何が配信されるかを明確にし、記録します。多くの場合、チケットやユーザーストーリーで十分です。書面による要件文書のように、顧客が承認するより多くのことを行う場合があります。これは、書面によるユースケースなどのさまざまなアーティファクトに変換されます。最終的には、コードへの変更を関連付けることができる電子システムに記録されたものが必要です。 。それは私を導きます...
発達
その電子システムを覚えていますか?良い。これで、コードに変更を加えると(ソース管理を正しく行うのですか?)、それらの変更をこの電子システムの何か(通常はチケット)に関連付けます。私はTracが好きですが、 Atlassianのスイートについても良いことを聞いたことがあります。これにより、トレーサビリティが得られます。したがって、何がどのように行われたかを主張できます。次に、このシステムとソース管理を使用して、ビルド(変更されたものに必要なすべてのビット)を作成し、ソース管理でビルドするタグを作成します。これが変更内容のリストです。さらに良いことに、ビルドにすべてを含めると、それ自体で簡単にデプロイできるスタンドアロンエンティティになります。
検証
おそらく、多くの店が無視する最も重要なステップ-彼ら自身の危険で。本番環境で見つかった欠陥は、プロセスの早い段階で発見された場合よりも修正に費用がかかります。そして、検証は多くの場合、これが多くのショップで発生する唯一のステップです-したがって、あなたがそれを行うことを確認してください。
これはプログラマーが行うべきではありません!それは、狐が鶏舎を見ているようなものです。そして、誰がしているのかは、ある種の計画に従うべきです。TestLinkを使用します。これは、各ビルドが同じ方法で検証されることを意味するため、リグレッションのバグを特定できます。また、このビルドは、本番環境にデプロイするのと同じ方法でデプロイする必要があります。
すべてがうまくいけば(通常、最低3つのビルドが必要です)、ビルドが検証されます。そしてこれは...
展開
テストで行ったのと同じ手順に従って検証済みのビルドを実行しているため、これはイベントではないはずです。最初に、自動コピープロセスがあるステージングサーバーにヒットする可能性がありますが、同じプロセスで検証したため、現時点では問題にならないはずです。
結論
何がどこにあるかを知るという点で、本当に必要なのは、変更をグループ化する論理的な方法です。ここでビルドのアイデアが出てきます。これは、SDLCのステップ間で決定する必要のあるユニットです。すでにそれを持っている場合、特定のシステムの状態を理解する能力は取るに足らないものになります。