マルチタスクという幻想


忙しいプロジェクトだと、次から次とやらないといけないことが湧いてくる。自分の意志で「これやらないと!」って思うタスクもあるし、プロジェクトの規模が大きければ大本営から落っこちてくるモノだってある。エンジニア暇なし、である。


プロジェクトは一人でできないから、チームを組むし、チームを組めば作業負荷とか主な守備範囲をはっきりさせたいから、役割分担をしたくなるのも世の常で。ブロックのリーダを置いたり、担当エンジニアを配置したり。で、山のようなタスクを納期を付けて渡すわけですが...。


いくつかまとめて渡しても自己管理できるエンジニアと複数のタスクを渡すとどれの期限も守れないエンジニアとでてくる。ううん、守れないエンジニアの方は、タスクの作業ボリュームをエイヤって見積もってWBSを自分で引いて納期から逆算して、って出来ないんだろうか。フシギだ。


まぁ、そうした人は大概シングルタスクでも納期に間に合わなかったり、作っているものがトンデモだったりすることが多いような気がするんだけど。


そんなエンジニアじゃない、複数抱え込むことができるエンジニアだって流石にエイヤって見積もった作業はあくまでもエイヤだから、楽観的に見積もっているし、楽観的に見積もるから想定外のことが割り込んでくるとそのインパクトによってはスケジュールオーバーランすることだってあるよね。


できるエンジニアだって想定したとおりにことが進めばいいのだけれど、大体そんな風に話は進まないもんね。で、複数抱えられるエンジニアでさえ、できるときはできるし、出来ないときはできないんだ。


じゃあ、タスクはマルチで渡しちゃいけないの
いやね、そんなことはないと思うよ。タスクのリストとして並べておくのなら。でも、結局、やる人は一人なわけで。一人のエンジニアの時間を複数のタスクで分けるかってことです。エンジニアのリソースは一つ。それをタスクでシェアリングするです。


一度に二つのことはできません。


これは絶対に変えられない。もし、周りにマルチで仕事をできるように見える人が居ても、それは段取りを付けた後にその人でない人がパラで走っているんであって、そのマルチでやっている人は回りの人にアウトソースしているだけなんですよ。で、アウトソースしたタスクが終わりそうなタイミングで回収してまた次の段取りに回す。ほんで、アウトソースしている間に自分でしかできない仕事を片付ける。


そうやって、タスクの段取りを考えられるエンジニアにはバカバカとタスクを積んでおけばいいです。怒られるかもしれないけれど。


でも、シングルでしかできない人には、一つずつ渡した方が良いです。なんか、タスクリストに並んでいるだけで気持ちが一杯になっちゃう人もいるみたいだから。でも、全体の仕事の渡し方の考え方とか、さきざきのイメージくらいは前説としてしておかないと、これはまたこれで単なるアルバイトになっちゃうので注意が必要なのです。面倒と思うかもしれないけれど。


結局、マルチでできるエンジニアもそうでないエンジニアもその人は一人しかいないので、極力、期間的にも集中させてアウトプットさせう様なタスクの渡し方をしてあげた方が、そのタスクをやる人だって集中できるからいいんだ。で、「タスク終わり!」って言わせてあげることだ。そしたら、「次は?」っていうよ。


間違っても、長い期間に複数のタスクを渡さないこと。それ、絶対終わらないから。