大規模な組織でBranchageddonを回避するにはどうすればよいですか?


10

大規模な組織で作業するときに、どのようにしてブランチエイジドンの状況を回避しますか?

私たちは、ソフトウェアの更新ではなく、高/重要なセキュリティパッチとオーダーメイドの機能のみを採用するというアプローチを持つ多くの大規模な金融機関と協力しています。これらの組織は、メジャーアップデートの合間にのみパッチとカスタムリリースを取得します。メジャーアップデートは数年離れている可能性があり、コストが高くつきます。このアプローチにより、私たち(ソフトウェアハウス)は、主要な顧客ごとにコードのブランチを作成します。これには、長期ブランチのすべてのコストと非効率性が伴います。

コミュニティへの私の質問は次のとおりです。

  • 顧客から同様のアップデート承認アプローチを経験しましたか?
  • このアプローチでの作業を支援するためにどのような提案がありますか?
  • ソフトウェアの更新を行うための組織のアプローチを変えるためにどのような提案がありますか?

マークさん、興味深いジレンマがあるようですね。これらの顧客ごとの更新の開発をどのように管理しますか?顧客ごとに1回限りで開発しますか、それとも開発してすべての顧客に適用するものですか。
PrestonM 2018

個人的に、私はこの状況で他の雇用を探すかもし​​れません。これは、セキュリティインシデントが発生するのを待っているように聞こえます...私が働いていたアプライアンスベンダーについてお話しします。彼らは、アップデートで修正された大きなバグを修正しました。彼らはカスタム修正を望んでいました。それらの作成を拒否し、ビジネスポリシーを修正する必要があることを伝えました。内部の政治問題を回避するために、すでにパッチを適用したバグのカスタムホットフィックスをロールすることはしませんでした。
James Shewey、2018

複数のコードブランチを介してカスタムクライアント固有の更新を管理し、すべてのブランチのセキュリティ更新を相互修正し、ブランチコードをトランクに相互修正します。多くの場合、顧客Aはブランチで顧客Bの更新を取得せず、独自の更新とセキュリティパッチのみを取得します。これは、ブランチの安定性への欲求によって推進されているため、関連する更新をテストするだけで済みます。完全なテストの再実行を実行する準備ができている場合、トランクの更新の頻度が少なくなります(つまり、数か月から数年)。完了までに数か月かかることがあります。自動テストが答えになるかもしれません!
マークウィーラー

回答:


3

Michaelが述べたように、リリースバージョン/番号に基づいた標準ソリューションを提供します。業界の寿命はかなり長くなります(通常の顧客にとって意味がある場合は、1つ以上の短い寿命の中間バージョンと交互に配置されます)。

この標準リリーストラックに着手するオプションを顧客に提供します。適切な移行期限が設定されている可能性があります。

フルカスタムのブランチサポート戦略を主張する場合は、それに応じて課金するだけで、そのようなフルカスタムサポートを提供するためのすべての追加コストを適切にカバーできます-それはビジネスに意味があります。一部のお客様は、コストを削減するために移行します(カスタムブランチの数を減らすのに役立ちます)。

可変サポートの請求は、カスタムブランチの元のリリースバージョンの経過に伴って次第に大きくなり、新しいカスタムブランチにすばやく移行するためのインセンティブとなり、古いカスタムブランチをすばやく閉じるのに役立ちます。これにより、ソフトウェアの複数のバージョンを同時に実行する顧客がいる場合、顧客ごとのカスタムブランチの数を減らすことができます。

すべてのリリースブランチ(標準およびカスタムの両方)との間で完全なブランチマージを行うという罠に陥らないようにしてください。それらに対するすべての変更は、個別に開発するか、厳選したマージされた修正でなければなりません。

これらの各ブランチは徐々に互いに分岐するため、カスタマイズ/個別開発を必要とする修正プログラムの数は指数関数的に増加します(単純なチェリーピックのマージは失敗します)。これらの開発コストを考慮に入れる必要があります。

画像に(重要な)ブランチマージがない場合、これらのブランチ用の完全に自動化されたCI / CDパイプラインを構築し、適切なホットフィックス追跡/管理システムを配置して、ホットフィックスの配信を行うことができます。ちょうどルーチン(またはほぼ)。


ダン-明白でシンプルですが、それは完全に理にかなっています。お金は世界を動かし、それから私たちが長命の枝のコストを補償するか、顧客にアップグレードしてトランクの近くに留まるように促すのに役立つはずです。良いアドバイスありがとうございます。
マークウィーラー

1

おそらく、顧客ごとではなくバージョンごとにブランチを維持している場合、その数を減らすのに役立つでしょうか?

それ以外の場合、実際にそれを回避する唯一の方法は、ソフトウェアを自分でホストし、SaaSモデルに切り替えて、そのバージョンの1つだけを維持できるようにすることです。


残念ながら、顧客は財務データが原因で非常にシャットダウンされた環境で動作することが多いため、SaaSモデルは受け入れられません。
マークウィーラー
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.