21

バグのテストと修正以外で開発を停止する状況に対して、「コード フリーズ」という用語を使用することをコミュニティが許容できると考えるかどうか、私はただ興味があります。

開発状況

私たちは 3 番目で最後のスプリントを終えたところで、「コード フリーズ」と 2 週間の Q/A テストが続きます。これは大きなリリースであり、一部のコンポーネントの開発は 3 つのスプリントすべてを超えています。歴史的には「コード フリーズ」と呼んでいますが、バグを修正するためにコードをコミットしています。

問題

リリースのたびに、私は上司や同僚に修正を試みており、これを「機能の凍結」と呼ぶべきです。なぜなら、重いテストを開始するとすぐに、バグを見つけて修正するためにコードをコミットすることは明らかだからです。しかし、彼らはそれを「コードフリーズ」と呼んでいます。既知のバグがまだあり、「コード フリーズ」を宣言することがあります。

ウィキペディアの定義はここで私に同意するようです

分析

これらの状況を「コード フリーズ」と呼ぶのは、利害関係者に誤った信頼を与えるためのある種の意図的なダブル シンクだと思います。または、「コード フリーズ」の状況にあるふりをしているのです。なぜなら、スクラムに従って、すべてのスプリントの後に出荷可能なソフトウェアを用意する必要があり、スクラムに従っていることが期待されるからです。したがって、それが実際に何であるかではなく、スクラムが期待するものと呼ぶ必要があります。

結論

私はこれを分析しすぎていますか?状況の現実を無視するのは不健康だと思うので、それをそうではないものと呼ぶのをあきらめるか、根本的な問題を修正する必要があります. Code Freezes で同様の経験をした人はいますか?

4

9 に答える 9

18

私はこれを分析しすぎていますか?

はい。

まあ、おそらく。現実的には、フリーズ後にコードを変更する前に、よく考えておく必要があります。バグはいくつかの重大度テストに合格する必要があります。修正でコードベースに潜在的に危険な変更が必要な場合、または実行されたテストが無効になる場合はさらにそうです。あなたがそれをしていなければええ、あなたは自分自身をだましているだけです。

ただし、バグを修正する予定がない場合はコードをフリーズするのは無意味です。ビルドして出荷するだけです。

最終的に重要なのは、ラベル自体ではなく、ラベルの意味を理解していることです。1つの大きな幸せなハンプティ-ダンプティ...

于 2009-10-13T01:48:45.527 に答える
12

「完全な機能」という用語を使用します。すべての機能はコード化され、機能していますが、バグがないことを確認するためのテスト パスに進んでいます。バグがある場合は、それらを見つけて修正し、再テストします。結果に満足したら、「コードの完成」です。

于 2009-10-14T03:46:39.427 に答える
3

スクラムのような適応的でアジャイルなエンジニアリング方法論に入る人の中には、自分が何に夢中になっているのか理解できない人もいるかもしれません。

アジャイルエンジニアリングである理由は、現在使用可能なものをすべて顧客にリリースし、その使いやすさと機能を徐々に構築することです。

  1. プロジェクトが18か月で完了すると予測されているが、2か月ごとに使用できるものが増える可能性がある場合は、どちらの方法でもプロジェクトが18か月続くので、18か月先の壮大な聖日まで待つのではなく、2か月ごとに機能をリリースしてみませんか。 。
  2. 顧客の要件が変わる可能性があるため、手遅れになる前に頻繁に考えを変える機会を顧客に与えると、顧客は元気になります。
  3. 誰かがあなたのモジュールの1つのオープンソースモジュールを今から10か月後にリリースするかもしれません、そしてあなたは他に多くをする必要はありませんがそのモジュールを統合します。

したがって、スクラムマー、または少なくともスクラムマスターおよび/またはプロジェクトマネージャー/アーキテクトは、モジュール化するためにスクラムのダイナミクスによって必要とされます...モジュール化は十分ではありません。しかし、プロジェクトを細かくします。

モジュール内の変更がモジュール内で管理されるように、モジュールを適切なサイズに細分化し、それぞれにコントラクトインターフェイス仕様を提供する必要があります。モジュール自体または他のモジュールの依存によりコントラクトインターフェイスを満たすことができない場合は、コードをフリーズしてコントラクトインターフェイスバージョン1をブロードキャストできるようにする必要があります。これにより、他のチームは予想よりも少ない機能で続行できます。次の一般的な製品リリースで。

コードフリーズはコードフリーズです。

コードのフリーズで解凍の遅延が頻繁に発生する場合は、スクラムマスターと製品アーキテクトが通信していないか、適切に作業を行っていません。おそらく、彼らがアジャイルプログラミングと呼ばれる業界の流行を使用していることを経営陣に印象づけたり黙認したりしようとしても意味がありません。または、経営陣は、チームのスキルだけでなく、顧客の期待やプロジェクトの技術的制約の範囲内でプロジェクトを設計および細分化できるアーキテクトとスクラムマスターを雇う必要があります。

優れたアーキテクトがスクラム環境にとってどれほど重要であるかを理解しておらず、採用を拒否している管理要素とそのスクラムマスターがいると思います。チームに耳を傾け、チームと協力できる優れたアーキテクトは、変化する粒度と期待にアーキテクチャを絶えず適応させる必要があるため、スクラムプロセスにとって非常に貴重です。

また、ウォーターフォールなどの開発サイクルが長いという悪い経験のために、プログラミングユニバースの他のスペクトルに属する管理要素とそのスクラムマスターがいると思います。したがって、スクラムは1か月以内に製品を生産することを目的としているため、綿密な調査が必要です。クロスモジュール効果に実際に必要ではありません。彼らは座って、空中で指を濡らし、素晴らしいスプリントを思いつきます。

チームでコードフリーズの解凍が頻繁に発生している場合は、プロジェクト全体をコードフリーズして戦略を再考し、モジュールの粒度に適合するモジュールコントラクトを定義することを拒否したことが原因であることを確認する必要があります。または、スタックしたモジュールの機能を現在希薄化して他のチームやモジュールを続行できるようにするために、モジュールコントラクトを定義していますか?

プロジェクトリリースの予測される機能を発見し、取り残されたモジュールの効果を確認してから、目的の製品リリースレベルに到達するためにどのモジュールに焦点を当てる必要があるかを確認できるUML戦略がありますか?スクラムやスプリントに参加していて、UMLの写真がないので、自分がどれだけ進んでいるか遅れているかを示しているので、楽しくまたは盲目的にぶつかっていますか?または、スクラムマスターは、いや、いや、うーん...そのモジュールは重要だと思いますか?実際には、製品リリースに関連して最もストランド可能なモジュールを明確に把握する必要はありません。

製品リリースのコードフリーズは、モジュールの段階的なフリーズによって実現されます。モジュールが完了するとすぐに、製品テストが実行され、モジュールがその契約を満たし、そのモジュールがバージョン2.1と言うようにコード凍結されていることを確認します。2.2ではそのモジュールで作業が進行しますが、プロジェクト全体は2.2ではなく2.1に依存する必要があります。戦略は、製品リリースのテスト時にコントラクトを解凍する必要があるモジュールの数を最小限に抑え、製品リリースでその機能を縮小する必要があるかどうかを確認することです。プログレッシブモジュラーフリーズが開発チームに役立たない場合...製品が非常に複雑で、管理者が適切なリリースを達成するための反復回数を過小評価しているか、モジュラーアーキテクチャと戦略を真剣に再考する必要があります。

于 2009-10-13T05:05:33.430 に答える
3

実際、彼らの解釈はもっと正しいと思います。機能のフリーズは、私にとっては新機能の導入を停止することになりますが、現在開発中の機能は完了し続けるか、新しい機能を生成せずに技術的負債を取り除くためにリファクタリング作業をスケジュールすることができます。コードのフリーズにより、リファクタリングを含むすべての新しい開発が停止します。許可される新しいコードは、QA中に見つかったバグを修正することだけです。後者はあなたのチームがやっていることのようです。

于 2009-10-13T01:55:56.480 に答える
3

私は、機能のフリーズとコードのフリーズを行ったプロジェクト (ウォーターフォール) に取り組んできました。

機能の凍結は、バグ修正期間の始まりを意味します。また、機能を実装できるように、新しいバージョン用に新しいブランチが作成されました。つまり、これが会社が新しいバージョンの作業を開始するポイントです。新しい機能は実装されておらず、バグのみが修正されています。

コードのフリーズは、QA が製品がリリース可能な状態にあると判断した場合に発生します (つまり、深刻なバグを認識していない場合)。最終テスト サイクルの前に、コード フリーズが発表されます (テスト サイクルには 1 週間かかる場合があることを思い出してください)。テストが成功すると、これがリリースされた製品になります。失敗した場合、新しいバグが修正されます。これらのチェックインはアーキテクトとマネージャーによって監督されており、すべてのラインのリスクが実際に文書化されています。その後、テストサイクルが再び開始されます。

概要: 機能が凍結された後は、バグ修正のみをチェックインできます。コードのフリーズ後は、例外的な場合にのみチェックインできます。

于 2010-09-14T19:38:10.167 に答える
2

ええ、それは考え過ぎです。ええ、それは誤称です。

コードが壊れていたり乱雑でなかったりしない場合は、手を触れません。そうであれば、コードを修正します。これは、コード フリーズしていない場合とまったく同じ状況です。はい、アンチパターンである「要件の凍結」または「統合の中断」です。これは、次のリリースに新機能を含めるのをやめるポイントであり、セールス/マーケティング/カスタマー サポートの面で価値があります。しかし、おそらく「プレリリース」と呼ぶべきでしょう。

バージョン管理にはシステムのリリース可能なバージョンが常にいくつか存在し、会社がそのうちの 1 つを選択して出荷する必要があります。

「コードフリーズ」の無駄のない名前は「無駄」です。

于 2009-10-13T03:38:51.747 に答える
2

あなたのコメントで、「スプリント」という言葉に言及しました。これは、スクラム (またはその他のアジャイル) 方法論を使用している可能性があることを示しています。スクラムでは、何も「凍結」することはほとんどありません:) 柔軟性、リスクの特定と軽減、そして何よりも、エンジニアリングの観点から、スクラムでは継続的な統合が重要です。

これを考えると、チームは機能横断的である必要があり、コードは継続的に統合されます。その結果、「コード フリーズ」などの問題が発生しない場合があります。スプリントの終わりに、リリース可能な製品ができただけです。継続的にテストされている必要があり、既に修正されているはずのバグレポートを既に入手しているはずです。

まあ、これは理論です。ただし、スクラムは主に原則に関するものであるため、優れたスクラム チームは理論からかけ離れたものではありません。ルールはあまりありません。

私は個人的に、用語についてあまり詳しく説明しませんが、用語の背後にある意図についてです。間違いなく、この用語は、組織内の SDLC の段階を識別するために使用されます。スクラムで厳密に言えば、バグ修正フェーズはありません。1 つまたは複数のスプリントをバグ修正専用にする場合、この用語は「スプリントには機能バックログは含まれず、バグ修正のみが含まれる」という意味になります。これは、スプリント計画 (および事前計画) ミーティングで簡単に処理でき、チームは用語について心配する必要さえありません。さらに良いことに、この用語/意図は、プロダクト オーナーを超える必要さえありません。

于 2011-04-14T03:35:30.900 に答える
1

「コード フリーズ」はあいまいな意味を持っている可能性があり、前述のように、個々のプロジェクト/リリースを考慮すると、より適切な「機能フリーズ」ですが、別のエンティティがパッケージングと/ または、さまざまなチームから複数のソフトウェア リリースを展開します。「コード フリーズ」により、環境が整い、すべてのパッケージが考慮されていることを確認する時間が与えられます。「コード フリーズ」は、「表示を停止する」変更だけが入ってくることも意味します。それ以外はすべて、次のメンテナンス リリースで処理されます。

完璧な世界では、スクリプト化されたテストがこの時点より前に完了し、最後の修正を展開して再テストする時間があったはずです。これが「globo-corp」で発生するのをまだ見たことがありません。(ビジネス) テスターは、展開するまで、さらに展開後もテストを行います。「コード フリーズ」は、彼らの努力を強化し、彼らが座っていたものすべてをログに記録するための合図になります。場合によっては、テストを開始する合図です。

本当に、「Code Freeze」は「ここに Tygers がいる」という単なる商談です。;-)

于 2009-10-13T03:05:49.240 に答える
0

コードをフリーズすると、レポがロックされます。修正を意図したすべてのバグが修正されることを願っています。テスターは、分岐して本番環境にビルドする前に、まったく別のテストを実施します。このイテレーションに予定されている未解決のバグがある場合、リードは、それがクローズされるか、重大でないと見なされてイテレーションが延期されるまで、首をかしげることになります。はい、本当に凍っています。

于 2009-10-13T03:58:57.760 に答える