私は4人の開発者のプロジェクトチームに所属しています。単一の作業項目で発生する余分な作業を処理する方法については、長い間議論を重ねてきました。
この余分な作業は通常、タスクにわずかに関連するものですが、アイテムの目標を達成するために必ずしも必要なわけではありません(意見かもしれません)。例には以下が含まれますが、これらに限定されません。
- ワークアイテムによって変更されたコードのリファクタリング
- アイテムによって変更されたコードに隣接するコードのリファクタリング
- チケット周辺のより大きなコード領域を再構築します。たとえば、アイテムで単一の関数を変更した場合、クラス全体を再実行してこの変更により適切に対応できるようになることに気付きます。
- 変更したフォームのUIを改善する
この余分な作業が小さい場合は問題ありません。問題は、この追加作業により、元の特徴点の推定を超えてアイテムが大幅に拡張されることです。5ポイントのアイテムは実際には13ポイントかかる場合があります。あるケースでは、振り返ってみると80ポイント以上であった13ポイントのアイテムがありました。
これをどのように処理するかについての議論では、2つの方法が考えられます。
同じ作業項目で余分な作業を受け入れ、誤推定としてそれを書き留めることができます。これに関する議論は次のとおりです。
- この種のことを考慮して、スプリントの最後に「パディング」を計画しています。
- 常にコードを見つけたときよりも良い形にしてください。中途半端な作業をチェックインしないでください。
- リファクタリングを後で行う場合、スケジュールを立てることが難しく、完了しない可能性があります。
- あなたはすでにコードの奥深くにいるので、あなたは今この仕事を処理するのに最高の精神的な「状況」にいます。後で戻ってきたときにそのコンテキストを失うよりも、今それを邪魔にならないようにして効率的にする方が良いでしょう。
現在の作業項目に線を引き、追加の作業は別のチケットになると言います。引数は次のとおりです。
- 個別のチケットがあると、新しい見積もりが可能になるため、実際のポイント数について自分自身に嘘をついたり、見積もりのすべてがひどいことを認めたりする必要はありません。
- スプリントの「パディング」は、チケット要件を完了するための直接的な障壁である予期しない技術的な課題のためのものです。これは、「便利な」だけの副次的なアイテムを対象としたものではありません。
- リファクタリングをスケジュールする場合は、バックログの先頭に配置してください。
- それが出てきたときにいくぶん恣意的であるように思われるので、私たちが推定においてこのことを適切に説明する方法はありません。コードレビューアは、「これらのUIコントロール(実際にはこの作業項目で変更しなかったもの)は少し混乱します。それも修正できますか?」これは1時間のようですが、「このコントロールが他のコントロールと同じ基本クラスから継承するようになった場合は、この(数百行の)コードをすべてベースに移動して、これらすべてを再配線しないでください。 、カスケード変更など?」そして、それは一週間かかります。
- これは無関係な作業をチケットに追加することで「犯罪現場を汚染」し、元の特徴点推定を無意味にします。
- 場合によっては、余分な作業がチェックインを延期し、開発者間のブロッキングを引き起こします。
追加のものが2 FP未満の場合は同じチケットに入れられ、それ以上の場合は新しいチケットにするなど、一部の人はカットオフを決定する必要があると今言っています。
私たちはアジャイルを使用して数ヶ月しか経っていないので、これをどのように処理するかについて、この辺りの経験豊富なアジャイル退役軍人の意見は何ですか?