今日は”タスクの最小単位”についてかんがえる。
僕の考える”タスクの最小単位”の条件が2つある。

  • 具体的であるか
  • 実行時に行動のゆらぎがないか

具体的かどうか、これはタスクの最小単位として考える際には非常に重要であると僕は考えている。
なぜなら、具体的でないタスクならば、タスクにするべきではなくプロジェクトにするべきだと考えているからだ。
タスク管理されるタスクとは、本来具体的である必要がある。
具体的で無いタスクは、タスクではなく、プロジェクトである。
例を挙げて考える。

[ ]iOSアプリをリリースする

これは僕の中では、タスクではない。プロジェクトだ。
iOSアプリをリリースするということは素晴らしい事だが、このタスクには具体性のかけらもない。
これでは、このタスクを完了するために、どのような行動を起こせばいいかが分からない。
本来、タスク管理をされたタスクは、頭を使わずにタスクを進めていけることが理想だと思っているので、これで本末転倒もいいところだ。
頭を使わずにタスクを進めていくためにも具体的であることが大切となる。

次に、実行時に行動のゆらぎがないかについてだが、
これも具体的であるかどうかに関係する。
タスクが具体的であればあるほど、行動のゆらぎは減ると思う。
例えば、

[ ]iOSアプリをリリースする為にAppleDeveloperProgramに登録する

というタスクがあったとしよう。
これは具体的である。
そして、行動の際にゆらぎはない。
このタスクを完了するには、AppleDeveloperProgramに登録する必要があるからだ。
他の事をしてもタスクは完了しない。
もっと細分化しようと思えば、

[ ]iOSアプリをリリースする
└[ ]AppleDeveloperProgramに登録する
┝[ ]PCを立ち上げる
┝[ ]Safariを開く
┝[ ]AppleDeveloperProgramのページを開く
└[ ]登録する

こんな所だと思う。
しかし、ここまで細分化する必要はない。
ここまで細分化してしまうと、タスク構築の手間と時間が掛かり過ぎる。
それなら、”ADPに登録する”までにとどめて、実際の行動を起こした方が生産的であると思う。

以上が僕の考える、タスクの最小単位についてだ。
僕は実際にこの考えでタスク管理、プロジェクト管理をしている。
ここまでのルールを設けるかどうかは、各個人のタスクの大きさなどに関わってくると思うので、一概には言えないが、エンジニアとして働いている僕はこのくらい細かいルールがあった方が運用しやすい。