データ収集
毎月末に、開発者ごとに簡単な操作を行います。1か月の作業時間(生産カレンダー)と1人が1か月に完了したタスクの数をExcelに保存します。
Excelファイルでは、従業員が1つのタスクを実行する平均労働時間数がすぐに計算されます。 平均は、観測期間全体と特定の月の両方で計算されるため、ダイナミクスを確認できます。
そこで、Excelでは、チーム全体(または複数のチーム、または会社全体)の1つのタスクの平均実行時間も計算されます。 たとえば、7人で構成される私のチームでは、1つの問題を解決するための平均時間は14時間です。
ちょっとした質問があります:1か月で行われるタスクとして何を考慮するか? 結局、過去(または最後の1年前)の月に従業員によって開始され、この月に完了したタスクがあります。 少し考えた後、従業員に割り当てられたすべてのタスクを考慮に入れることにしました。これらのタスクは、今月は終了ステータスに移行しました(タスクの管理に使用するRedmineでは、このような統計を収集できます)。 これは、実際に必要なすべての月の一般的な統計では、特定の完了月が重要ではないため、論理的です。
申込み
機能の開発に必要な時間を評価するには、タスクに分割する必要があります。 タスクはチームの規模に応じた典型的なものでなければなりません。 そして、すべてが簡単です:
T = N * A * k / D 、
ここで:
Tは時間単位のスコアです。
Nはタスクの数です。
Aは、チームが1つのタスクを時間単位で完了する平均時間です。
kは不確実性係数です。
D-チーム内の開発者の数。
なぜk-不確実性係数が必要なのですか? Aにはプロジェクトの典型的な軽度のリスク(病気、休日、健康不良による作業能力の低下など)が含まれているにもかかわらず、タスクリストの全体的な実行時間に影響するいくつかの要素は考慮されていません。 たとえば、問題の機能に関連しないタスク(古い機能のバグ修正、緊急のタスク)に注意をそらす。 または、たとえば、機能に新しいタスクを追加します:何かが考え出された、または突然、大きなタスクを少し小さく分解する必要がありました(私の測定によると、機能の作業中にプロジェクトに30%-50%の新しいタスクを追加します)。 最初は、k = 1 + 0.4(新しいタスク)+ 0.2(切り替え)= 1.6でした。 しかし、データが蓄積するにつれて、彼はそれを1.5に減らしました。
それは人生でどのように機能しますか? 最近、プロジェクトで新しい機能を作成する必要がありました。 私のチームは忙しかったので、監督は「数週間以内にあなたにすべてを書く」という言葉で次のチームを取ることを提案しました。 楽観的ではなかったので、少なくとも1か月はかかると思いました。 機能をタスクに分割した後、評価を行うことにしました。 私は新しいチームのパラメーターを持っていなかったので、私は自分のチームに使用したパラメーターを取り、2.5か月で完走させました。 これは、2週間または1か月ほどバラ色ではありません。 最終的に、すべてが3か月で準備が整いました。 ところで、開発者自身のタスク指向の評価に基づいて、彼らは約1.5ヶ月を必要とすることが判明しました。
まとめ
その結果、説明した方法の利点と制限を説明します。
利点:
- シンプルで高速-統計を収集するのは簡単で、評価を読むだけです。 心の中で評価するように適応することもできます。
- 病気、休日、緊急タスクへの切り替えなど、一般的な軽度のリスクを考慮します。
- 開発者が評価を開始する前でも、作業量を評価できます。
- 個人ごとに統計情報がある場合は、これらの開発者で構成されるチームのスコアを計算できます。
制限事項:
- 統計を収集する必要があります。そうしないと、何も評価されません。
- 不確実性係数-kを選択する必要があります。
- 統計で収集されたタスクと推定タスクは、同じ方法で形成する必要があります。 たとえば、あるマネージャーが8時間以内のタスクを作成することを好む場合(それ以上の場合は、それをより小さなタスクに分割します)、別のマネージャーの場合は、毎週のタスクが標準であり、そのタスクを評価と統計で組み合わせることができません。
- 複雑で簡単なタスクは、開発者間でほぼ均等に分散する必要があります。 1人が1時間、2番目が8時間のタスクを絶えず受けている場合、パフォーマンスに歪みがあります。 ところで、これを使用して、複雑なタスクで過負荷または過負荷になっている人を特定できます。