タスクを細分化し、書き出した上で進めると非常に捗るという話
SEに転職し、ある程度環境にも慣れてきたところで開発を徐々に任せていただけるようになっています。機能ごとに、実装してほしい内容をまとめられたチケットをいただき、そのチケットに書かれている仕様を実装するという進め方をしていますが、最初のほうはリーダーから進め方も細分化して指示されていたので、その通りに従って進めていました。そのうち、自分でもチケットの進め方を細分化して書き出した上で、その通りに進める旨をリーダーに共有した上で進めるようにしていきました。この仕事のやり方が、想像以上に良いのではないかと感じたので、noteにまとめることにしました。
タスクを細分化し、書き出すことのメリット
やるべきことを一つ一つ着実に進めやすくなる
チケットといった、ひとまとまりの単位でタスクを割り振られると、求められていることを達成するのにやるべきことがいくつか出てきます。タスクを割り振られ、とりあえず手をつけるという姿勢で進めると、進めていくうちに他にやるべきことが頭に出てくることがあります。こうなると、頭に出てきたやるべきことが気になり、現在着手している作業に集中できなくなることがあります。
もしくは、タスクに着手する前に、タスクの達成に向けてやるべきことが頭の中で一通り出てくるということもあるかもしれません。その場合、一通り出てきた作業の中の一つに取り組んでいるうちに、頭の中で出てきたやるべき作業を忘れてしまう可能性があります。そうなると、作業が落ち着いた後に、忘れてしまった作業を思い出すということをしないといけないです。
そこで、タスク着手前に、やるべき作業を作業順に一通りメモ帳など書き出します。書き出した順に進めることで、抜けもれなく各作業を進めることができます。作業に着手しているときは、他の作業のことを気にする必要がなくなるので、生産性も上がります。
仮に、タスク着手前にやるべき作業を網羅的に書き出すことができなくて、作業しているうちに思い出した場合でも、メモ帳に追記したらよいだけです。そうすれば、思い出した作業のことを忘れることもなくなります。
やるべきことを何度も考えるという堂々巡りを防げる
「やるべきことを一つ一つ着実に進めやすくなる」というのと内容が一部被ることになりますが、やるべき作業を頭の中だけでとどめておくと、タスクの達成に向けたやるべき作業を何度も思い出さないといけなくなります。その分、作業の進行にリソースを割けなくなるので、生産性が落ちることになります。やるべき作業を目に見える形で書き出すというのが重要だと個人的には感じていて、一度目に見える形にすると、仕組みとして堂々巡りを防ぐことができるようになります。
タスク細分化の例
例えば、TODOアプリの開発を業務で取り組んでいて、タスクとしてTODOの登録機能の実装を任されたとします。TODOがどのような項目(TODO名、締め切り日、…)を持つかといった仕様は決まっていて、その仕様に沿って実装するという状況です。
この場合、一例として、以下の順番で取り組む方法があるかと思います。
TODO登録画面の実装
TODO登録画面から入力データを受け取る処理の実装
TODO登録画面にデータを入力し、2. で実装した部分で正しく受け取れるかどうかのテスト
受け取った入力データをDBに挿入する処理の実装
4. で実装した処理が正しく動くかどうかのテスト
実装した部分全体が正しく動くかどうかのテスト(つまり、TODO登録画面にデータを入力し、正しくDBに挿入されるかどうかまでを見る)
上記を一気にやろうとすると、あちこちを考えることになってしまい、結局作業が進みにくくなります。なので、書き出した作業に順に取り組んでいくのがよいと考えます。
まとめ
一般的に、マルチタスクよりシングルタスクのほうが脳の切り替え頻度が少ない分、生産性が上がりやすくなるのかと思います。実際、マルチタスクのほうが生産性が落ちると示された研究もあるようです。
仕組みとして、可能な限りシングルタスクで生産性高く仕事できるように、タスクを細分化して書き出し、順に取り組んでいくという姿勢を取り続けていきたいと思います。