私はここでの答えの数に「あなたが必要でない限り更新しないでください」と言ってショックを受けました-そして実際にapp然としました-。私はそれをしました、そして、それは短期的には簡単ですが、それは長期的には地獄のように燃えます。頻繁に行われる小さな更新は、時折大きな更新よりもはるかに簡単に管理でき、新機能やバグ修正などのメリットをより早く得ることができます。
ライブラリの変更は、コードの変更よりもテストが多少難しいというこの考えを買いません。まったく同じです。コードベースに変更を加えているので、コミットする前に、リリースする前により深く検証する必要があります。ただし、コードを変更しているため、これを行うためのプロセスが既に必要です!
あなたが2〜4週間の反復で作業している場合、反復の直前よりも少しリラックスしたときに、開始後できるだけ早く実行されるように、反復タスクごとにライブラリを更新することをお勧めします期限、およびプロジェクトは変化を吸収するためのより多くの能力を持っています。誰か(またはペアプログラミングを行う場合はペア)に座って、どのライブラリが更新されたかを確認し、各ライブラリを持ち込んで再構築とテストを実行してみてください。おそらく、反復ごとに半日から1日の予算を立てます。物事が機能する場合は、変更をチェックインします(私たちが行っているように、ライブラリをソース管理に保持していると仮定しています。テストが完全に手動である場合よりも、自動化されたテストを使用する場合、これは明らかにはるかに簡単になります。
さて、問題は、更新が問題を起こした場合の対処方法です。それを修正するのに時間を費やしますか、それとも省略しますか?後者に傾くことをお勧めします。1時間以内に修正できる場合は修正しますが、更新に統合するのに多大な作業が必要な場合は、それを独自の開発タスクとして上げ、他の場合と同様に推定、優先順位付け、およびスケジュールします。可能性としては、非常に重要な修正または改善がもたらされない限り、優先度が低くなり、それを回避することはできません。しかし、次の反復更新日がくる頃には、問題がそれ自体で修正されたかもしれません。たとえそうでなくても、少なくとも今では、更新パスに障害があることがわかっているので、驚くことはありません。
その長さの反復を行っていない場合は、更新のために何らかのスタンドアロンのスケジュールを設定します-毎月より長くはありません。毎月のステータスレビューや建築委員会の会議など、他のプロジェクトリズムと結び付けることはできますか?給料日?ピザの夜?満月?いずれにせよ、従来のリリースサイクルよりもはるかに短いものを見つける必要があります。6〜18か月ごとに一度にすべてを更新しようとすると、苦痛を感じ、士気を低下させるためです。
言うまでもなく、リリース前に安定化ブランチを行う場合、このポリシーをそれらに適用しません。そこでは、重要な修正を得るためにライブラリを更新するだけです。