忍者ブログ

東からの放浪者

様々なソフトウェア開発を経験してきた視点から、開発、マネジメント、経済などについて書いています。
タイトルは、あるレトロゲームからのオマージュ。

ツイッターアカウントはこちら。

ソフトウェア開発と作業のマルチタスク化

マルチタスクとは二つ以上の作業を同時に行うことをいいます。

マルチタスク化は、脳を疲弊させ、生産性を著しく阻害するということが言われています。
要するに「スマホを見ながら車の運転をする」なんて芸当は人間の脳には無理なわけです。

※実際には、頭の中で両方の仕事を細かく切り替えながら行動しているため。

そして、ソフトウェア開発においても、このマルチタスク化は弊害となります。

開発におけるマルチタスク化

開発現場で「スマホを見ながらコーディングを行う」なんて離れ業を行う人はいませんが、
複数のタスク(業務を分割したときの最小単位)の担当になることは、よくあります。

ひとつのタスクを完了してから、次のタスクに移るというのが理想なんですが、
なかなか理想通りにはいきません。

  1. タスク1が完了する前に割り込みが入る
  2. タスク1を中断し、次のタスク2を片付ける
  3. タスク2が完了したので、タスク1に戻る
  4. どこまでタスク1を進めていたかを思いす・・・(  ̄^ ̄)ξ
  5. タスク1の続きを開始
  6. また割り込みが入る( ´_ゝ`)

大体こんな感じで生産性を落としていきます。

アジャイルな見積りと計画づくり』に掲載されていたデータによると、
3つ以上のタスクを担当している開発者は、
タスクそのものにかける時間が少ない傾向にあるようです。
(残りの時間は、スイッチングコストに取られる。)

マルチタスク化が生産性に与える影響
マルチタスク化が生産性に与える影響


開発現場でのマルチタスクの発生要因

マネージャ「そうか、開発者に割り込みが発生しなければいいんだな」

しかし、そうは問屋が卸さない。

ここからは、私の経験則になりますが、
実は、作業の割り込みのみに注意を払えばよいわけではなく、
無意識に現場をマルチタスク化してしまっているマネージャが多くいるのです。

要因1:設備投資の不足

私は、大規模なソフトウェア開発にも、いくつか携わったことがあるのですが、
ほとんどの現場では、開発者がビルドマシンのスペックに不満を持っていました。

ビルド時間は、ソフトウェア開発における一番身近な作業中断要因になります。
つまり、マルチタスク化の要因になっているわけです。

酷い現場では、5年くらい前の PC(OS も古い)を使っていたこともありました。
開発者が、「ビルド時間が作業の妨げになっている」ことを申告すると、

マネージャ「その間を他の作業に充てるなり、工夫すれば解決できる」

という返事が返ってきて、仰天したこともあります。

ビルドマシン以外にも、現場の設備投資が不足しているため
開発者が作業の中断を余儀なくされる例は、よくあります。

要因2:下流工程を考慮しない設計

以前、私がデータベースのテストを担当していたとき

これ、テストプログラムは 10数秒で終わるのに、
テストの準備に20分もかかるのを何とかしてほしい( ´_ゝ`)

という状況になったことがあります。
テストが失敗する度に、20分待たされるのです。
・・・いや、ほんとにストレスだった。

原因は、設計のテスタビリティ(試験性)の低さにありました。
それが、作業時間の分断を招いていたわけです。

なぜ、そのような設計になっていたかというと、
その開発プロジェクトが、テスト工程のことを全く考慮せずに進められていたためでした。

根本の原因は、プロジェクト計画の不備、及び各工程でのチェックの不備だったわけです。
要するに、プロジェクトマネジメントのミスです。

要因3:開発体制の不備

ソフトウェア開発は、規模が大きくなるに従い、テストの工数の比重が大きくなります。

⇒ 参考『ソフトウェア開発は開発規模に注意


また、開発規模が大きくなるに従い、
チームリーダー、そしてプロジェクトリーダーという役割が必要になってきます。

⇒ 参考『ソフトウェアの開発規模とチーム人数


人的資源(ヒューマンリソース)マネジメントは、マネージャの大事な仕事です。
開発規模に応じて、適切に人員を配置しなければいけません。

しかし、そんな状況において、こんなことを言うマネージャに会ったことがあります。

マネージャ「全員が主体的に行動して、仕事をしていきましょう」

はい、無能。

・・・開発者みんなが、設計者テスタープロジェクトリーダー( ´_ゝ`)
最悪のマルチタスクの発生です。

生産性へのダメージは大きく、現場の疲弊も著しいので、
マネージャは、このようないい加減な開発体制を敷いてはいけません。

今日のまとめ

  • 開発現場でマルチタスクが発生すると生産性が下がる
  • マルチタスク化は、作業の割り込み以外でも発生する
  • プロジェクト計画、投資計画、開発体制の不備はマルチタスク化の原因になる。

最後に開発体制の話が出てきましたが、『体制図の意味』の記事で書いた通り、
開発体制の構築も、投資計画の一部なわけです。

プロジェクト計画を立てるときに、単純にスケジュールを引いたり、
体制図を書いただけで終わりにするマネージャがいますが、

  • プロジェクトを完遂するまでの作業の規模を把握し、
  • そのために、どの程度の生産性を確保しなければいけないかを把握し、
  • そのための投資計画を立てる

・・・ということまでやっているマネージャは、非常に少ない気がします。
しかし、それがマルチタスク化の要因になってしまっているのです。
確かに、投資計画の不備はマルチタスク化の要因になっている!
と思われた方は、バナーをクリック!
↓ ↓ ↓ ↓ ↓ ↓ ↓ ↓


PR

コメント

プロフィール

HN:
なかば
性別:
男性
職業:
元ソフトウェアエンジニア
自己紹介:
東京のゲーム会社でゲームプログラマ。
家電メーカーで組み込みエンジニア。
その後、京都に移動して観光を楽しみながら
製品開発、業務改善、QA管理などを経験。
今は東京に戻って暮らしています。

詳細な自己紹介は、こちら

カレンダー

03 2020/04 05
S M T W T F S
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30