FAQ

アジャイルやスクラムに関するよくある質問

Q. リファクタリングはプロダクトバックログやタスクに入れた方がいいですか?それとも各自が定常的に実施すればいいですか?

アジャイル開発の場合、インクリメントの考え方のとおり、動作している(役にたっている)プロダクトに機能を追加していく形になります。 したがって、一度書いてテストしたコードは「壊さないために触らない」ということはなく、スプリントを重ねるごとに変更が入ることがあります。 つまり常時変更が入る前提でコードをクリーンな状態に保つことが必要です。

リファクタリングの習慣が開発チームにまだないような状態であれば、明示的にプロダクトバックログを用意したり、スプリントのタスクとしてこなしたりするようにします。 その後、時間をかけて、開発チームが常日頃からリファクタリングするような習慣を身につけるようにします。

なお、完成の定義(品質の基準)を満たしていないコードは例え動作したとしても、出荷可能ではありません。 完成の定義の中で「コードレビュー」や「コードの複雑度」や「コーディング規約遵守」などを決めていた場合は、スプリントの中でそれらを満たさないといけません。 後になってから問題のある箇所をまとめて直すような形にしてしまうと、それが終わらない場合に完成ではなくなり、進ちょくも0として扱われるので、定常的にやる方がリスクが少なくなります。