開発フローのボトルネックを見つけ出す
前回、「システムにおけるボトルネック」をテーマにブログを書きましたが、 今回は別の種類のボトルネック、すなわち「開発フローにおけるボトルネック」をテーマにまとめてみたいと思います。
開発におけるボトルネックとは?
前回、システムのうち、「全体の処理速度を決めてしまう部分」を「ボトルネック」として紹介しました。 開発におけるボトルネックも概念としては同じで、チーム開発において「この人の作業スピードで全体工程の進み具合が決まる」という「人」(もしくはその人が受け持つ作業)を指します。
典型例としては、「〇〇さんのタスクが終わらないとほかのエンジニアの手が空いてしまう」といった状況が生じた場合、この「〇〇さん」が開発のボトルネックだということになります。
このような状況が生じているとき、プロマネが問題を切り分け、適切な対処をすることで、ボトルネックを解消することが可能な場合があります。 ボトルネック解消の方法を、ここでは大きく2つに分けてみましょう。
- 開発上のボトルネックとなっている人の作業を切り分け、一部をほかのエンジニアに移す
- タスク内容を見直し、技術的な対策によって効率化を図る
いずれの対策を打つにあたっても、まず「チームメンバーのタスク内容と業務負荷を可視化すること」が欠かせません。そこで今回は、タスク内容・業務負荷可視化のためのツールについてまとめてみたいと思います。
タスク内容・業務負荷可視化のためのツール
チケット管理ツール
開発上の課題をチケットという単位に切り分ける「チケット管理ツール」は、「タスク内容を明示し、現在誰の手持ちであるか可視化する」というもっとも基本的な機能を担ってくれます。また、チケットどうしの関連づけやラベル付け、マイルストーン設定によって開発の流れが可視化されるので、プロマネがボトルネックを見つけ出す際の大きな助けになります。ほか、開発に関連する情報を集約化できるので、開発全体の効率性が高まります。
トヨタの開発方式をシステム開発に適用した「ソフトウェアかんばん方式」においても、チケットは進捗可視化の基本単位となります。
ガントチャート
ガントチャートは、全体進行についてざっくりとした傾向を捉え、「ここが遅れると全体にこれくらい影響が出る」といったスケジュール管理や、スケジュールの可視化という目的を果たします。 しかし、俯瞰的であるがゆえに全体進行に関する事情が先行しがちであり、タスク同士がどう依存しあっているかも暗黙知になるので、「ボトルネックを見つける」という目的を果たすには不向きです。 ガントチャートの管理そのものにコストがかかることもあるため、効果を踏まえて導入検討する必要があります。
チャットツール
業務負荷の可視化というと、どんなタスクを受け持っているかというタスク管理の側面にばかり目が行きがちですが、エンジニア個人の実感値を知るということでいえば、チャットは有用です。 ふとしたエンジニアの呟きから、個々人にかかっている業務負荷を察知できることもあるため、業務改善のきっかけになりえます。
なお、「チャットはどれも同じ」という意見もあるかもしれませんが、
- エンジニア個々人の呟きを活性化できているか?
- 本音を言いにくい状況が生まれていないか?
といった側面から、どのチャットツールを選ぶかによって、業務負荷可視化への貢献度が変わります。
ボトルネック解消によって全体の開発スピードを上げる具体例 – スターターキットの活用
今回、「開発上のボトルネックの可視化」というテーマでツールの役割をまとめていきましたが、 具体的にどんなボトルネックがありえて、どう解消(改善)するかという観点から、一つ事例を紹介します。
必然的にボトルネックが生じてしまいがちな開発工程に、開発環境構築があります。開発全体を見渡して最適な環境を作れるエンジニアが単独で動くことから、タスクの整理による改善は困難で、技術的な工夫が欠かせない領域です。 開発環境構築を「速く」行い、スタートをより早く切れるようになれば、開発工程全体が前倒しでき、大きなアドバンテージになります。
アルタスファイブにおける取り組みは、過去のブログで紹介しています。
業務整理によるボトルネック改善はもちろんですが、こんな形で技術力を活かし、力ワザで隘路を太くするのも選択肢の一つです。 ちなみにアルタスファイブでは、他社さんに向けたスターターキット制作も請け負っております。ご興味を持たれた方は、ぜひお気軽にお問い合わせください。
関連記事
- 2023/09/14 リーン思考で仕事しよう 「WBS引いて、非アジャイルに開発してたら、とっくに終わってたな・・・」リーン思考に欠けたアジャイル開発の顛末
- 2018/07/18 全文検索を自社サイト・社内サーバーに構築したいクライアントのための留意点 システム開発における「全文検索」の実装方式・コスト・性能に関して、クライアント企業の方にも腹落ち頂けるようまとめました。grep型と索引型の違いに関する平易な解説を記載しているので、これらをクライアントに解説されたい開発者にもオススメです。
- 2018/03/02 「ボトルネック」の辞典作ってみた。システム効率化のための諸概念を整理する システム開発におけるボトルネックは「システム全体の処理においてもっとも負荷がかかり、全体の処理速度を決めてしまう要素」を指します。エンジニアがボトルネックを見つけるためのヒントとして、諸概念に関するボトルネックをまとめてみました。
- 2018/02/01 利益管理のためのデータ可視化 技術者にできる事は何か? データ可視化は科学技術分野において発祥した技術であり、与えられたデータから自動的に「見やすい図示」を出力するアルゴリズムを指します。データを見やすくし、ビジネスの意思決定に活用するという観点から手法を紹介し、R言語によるデモを行います。
- 2017/12/28 機械学習・統計学・最適化の違いについてまとめてみた 「機械学習」という手法は、システム開発の現場で用いられる事例が急増しています。一方、「統計学」という分野も機械学習と同様にデータを扱い、やはり多数の事例があります。本記事は「機械学習と統計学の違い」について整理することを試みます。