私の会社は、不動産機関向けのWebアプリケーションを構築しています。最初は従来のASPでコーディングされており、.NETに段階的に移行しています。基本的に、カスタムWindowsサービス/dllと混合されたバックエンドDBを備えたWebサイトです。.NETアプリのかなりの標準。
私の過去の会社では、従来のソフトウェア設計のライフサイクルがありました。製品のリリースを作成しました。リリースすると、すべてのお客様が同じコードを受け取りました。製品要件は、エンジニアリングチームによってフィルタリングされ、ローカルのステージング環境でテストするためにQAに送信されてから、本番環境にプッシュされました。
この会社には、複数の顧客向けに複数のバージョンの製品があります。基本的に、顧客Aはリリース1.5、顧客Bは1.6、顧客Cは2.0になります。これを行うのは、アプリケーションを使用する機関が、ユーザーに影響を与える変更について厳しい要件を定めているためです。顧客がリリース1.5で問題がなければ、リリース2.0には最新の機能がすべて備わっていても、顧客はそこにとどまります。新しい「機能」は実際に混乱を引き起こしてユーザーベースを傷つけるため、顧客は実際にアップグレードを押し戻します。
このタイプのライフサイクルをサポートすることは、小さい場合は問題ありませんが、数十または数百の顧客に成長するにつれて、サポートチームは言うまでもなく、DEV、DBA、QAに負担がかかります。現在、要件が発生したときに更新できる1週間に6〜8サイトしかスケジュールできない状況にあります。これにより、他のサイトが2〜4か月待機して、サイトのマイナーな更新が行われるようにする必要があります。すぐに注意を払う必要のある本番環境の問題やバグは、事態をさらに悪化させます。更新を受信するようにすでにスケジュールされているサイトは、時間を作るために優先順位を下げる必要があるためです。
申し訳ありませんが、これは非常に長いですが、どんな助けでもありがたいです。早い段階でいくつかの変更を加えて、リリーススケジュールを改善します。ありがとう!