派手なタイトルにしてしまった。
プロジェクトレベルでの話ではなくて、個人作業レベルでの話。
かなり基本的かつ最低限かつあたりまえな話だが、 当たり前すぎてあまり記事でも見かけないし、 自分の観測範囲で「もしかして意外にできてる人少ないのでは、、」 と思ったりしたので書いてみることにした。
プログラミング作業の品質があがらないケース
- 作業していると作業中に課題がどんどんみつかって精神的にあせる
- 自分が何をしていたか、何をすべきかわからなくなる
- 場当たり的に作業して実装完了とするも、後に次々に見落としが見つかる
昔を思い出すとこんな感じ。 実装しなければならない仕様がまるまる抜けていたり、一旦は見つけていたバグが対応できていなかったり、 あとで質問しようと思って仮実装した部分がそのままになっていたり。。
自分で作業を管理出来ていなかった、という話。
品質をあげるためにした事
- 作業中に課題が見つかっても、その課題はとりあえず保留する。しかし忘れないようにTodoリストに追加しておく。
- 現在やっている作業と、いま新たに登録された課題のどちらを先にやったほうが良いのかを判断する。
- 課題を先にやったほうがいい場合は、今の作業を一旦止めて(Todoは完了にならないので、後ほど再び作業することになる)先に課題にとりかかる。
- 課題作業中にまた新たな課題を見つけた場合も、上記の手順を繰り返す。
しばらくは「作業すればするほどすべきことが増えていく」というような感覚に包まれるが、 一つ一つは思っているほど大きい問題では無いことがほとんどでTodoは意外にすぐに収束していく。
作業中に気がつく矛盾や抜けをいかに逃さずに対応していくかが、品質向上のキモな気がしている。