並列で行うタスクの種類

自分が所属しているチームは、各人が複数のプロジェクトを掛け持ちで進行している事が多い。誰がどのプロジェクト (またはプロジェクト内のタスク) を受け持つかは、時に、ジャンケンで決めたりする。先々月、僕はそのジャンケンで勝利を収め、それ以来ずーっと ActionScript ばかり書いている状態。あと 1 ヶ月は続きそう……。

Web 制作 (フロントエンド) のタスクの種類を、割り込み発生率の切り口で区別すると、「電話やメールでのやり取りが多い」コミュニケーション / ディレクションが主体のタスクと、「ひたすらコードを書く」コーディングが主体のタスクに分けられると思う。通常、前者の方が割り込みの発生率とレベルが高く、タスクを保留状態にして後回しにすることができない。

1 人の人間が、これら 2 種類のタスクをマルチタスクで進行してしまうと、(即時的な) 優先度の低いコーディング作業の途中で、頻繁にタスクの割り込みが発生することになる。特に、プログラムを書いている時の物理的な割り込みは、ただ単に作業の手が止まる事以上に、思考を中断される方が痛手になる。そして、焦点が分散され、結果として両タスクの効率が落ちてしまう。

先々月にジャンケンで決めたのは、割り込みレベルの異なる 2 つのタスクを誰がどちらをやるか、だった。当初はジャンケンで決めずに 2 つのタスク (A と B) を各人が A/2、B/2 ずつ受け持つ予定だったが、振り返ってみるとそれは間違いであったと言える。