【シングルタスクのススメ】開発とQAプロセス改善の実例
マルチタスクの問題とは?
今回は、マルチタスクの問題についてお話しします。
例えば、2週間で終わる作業が2つあるとします。一つずつ順番に行うと4週間で終わりますが、これを2つ同時に進めると6週間かかることがあります。これ、実体験で感じた方も多いのではないでしょうか。
ワシントン大学のメディナ氏の研究によると、マルチタスクによって「仕事が完了するまでの時間が50%増加し、ミスの発生も50%増加する」とのことです。
2つのムダ
機会損失
最初のタスクが2週間で終われば、すぐにリリースできます。これにより、顧客に価値を早く提供でき、成果を早く得ることができます。しかし、同時進行だとリリースが遅れ、4週間も成果を得るのが遅れてしまい、機会を逃してしまいます。時間のロス
同時進行で6週間かかると、一つずつやった場合より2週間長くかかります。もし2週間でできるタスクが別にあったなら、6週間で3つのタスクを終わらせられたのに、同時進行だと2つしか終わりません。
これらの損失が一年単位や数十名単位で積み重なると、大きな差となります。
なぜマルチタスクは起こるのか?
私たちが、よく見かけるマルチタスク発生のケースの一例を紹介します。
ある、リリースまでに1ヶ月ほどかかる機能開発がありました。
開発プロセスとしては、「実装→QA環境リリース→QAチームによるQA→本番リリース」という流れでした。(QAで不具合が発見されると、実装に戻る)
実際に起ったこと
実装
まず2週間で機能を実装し、QAチームにテストを依頼します。しかし、QAには時間がかかるため、開発チームは次の機能開発を始めます。修正対応
1週間後、QAチームから修正依頼が届きます。開発チームは現在の作業を中断して修正に取りかかります。その間、QAチームは別の機能のテストを始めます。再テスト
修正が終わると、再びQAに依頼します。QAチームは進行中のテストを中断して修正箇所を確認します。
リリースまでのプロセスが長かったり、1チームでリリースまで完了しない場合は、WIPが増えることになり、結果としてタスクの切り替えが発生してしまうことがよくあります。
今回のケースだと、開発チームとQAチームが別れていることや、開発やQAのリソース状況に応じて、待ち時間等が発生しまうことがタスク切り替えの原因になっています。
解決策
この問題を解決するために、以下の方法を行いました。
開発チームとQAチームをワンチームに
開発チームとQAチームが分かれていたことで、チームをまたいだタスクのやりとりが発生し、それが切り替えの原因になっていたので、開発チームにQAメンバーに入ることで、WIPの時間を短くし、タスクの切り替えが発生しないようにしました。タスクの小分けと迅速な処理
そもそも2週間かかるような機能開発を、より小さい粒度に切り分けるように取り組み、タスクをできる限り小さく分けて、迅速に処理することで、切り替えコストを最小限に抑えました。
この2つの解決策に共通するのは、タスクの生存時間をできる限り短くするということです。タスクの生存時間が短いと、手戻りや割り込みが入る可能性が小さくなるので、一個流しが行いやすくなります。
これにより、タスクの切り替えによる無駄を減らし、効率的な開発プロセスを実現することができました。実際に試してみると、驚くほどスムーズに進むようになり、チーム全体の開発効率も向上しました。
まとめ
複数のことを同時にしたくなる誘惑や、またしなければならない場面に迫られることもあると思いますが、そういった状況をそもそも生まれにくくする仕組みを作ることが重要です。
マルチタスクが発生する原因は、今回のケースに限らず、その他にも様々な要因があります。その原因ごとに適切な解決策がありますので、ぜひ皆さんも、マルチタスクの問題を理解し、開発プロセスに予防する仕組みを組み込んでみてください。
Hi-Outcomeに関して
私たち「Hi-Outcome」は、開発チームの規模が10-100名の企業を中心に、開発スピード向上支援を行っています。
開発にお悩みの方がいましたら、是非お気軽にお問い合わせください。
【Hi-Outcomeコンサルティング】
【Hi-Outcome開発診断】