様々なソフトウェア開発を経験してきた視点から、開発、マネジメント、経済などについて書いています。タイトルは、あるレトロゲームからのオマージュ。ツイッターアカウントはこちら。http://www.nakaba.siteHome自己紹介Twitter記事一覧このブログについてhttp://www.nakaba.siteソフトウェア開発と作業のマルチタスク化マルチタスクとは二つ以上の作業を同時に行うことをいいます。マルチタスク化は、脳を疲弊させ、生産性を著しく阻害するということが言われています。要するに「スマホを見ながら車の運転をする」なんて芸当は人間の脳には無理なわけです。※実際には、頭の中で両方の仕事を細かく切り替えながら行動しているため。ソフトウェア開発においても、このマルチタスク化は弊害となります。複数のタスク(業務を分割したときの最小単位)の担当になることは、よくあります。ひとつのタスクを完了してから、次のタスクに移るというのが理想なんですが、なかなか理想通りにはいきません。́_ゝ`)大体こんな感じで生産性を落としていきます。』に掲載されていたデータによると、3つ以上のタスクを担当している開発者は、タスクそのものにかける時間が少ない傾向にあるようです。(残りの時間は、スイッチングコストに取られる。著)開発現場でのマルチタスクの発生要因マネージャ「そうか、開発者に割り込みが発生しなければいいんだな」しかし、そうは問屋が卸さない。無意識に現場をマルチタスク化してしまっているマネージャが多くいるのです。私は、大規模なソフトウェア開発にも、いくつか携わったことがあるのですが、ほとんどの現場では、開発者がビルドマシンのスペックに不満を持っていました。ビルド時間は、ソフトウェア開発における一番身近な作業中断要因になります。マルチタスク化の要因になっているわけです。古い)を使っていたこともありました。開発者が、「ビルド時間が作業の妨げになっている」ことを申告すると、マネージャ「その間を他の作業に充てるなり、工夫すれば解決できる」という返事が返ってきて、仰天したこともあります。ビルドマシン以外にも、現場の設備投資が不足しているため開発者が作業の中断を余儀なくされる例は、よくあります。́_ゝ`)という状況になったことがあります。テストが失敗する度に、20分待たされるのです。・・・いや、ほんとにストレスだった。原因は、設計のテスタビリティ(試験性)の低さにありました。それが、作業時間の分断を招いていたわけです。そのような設計になっていたかというと、その開発プロジェクトが、テスト工程のことを全く考慮せずに進められていたためでした。根本の原因は、プロジェクト計画の不備、及び各工程でのチェックの不備だったわけです。要するに、プロジェクトマネジメントのミスです。要因3:開発体制の不備ソフトウェア開発は、規模が大きくなるに従い、テストの工数の比重が大きくなります。参考『ソフトウェア開発は開発規模に注意』また、開発規模が大きくなるに従い、チームリーダー、そしてプロジェクトリーダーという役割が必要になってきます。人的資源(ヒューマンリソース)マネジメントは、マネージャの大事な仕事です。開発規模に応じて、適切に人員を配置しなければいけません。そんな状況において、こんなことを言うマネージャに会ったことがあります。́_ゝ`)最悪のマルチタスクの発生です。生産性へのダメージは大きく、現場の疲弊も著しいので、マネージャは、このようないい加減な開発体制を敷いてはいけません。今日のまとめ開発現場でマルチタスクが発生すると生産性が下がる。マルチタスク化は、作業の割り込み以外でも発生する。不備はマルチタスク化の原因になる。開発体制の構築も、投資計画の一部なわけです。体制図を書いただけで終わりにするマネージャがいますが、プロジェクトを完遂するまでの作業の規模を把握し、そのために、どの程度の生産性を確保しなければいけないかを把握し、そのための投資計画を立てる・・・ということまでやっているマネージャは、非常に少ない気がします。それがマルチタスク化の要因になってしまっているのです。職業:元ソフトウェアエンジニア自己紹介:東京のゲーム会社でゲームプログラマ。家電メーカーで組み込みエンジニア。今は東京に戻って暮らしています。詳細な自己紹介は、こちら。