各ステップについて、その関係者が顧客への価値提供を妨げるワークフローのボトルネック、サイロ、その他の障害を特定します。
バリューストリームマッピングは、このプロセスをリアルタイムで実行できるようにします。バリューストリームマップは、特定の製品またはサービスを提供するために必要な各ステップを線でつないだ図です。このように図式化することで、ソフトウェア開発ライフサイクル(SDLC)の各ステップの中で、遅延、引き継ぎ、手戻りなどの非効率的な「無駄」によって価値実現が妨げられている箇所を容易に見つけることができます。
バリューストリームマップを作成するときは、組織が成功を測定するために普段使用している指標を使います。ただし、リーンやシックスシグマの方法論では、以下の3つの主要な指標を含めることが推奨されています。
- 付加価値:チームがプロジェクトで積極的な活動に取り組んだ時間。製品の変化につながらなかった時間は非付加価値時間とみなされます。
- リードタイム:個人またはチームがタスクを完了するのにかかった合計時間。付加価値時間と非付加価値時間の両方を含みます。
- 完全/正確率(%C/A):個人またはチームが情報の修正、追加、明確化などの手間をかけずにタスクを実行できる時間の割合。つまり、仕事が最初から完全に正確で、下流の工程で手直しする必要がないということです。
バリューストリーム管理の正式な手順はありませんが、一般的なプロセスは以下のようなものです。
バリューストリームの現状を示すマップを作成する:まずは、ソフトウェアデリバリーの現状を正確に把握することが重要です。バリューストリームマップは、現在のツールチェーンや特定のバリューストリームの現状を可視化するだけでなく、将来のあるべき姿を導き出すためにも役立ちます。マップを作成するときは、以下の点を追加します。
- 現行のソフトウェア開発/運用プロセスの主なステップ
- 各ステップの実行者
- 各ステップの付加価値
- 各ステップのリードタイム
- 各ステップの%C/A
- 各ステップで現在使用しているツールチェーン内のツールと、自動化できそうな手作業
無駄を特定する:現状を示すバリューマップを作成する目的は、顧客への価値提供を妨げる問題を特定し、それを軽減してバリューストリームを改善することです。バリューマップは、プロセス、テクノロジー、チームの中で非効率的な部分を見つけるために役立ちます。
リーン方法論では、8つのタイプの無駄が挙げられています。リーンはもともと製造プロセスに関するアプローチですが、DevOpsにも適用できます。8つの無駄の頭文字をとると「DOWNTIME」になるので覚えやすいでしょう。
- 不良(Defects):ミス、不具合、誤解、インシデント、手戻りなど、製品やサービスを損ない価値を低下させる問題を指します。
- 作りすぎ(Overproduction):顧客が必要とする以上のもの(機能、製品など)を作ることを指します。無駄になったリソースを有効活用すれば、付加価値を生む活動ができたはずです。
- 作業待ち(Waiting):製品やサービスに関する作業に取り掛かるまでの待ち時間を指します。人件費などのリソースコストが無駄になります。
- 人材の不活用(Non-utilized talent):プロセスの分断、物理的な壁、複雑な手順、度重なる再編など、チーム間の知識の流れを阻害する要因を指します。知識が無駄になることで、製品やサービスが持つ価値を最大限に引き出すことができなくなります。
- 運搬(Transport):開発者からテスターやデプロイ担当者への引き継ぎはデリバリープロセスの一部ですが、こうした引き継ぎ箇所が多すぎると、デリバリーに時間がかかり、不良が入り込むリスクが増えます。
- 在庫(Inventory):一括リリースのスケジュール待ちのコードがあるなど、リソースがたまっている状態を指します。在庫が多すぎると、デリバリーチェーンのボトルネックになり、価値を生成する資材や情報の流れが滞る可能性があります。
- 動作(Motion):ソフトウェアの開発やデプロイの中で労力を要する作業やプロセスが開発チームや個々のチームメンバーの負担になることを指します。その負担がデリバリープロセスのパフォーマンスを低下させることがあります。
- 過剰な加工(Extra processing):機能を必要以上に複雑にする、不要な取り組みを行う、コードを作り直す、タスクや製品に不要な機能を追加するなど、必要以上のことをする無駄を指します。
このステップでは、すべてのプロセスとツールを客観的に精査し、それぞれについて付加価値を生むか価値創出を妨げるかを判断します。「いつもこうしている」といった固定観念にとらわれると、顧客にとっての価値を向上させる機会を見逃してしまいます。
将来のあるべき姿を示すバリューストリームマップを作成する:現状のバリューストリームであらゆる無駄を洗い出したら、将来のあるべき姿を示すバリューストリームマップを作成します。このマップには、無駄を排除するための改善策を組み込みます。たとえば、特定のステップをシンプルにするために複数のタスクを統合する、手動プロセスを自動化する、デプロイ頻度を増やす、などです。
改善策を考えるときは、付加価値を生むタスクを増やし、そうしたタスクの価値を向上させるにはどうすべきか、付加価値を生まないタスクを減らすか取り除くにはどうすべきか、%C/A指標を向上させるにはどうすべきかを検討します。
適切な改善策は、通常はプロジェクトのバリューストリームによって異なります。大切なのは、プロジェクト固有のニーズを理解し、それを満たすために必要な改善を行うことです。
- 変更をすべての関係者に伝える:バリューストリーム管理プロセスでは、すべての関係者に絶えず最新情報を提供し、フィードバックをもらうことが重要です。その場合にバリューストリーム管理ツール(後述)を使うと効率的に行えます。