バリューストリームマッピングとは?

バリューストリームマッピングは、プロセスを分析し、無駄なエリアを特定してワークフローを最適化するためのリーン生産方式手法です。

リーン生産では、バリューストリームマッピングによって、原料が製品になるまでに関わる、流通、倉庫作業、アセンブリラインなどのすべてのステップを確認しながら、効率性を高める方法を探ります。

このプロセスでは、過剰生産、待機時間、モーション、欠陥といった無駄の種類を特定しながらエンドツーエンドのプロセスをマッピングし、その上で無駄をできる限りなくせるようにプランを作成して実行します。

リーンソフトウェアへの動きでは、ソフトウェア開発のライフサイクルの効率性を高めてユーザーに配布されるものを改善するために、バリューストリームマッピングを含むリーン生産方式の考え方と手法を適用できることが示されました。

リーン生産方式の考え方は、継続的なフィードバックループによってサイクルを繰り返し行うメリットとバリューをより素早く提供するために品質を組み込む必要性を強調する Agile と DevOps の原理を補完しています。

CI/CD パイプラインを実装済みであるか、これから実装しようとしているかに関係なく、ソフトウェア開発プロセスのバリューストリームマップを作成することは有益な実践です。

アイデアから設計、開発、そしてリリースに至るまで、全てのステップとそれに関わる担当者とツールをマッピングすることで、製品の全ライフサイクルを可視化することができます。

そうすると、このマップを使用して、開発チームとオペレーションチームの間での対話を簡単に進められるようになり、各ステップが付加するバリューだけでなく、関係者全員の考えや動機に関する共通の理解を得られるようになります。

プロセスを描き出したら、ユーザーに価値を付加することのない無駄なアクティビティを特定し始めることができます(価値には、ユーザーが希望する機能のように直接的な価値や製品を安定化するといった間接的な価値があります)。

リーン生産方式で特定される無駄の種類は、ソフトウェア開発に適合されており、次が含まれます。

不要な機能

製造における過剰生産のように、使用されない機能を作成するのは無駄です。 小さなインクリメントで作業して頻繁に提供し、最低限実現可能な製品アプローチを取りながら、継続的にフィードバックを収集してそれらに耳を傾けることで、構築すべきものを確認できるようになるため、使用されない機能に時間と労力を無駄にせずに済みます。

タスクの切り替え

タスクを絶えず切り替えると、フローの状態に入りにくくなるため、無駄なアクティビティです。 タスクが中断するたびに、頭を整理する時間が必要となるため、高い生産性を得られるようになるまで時間がかかります。 テストの各ステージをトリガーするために手動で入力しなければならないパイプラインを完全に自動化することで、タスクの切り替えを回避することができます。 同様に、アラートを慎重に使用すれば、必要である場合にのみ中断されるようになるため(ユニットテストのエラーではなく、本番でのエラーなど)、不要にタスクを切り替えずに済みます。

待機

最も明白な無駄の 1 つは、ワークフローのあらゆるステージで起こりうる遅延です。遅延は、最終的に市場へのリリースを遅らせてしまいます。 個人間でのハンドオフを減らし、自動化できるものはすべて自動化する(構築、テスト、デプロイ、フィードバックの提供)ことで、待機時間を短縮することができます。

追加プロセス

単純にしても同じ結果を導けるようなプロセスとプロシージャを過剰に複雑に作成すると、実装と管理により多くの時間とリソースを費やすことになります。 このようなケースは、ステージング環境へのデプロイを過剰に複雑化することから、リリース前にリスク評価を要求することまで、さまざまです。 ステップの動機を理解することで、より単純なプロセスで十分に対応できるかどうかを確認することができます。

欠陥

欠陥が見つかると、余計な作業が生まれ、修正に時間がかかりますが、生産に持ち込まれると、顧客エクスペリエンスに悪影響を及ぼします。 小さなインクリメントで作業し、自動的にテストされるようにすることで、品質を組み込み、早い段階で課題を見つけ、問題の原因を特定しやすくなります。 本番で欠陥が見つかった場合に修正を迅速にリリースできる能力を備えておくことで、ユーザーへの影響を最小限に抑えられます。

部分的に完了した作業

製造分野では在庫またはオーバーストックとして知られる部分的に行われた作業は、ユーザーにバリューを提供しない一方で、他の機能や改善の提供を遅らせてしまいます。 これは一般的に、準備を整えずに開発を開始することで起こり、遅延につながります。 同時に、ユーザーのニーズをよく理解し、新しい要件に対応するように作り直さなければなりません。

ハンドオフ

作業を別のチームに渡して次のフェーズを完了しなければならない場合、遅延が生じる(次のチームは必ずしもすぐに作業を開始できる状態でないため)ほか、会議やドキュメントを通じて情報交換が必要となります。 ほとんどの場合、プロセスの途中で情報が失われてしまうと、もう一度拾い上げなければならなくなります。 こういったことはすべて時間と労力を無駄にし、プロセスを遅らせてしまいます。 ライフサイクル全体の所有権を持つ部門の枠を超えて行われるハンドオフを最小限に抑えることで、この種の無駄を縮小させることができます。

プロセスに介在する無駄を特定したら、それらを解消する作業に取り掛かりましょう。

リーン生産方式、DevOps、および Agile の原理に従って、変更を段階的に実装し、変更による影響を監視し、フィードバックを収集し続け、方向性を調整することをお勧めします。

最後に、バリューストリームマッピングの作成そのものを無駄 なアクティビティにしないようにしましょう。 正しい記号を覚え、学んだことをデジタルアセットを作成するマッピングツールに流し込むのに時間をかけることは可能ですが、ほとんどの場合ホワイトボードを使った簡単なセッションで、バリューストリームマッピングを実施する甲斐がどれくらいあるのかを最初に理解することから始めることができます。