2009-05-13 10 views
3

既存のビジネスアプリケーションの拡張機能を使用している場合は、変更をより頻繁ではないリリースにバッチアップするか、小規模リリースで新しい機能を継続的に出荷する方がよいと思いますか?ハードウェアのアップグレードやデータベースのアップグレードがあると仮定しても、これらの変更はリリースでも行われますか、それとも別々に保たれますか?1つの大きなリリースまたはいくつかの小さなリリース?

すべてを解放すると、ビジネスの中断が少なく、時間外の作業が少なくて済むという利点がありますが、データベースのアップグレード、ハードウェアまたはソフトウェアの変更が原因で発生する問題が発生する可能性があります。

リリースから生じる問題を追跡するのは簡単ではありませんが、多くの中断や回帰テストに時間がかかります。

どちらが優れていますか?

答えて

3

各リリースがどのように顧客に影響するかを考慮してください。重大な問題をより早く解決するため、小規模なリリースが頻繁にリリースされますか?これはあなたの販売と評判を改善するでしょうか?これらのメリットが余分な仕事を超過するかどうかを慎重に見積もっている場合は、そうでない場合は、より便利なパスに従ってください。

1

個人的には、大きなリリースが好きです。

私は週に何度も更新を提示するソフトウェアを自宅に持っています。自動更新機能がないので迷惑ですが、通知は戻ってくるだけです。

あなたは、この同様の質問を見てとることをお勧めします:私はその優れた一つの大きなリリースにそれを仕事とあなたがラインの下の問題を修正する必要があるとして、アップパッチを適用することを考えるHow Often should you release software updates

+0

@Lieven:あなたの問題の解決策は、自動更新を作成し、リリースを少なくすることではないようです。 –

+0

@ジョンサウンダー:聞いています。私は、セキュリティ修正のための自動更新、新しい機能の手動更新を好むと言って、私に言い直しましょう。手動更新(通知)の頻度は1週間以上でなければなりません。 –

1

を。

開発者は、可能な限り堅牢なものにするために、システムの問題や破損を予測する必要があります。これは、通常、事前に多くのテストを意味します。

また、エンドユーザーが製品の小さなインクリメントを支払うことを望まない可能性があり、大きなアップデートを待つことも考えられます。この良い例は、私はAdobe Photoshopのを得たとき、彼らはそれは時間が見えたまで、私は単にそれが本当に環境、あなたの中に依存

2

正しかった待っていたので、毎年新しいバージョンをリリースするように見えるでいくつかのシナリオ:。

多くのお客様:可能な限り、すべてのお客様に同じリリースを提供したいと考えています。テストとロールアウトの調整には非常にコストがかかるため、アニュアル、セミナー、または四半期の大規模リリースを行う方がはるかに簡単です。この場合、私はdbの変更も含めます。

"大きなインフラストラクチャ":オペレーティングシステムとデータベース用の専用パーソナルを使用している大規模な企業環境では、全体的なリリースコストが大きいため、リリースの頻度が高くなります。

要するに、人力、ビジネス介入、調整、テストでのリリースのコストを計算し、それぞれの新機能やバグ修正のメリットに関連させます。

私は通常、ショーストッパーのために年に1-2の大きなリリースとバグを修正する傾向があります。

1

リリース数が少ないほど、すべてのバグを一度に見つけることができます。どのコード変更がどのバグを引き起こしたのかを知ることは難しくなります。カスケーディングバグの問題が増えています。あなたが数ヶ月前に行った1回のコード変更によりバグが発生しましたが、その間にあなたは数か月前に導入したバグに依存する5つの変更を加えました。

小型で高品質のリリースが優れています。リリースが小さくなると、高品質が得やすくなります。

+0

これは、テストが最終顧客によって行われる(残念ながら一般的な)ケースに当てはまります。幸運にも飛行機はこのように開発されていません;-) –

0

実際には両方とも。
開発をDEVELとRELEASEブランチに分割することはできますか?緊急の問題は、RELブランチのASAPで実施し、修正プログラムとしてユーザーに送信する必要があります。 RELブランチに修正プログラムを適用した後、パッチを適用する必要がDEVチームに送信されます(注意:RELのいくつかの問題を修正するにはクイックコードを書く必要がありますが、DEVブランチでは修正案を再検討する必要がありますDEVブランチの条件が変更されている可能性があるので、DEVまたはRELブランチで同じ問題を修正するために、まったく異なるコードを書くのが一般的です)。
新しいバージョンの開発が完了すると、RELから移行された新しい機能やパッチをテストする必要があります。すべてがうまくいけば、新しい大きなバージョンを配備し、現在のDEVをRELにアーカイブすることができます。古いRELは封印されます。

2

私は最良の答えは:2つの混合物だと思います。

たとえば、アイキャンディーを追加したり、名前のテキストボックスを「ajaxy」にしたり、新しいタイプのレポートに投げたりした場合は、これを「小さな」リリースとしてください。できるだけ早くリリースし、頻繁にリリースしてください。

一方、ユーザーのプロセスを変更してユーザーを「再訓練」したり、大規模なインフラストラクチャを変更する必要がある場合は、大きなリリースでは可能な限り使用しないでください。

あなたが言ったように、中断がほとんどまたはまったくない場合は、できるだけ頻繁に行うようにしてください。回帰テストでは時間がかかりますあなたが行った変更に関連しています。

関連する問題