5

スクラムに関して 2 つの関連する質問があります。

私たちの会社はそれを実装しようとしていますが、私たちはフープを飛び越えていることを確認しています.

どちらの質問も「done は完了を意味します」に関するものです。

1) タスクの「完了」を定義するのは非常に簡単です - 明確なテスト受け入れ基準 - 完全にスタンドアロン - 最後にテスターに​​よってテストされます

次のようなタスクで何をすべきか: - アーキテクチャの設計 - リファクタリング - いくつかのユーティリティ クラスの開発

それに関する主な問題は、それがほぼ完全に内部エンティティであり、外部からチェック/テストする方法がないことです。

たとえば、機能の実装はバイナリのようなものです。完了している (すべてのテスト ケースに合格する) か、完了していない (いくつかのテスト ケースに合格しない)。

私の頭に浮かぶ最善の方法は、別の開発者にそのタスクのレビューを依頼することです。ただし、完全に完了したかどうかを判断する明確な方法はありません。

では、問題は、そのような内部タスクの「完了」をどのように定義するかです。

2) デバッグ/バグ修正タスク

アジャイル方法論では、大きなタスクを行うことは推奨されていないことを知っています。少なくともタスクが大きい場合は、小さなタスクに分割する必要があります。

非常に大きな問題があるとしましょう - 大きなモジュールの再設計 (新しい時代遅れのアーキテクチャを新しいものに置き換えるため)。確かに、このタスクは数十の小さなタスクに分割されています。ただし、最後にデバッグ/修正のセッションがかなり長くなることはわかっています。

それは通常、ウォーターフォールモデルの問題であることを私は知っています。ただし、それを取り除くのは難しいと思います(特にかなり大きな変更の場合)。

デバッグ/修正/システム統合などに特別なタスクを割り当てる必要がありますか?

その場合、通常、このタスクは他のすべてに比べて巨大であり、小さなタスクに分割するのは難しい.

この巨大な一枚岩の仕事のために、私はこの方法が好きではありません。

別の方法があります。小さなタスク (バグに関連するもの) を作成し、それらをバックログに入れ、優先順位を付けて、アクティビティの最後に反復に追加することができます。

私はこの方法が好きではありません。タスクを見積もり、いつでも完了のマークを付けます。そして、新しい見積もりでバグの新しいタスクを開始します。したがって、実際の時間 = 推定時間という結果になり、これは絶対に良くありません。

この問題をどのように解決しますか?

よろしく、ビクター

4

7 に答える 7

4

最初の部分「アーキテクチャの設計 - リファクタリング - いくつかのユーティリティ クラスの開発」については、これらは「完了」することはありません。バラバラに。

最初のリリースを開始するのに必要なだけのアーキテクチャを作成する必要があります。次に、次のリリースに向けて、もう少しアーキテクチャについて説明します。

リファクタリングは、ユーティリティ クラスを見つける方法です (ユーティリティ クラスの作成を開始するのではなく、リファクタリング中にそれらを発見します)。

リファクタリングは、リリース前に、必要に応じて断片的に行うことです。または、大きな機能の一部として。または、テストの作成に問題がある場合。または、テストに合格するのに問題があり、「デバッグ」する必要がある場合。

これらのことの小さな部分は、プロジェクトの存続期間を通じて何度も繰り返されます。それらは実際には「リリース候補」ではないため、リリースに至るプロセスで実行される単なるスプリント (またはスプリントの一部) です。

于 2008-09-29T20:20:58.973 に答える
0

3番目の質問「いくつかの大きなモジュールの再設計(新しい古いアーキテクチャを新しいものに置き換えるため)。確かに、このタスクは数十の小さなタスクに分割されます。ただし、最終的にはデバッグ/修正のセッションが非常に長くなることを私は知っています。」

各スプリントは、リリースできるものを作成します。多分そうではないでしょう、しかしそれはそうかもしれません。

したがって、大規模な再設計を行う場合は、象を一度に1つずつ食べる必要があります。まず、最も高い価値(最も重要なこと)を見て、実行、実行、および解放できるユーザーへの最大の利益を確認します。

しかし、あなたが言うには、そのような小さな断片はありません。何かをリリースする前に、各ピースを大規模に再設計する必要があります。

同意しません。概念的なアーキテクチャー(完成したときのアーキテクチャー)を作成することはできると思いますが、すべてを一度に実装することはできません。代わりに、1回のスプリントを実行する一時的なインターフェイス、ブリッジ、接着剤、コネクタを作成します。

次に、次のスプリントを終了できるように、一時的なインターフェイス、ブリッジ、および接着剤を変更します。

はい、いくつかのコードを追加しました。ただし、テストしてリリースできるスプリントも作成しました。完全で誰でもリリース候補になることができるスプリント。

于 2008-09-29T20:50:43.100 に答える
0

「舞台裏」のコードでも同様の問題が発生しています。「舞台裏」とは、明白な、またはテスト可能なビジネス価値がないことを意味します。

そのような場合、コードのその部分の開発者を真の「ユーザー」と定義することにしました。開発者が使用およびテストできるサンプルアプリケーションとドキュメントを作成することで、いくつかの「完了」コードが得られました。

ただし、通常はスクラムを使用して、「完了」を判断するためにコードを使用するビジネス機能を探します。

于 2008-10-01T00:43:40.753 に答える
0

「デバッグ/修正/システム統合などに特別なタスクを割り当てる必要がありますか?」

実際には何も機能しなかったウォーターフォール手法で行った方法とは異なります。

段階的に構築およびテストしていることを忘れないでください。各スプリントは個別にテストおよびデバッグされます。

リリース候補にたどり着いたら、そのリリースで追加のテストを行いたいと思うかもしれません。テストはバックログにつながるバグの発見につながります。通常、これはリリース前に修正する必要がある優先度の高いバックログです。

統合テストによって、次のリリースまでに修正する必要のない優先度の低いバックログになるバグが明らかになることがあります。

そのリリース テストの規模はどれくらいですか? あまりない。すでに各スプリントをテストしています...驚き はあまりないはずです。

于 2008-09-29T20:25:14.253 に答える
0

内部活動がアプリケーションに利益をもたらす場合 (スクラム内のすべてのバックログ項目が利益をもたらすはずです)、その利益が実現されれば完了です。たとえば、「アーキテクチャの設計」は一般的すぎて、活動の利点を特定できません。「ユーザー ストーリー A の設計アーキテクチャ」は、アクティビティの範囲を示します。ストーリー A のアーキテクチャを作成したら、そのタスクは完了です。

同様に、リファクタリングは、ユーザー ストーリーを達成するというコンテキストで行う必要があります。「ストーリー B をサポートする複数の電話番号を有効にするために Customer クラスをリファクタリングする」は、Customer クラスが複数の電話番号をサポートする場合に行われたと識別できるものです。

于 2008-09-29T20:27:11.067 に答える
0

ユーザー ストーリーとタスクの定義をあいまいにしているように聞こえます。単に:

  • ユーザー ストーリーは付加価値をもたらします。それらは製品所有者によって作成されます。

  • タスクは、その価値を創造するために実行される活動です。それらはエンジニアによって作成されます。

ユーザー ストーリーの重要な部分は、明確な受け入れ基準が必要であり、スタンドアロンであり、テスト可能であると述べて明確にしました。

アーキテクチャ、設計、リファクタリング、およびユーティリティ クラスの開発はタスクです。これらは、ユーザー ストーリーを完成させるために行われるものです。これらの基準の設定は各開発ショップ次第ですが、当社では少なくとも1名の開発者がコードを見ている必要があります(ペアプログラミング、コードリーディング、コードレビュー)。

「リファクタリング クラス X」と「設計機能 Y」のユーザー ストーリーがある場合、間違った方向に進んでいます。コードを書く前に X をリファクタリングしたり、Y を設計したりする必要があるかもしれませんが、それらは「新しいログイン ウィジェットを作成する」というユーザー ストーリーを達成するために必要なタスクになる可能性があります。

于 2008-10-01T00:30:13.970 に答える
0

リファクタリングなどの技術的なタスクの場合、リファクタリングが実際に行われたかどうかを確認できます。たとえば、call X に f() メソッドがなくなったり、foobar() 関数がなくなったりします。

チームに対して、そしてチーム内にも信頼が必要です。タスクが実際に完了したかどうかを確認する理由は何ですか? タスクが完了したのに完了していないと誰かが主張する状況に遭遇しましたか?


2 番目の質問については、最初にいくつかの小さなストーリー (バックログ項目) に分割するように努力する必要があります。たとえば、システムを再構築する場合は、新しいアーキテクチャと古いアーキテクチャが共存できるかどうかを確認し、すべてのコンポーネントを一方から他方へ移植する必要があります。

これが本当に不可能な場合、これは残りのスプリント バックログ項目とは別に行われ、「完了」する前に統合されません。アイテムのすべてのタスクが完了する前にスプリントが終了した場合は、残りの作業量を見積もり、次の反復のために再計画する必要があります。

いくつかの小さなバックログ項目を持つのに役立つ可能性のあるストーリーを分割する 20 の方法を次に示します。実際に推奨され、最も安全な方法です。

于 2008-10-30T15:28:22.603 に答える