∑考=人 〜プロメテウス〜

そして今日も考える。

仕事はパラレルで処理するな

ほとんどの社会人はマルチタスクを要求される場合が多い。一つの仕事をひたすらやるだけでよい状況、というのはほぼ皆無である。もちろん、職種としてある程度業務内容はは絞られてはいるだろう。ただ、作業レベルで考えれば実に色々なことをこなしていくことを求められる。

 

だから仕事の効率を上げる上で、いかにマルチタスクを処理する能力を向上させるか、という点を意識することは重要視されている。パラレルで色んな仕事を進めていくのかがスピーディーに仕事をこなすのが大切、というわけだ。

 

これは確かに一つの方法論であろう。そもそもマルチタスク状況を作らないというのはほとんど不可能に近いからである。とは言え、端から何でもかんでパラレルで処理しようとするのは愚直な行為ではないかと私は思う。

 

システム開発プロジェクトの計画は大抵の場合、当初はシリアルな線表で表現されることが多い。例えば、1月から3月までは要件定義、4月〜6月までは設計、7月〜9月まではコーディング、取った具合に、それぞれの工程の期間がかぶることはない。

 

しかし、当初の計画通りに上手くいくことなんてありえない。そういった場合にまず初めの対策となるのが、期間を重ねて並列でそれぞれの計画を実施していく方法である。先ほどの例で言えば、仮に5月まで要件定義がかかることが想定される場合、4月と5月は要件定義をやりながら、既に固まった要件の設計に着手するという具合である。

 

プロジェクトの計画であれば各タスクに割り当てる要員数を調整することで対応は可能である。しかし、個人の計画でもし、平行に物事を進めるような計画を立てているとしたらそれはやはり望ましい状態ではない。なぜかというと、一つのことをやる場合に比べて、複数のことを同時に処理するのは非常に効率が悪いからである。

 

それを実感できる簡単な方法がある。下記のような3つの単純なタスクを考えてみてほしい。

①数字の1〜26を書く。

②アルファベットのA〜Zを書く。

③◯,△,✕を順番に26個書く。

この3つのタスクを、下記の1.と2.の方法で実施するとしよう。

  1. ①が完了した後に②、②が完了した後に、③という手順で進める場合(シリアル処理)
  2. 1を書いた後にA、Aの後に◯、◯の次に2・・・というように、①、②、③を切り替えながら実施する場合(パラレル処理)

どちらが早く終わるだろうか。実際にやってみるとよく分かるが、2.の方法で実施すると、1.の2倍あるいはそれ以上の時間がかかる。そのぐらいにパラレルでタスクをこなすのは時間効率が悪いのである。

 

なぜそうなるかというと、業務を切り替えた時に、今の進捗度、状況を把握するための時間が余分にかかるからである。今まさに実施中のタスクというのは、どこまで進んでいるのかがワーキングメモリに常に記憶されているためすぐに今やるべきことが判断できるが、タスクを切り替えたことによって記憶の引き出しに時間がかかるのが人間なのである。

 

つまり、マルチタスク処理能力を向上させるよりも、いかにしてシングルタスクとして着手できるのかを考える方が、結果として仕事は早く終わるのである。今週中に終わらせないといけない大きな仕事が5つあるとして、1日に全てを少しずつ実施するような計画を立てていないだろうか。なるべく、一つのことに集中できる時間を確保しよう。