関係を通じた努力

メトリックの追加

グローバル設定に新しい「メトリクス」セクションが追加され、アカウントごとに有効なすべてのメトリクスが一覧表示されます。 その画面から、ヘッダーの緑色の「追加」ボタンをクリックし、新規メトリック候補リストから「関係による労力」を選択することで、新しいメトリックを作成することもできます。

メトリックを作成

現時点では、この「関係性による労力」が、労力データに影響を与える唯一の「カスタム」指標です。 オンになっていない場合、その作業負荷は「デフォルト」メトリックで計算され、ユーザーには表示されません。

設定

「追加」をクリックすると、メトリック設定画面に遷移します(リスト内の既存メトリックをクリックした場合も同様です)。 そこで、メトリックの基本設定とカスタム設定の両方を選択できます。

メトリック設定

名前と説明は任意の内容で構いません。これらはユーザーがメトリック一覧を閲覧しやすくするため、およびメトリック同士を区別するために存在するだけです。

プロセス一覧から、このメトリックの影響を受けるエンティティを持つプロセスを選択してください。 次のセクションでは、メトリックを計算するエンティティの種類も選択する必要があります。 上記のスクリーンショットでは、すべてのプロセスにおいて、カスタムの関連性に基づく工数が「 UserStories と機能」に対して計算されます。

異なるメトリクスには固有の設定がある場合があります。例えば、Effort via Relations の関係の種類などです。 現時点では、こうした設定を行うための洗練されたUIは存在せず、「カスタムメトリック設定」領域に「生の」JSON値を手動で入力する必要があります。

Effort via Relations メトリクスの JSON 形式は以下の通りです:

{
    "relationTypes": [
        "Link"
    ],
    "entityTypes": [
        "Bug",
        "UserStory",
        "Feature"
    ],
    "calculateFromMasterRelations": false,
    "normalization": {
        "defaultValue": 1,
        "source": "Team",
        "sourceCustomField": "Velocity"
    }
}
フィールド 説明
relationTypes 計算に含めるべき関係のタイプを指定します。 例えば、「依存関係」を指定すると、「依存関係」タイプでリンクされたエンティティが工数計算に参加しますが、「関係」や「ブロッカー」など他のタイプでリンクされたエンティティは無視されます。
entityTypes どの種類の関連エンティティが計算に参加すべきかを指定します。 上記の例では、リンクされたバグ、ユーザーストーリー、機能のみがメトリック対象の工数に影響を与えます。
calculateFromMasterRelations マスターまたはスレーブ関連のエンティティが計算に影響するかどうかを指定します。 マスター(受信側)エンティティを使用する場合は「true」、スレーブ(送信側)を使用する場合は「false」とする。
正規化 努力の正規化動作を設定します。 このメトリックの正規化が必要ない場合は、このフィールドを削除してください。 正規化の意味については、以下の<xref href=" effort-via-relations.dita #effort-normalization" format="dita">努力の正規化</xref>セクションを参照してください。
ソース 正規化用のカスタムフィールドを含むエンティティを指定します。 現時点では「チーム」と「プロジェクト」がサポートされています。
sourceCustomField 「ソース」エンティティ内のカスタムフィールド名を指定します。このフィールドには、リンクされたエンティティの正規化値が含まれます。 選択したフィールドは数値型であることに注意してください。
defaultValue カスタムフィールドが存在しない場合、または無効な型(文字列、日付など)の場合に使用されるデフォルトのフォールバック値を指定します または無効な値(例えば、ゼロ未満の場合)であるとき。

例えば、リンクされたエピックの努力を正規化したい場合、正規化係数がエピックのチームの「 "MyVelocity" カスタムフィールド名」に保存されていることがわかっているなら、「ソース」値を「チーム」に設定し、 "MyVelocity""sourceCustomField"...

警告: 「チーム」オプションは、現時点ではマルチチーム機能との連携がうまく機能しませんのでご注意ください。 常に最も最近追加されたチームを選択します。

動作を確認してください

複数のバグを作成し、それらの作業量と進捗を変更する(例:最終状態に移動させる)。 これらのバグを、設定済みメトリクスを持つプロセス内の対象エンティティに紐づける。 それらの組織の取り組みと進捗は変更されるべきである。

努力の正規化

関連付けられたエンティティは異なるチームに属し、異なる見積もりを使用するため、チームAの1見積もりポイントがチームBの1見積もりポイントと等価である保証はなく、両者は大きく異なる可能性があります。 その時に努力の平準化が必要となるかもしれない。 それは、両チームに共通する唯一の要素である「時間」を用いて、労力の評価を統一しようとする。 チームには何らかのベロシティ値(時間単位で処理できる作業量、例えば週あたり80ポイント)があると想定しています。 その速度を利用することで、チームの実際の取り組みを共通基盤に移行することが可能となる。 チームAが週に10ポイント、チームBが週に20ポイントを獲得する場合、チームAの1ポイントはチームBの約2ポイントに相当する。この情報を利用して両チームの総合進捗を算出できる。 努力正規化を用いた計算がどのように機能すべきかの例を以下に示す。 ここに、2つの関連バグを持つユーザーストーリーがあります。
  EffortCompleted EffortToDo 正規化係数 正規化速度
バグ1 99 1 1000 10
バグ2 40 50 100 1

MinVelocity = 1000 と 100 のうち小さい方 = 100

Bug1.NormalizedVelocity = Bug1.Velocity / MinVelocity = 1000 / 100 = 10

Bug2.NormalizedVelocity = Bug2.Velocity / MinVelocity = 100 / 100 = 1

EffortCompleted

= (Bug1.EffortCompleted / Bug1.NormalizedVelocity) + (Bug2.EffortCompleted / Bug2.NormalizedVelocity)

= 99 / 10 + 40 / 1 = 49.9

EffortToDo

= (Bug1.EffortToDo / Bug1.NormalizedVelocity) + (Bug2.EffortToDo / Bug2.NormalizedVelocity)

= 1 / 10 + 50 / 1 = 50.1

努力 = EffortCompleted + EffortToDo = 49.9 + 50.1 = 100

進捗 = EffortCompleted / 努力 = 49.9 %