Tbpgr Blog

Employee Experience Engineer tbpgr(てぃーびー) のブログ

Impact Mapping | プロジェクトとプロダクトに大きなインパクトを与える Impact Mapping ってなんぞ?

プロジェクトとプロダクトに大きなインパクトを与える Impact Mapping という手法について。

Impact Mapping とは?

Impact Mapping はマインドマップを利用した戦略的計画技法の一つです。

この手法は、
・明確な仮定を作り、伝達する
・ビジネスに関わるチーム全体への助力となる
・よりよいロードマップの決定を行う
などの特徴により、製品の製造や成果物に関する損失を防ぎます。

Impact Mapping は、成果物とそこに関わる環境全てを可視化し、
成果物のスコープのために、最も大事な仮定を捕捉する。
そして、仮定をもとに計測・フィードバック・再決定を行うことにより、
損失を防ぎ、本当に必要な部分に注力できるようになります。

既存の問題点

例えば、機能の列挙になりがちな要件リストは、本来の目的が
抜け落ちがちです。
これにより、各ステークホルダーの目的の共有ができないまま、
計画・実施が進むことになり、不要な機能の作成・成果の上がらない成果物の継続
などの問題が発生する。

どのように Impact Mapping を描くか

Impact Mapping は四つの質問に対して議論して作成するマインドマップです。
4つの質問は、 Why, Who, How, What です

Why

Impact Mapping のセントラルイメージ。
なぜ行うか?
これは、到達すべき「ゴール」を表す

Who

Impact Mapping の最初の枝。
ゴールに影響を与える「アクター」を挙げます。

How

Impact Mapping の2番目の枝。
成功に影響を与える「インパクト」を挙げます。

What

Impact Mapping の3番目の枝。
インパクトを与えるために必要な「成果物」を挙げます。

Impact Mapping ひな型

サンプルケース

自作 Brainf*ck 派生言語生成ツール orenono のユーザー数 10,000 名をゴールと考えます。
※架空のゴールです。普及させるつもりは全くありません

参考資料
Ruby で Brainf*ck の派生言語を作成するための gem 『orenono』を作成してみた
Brainf*ck の派生言語作成ツール orenono gem で「修造言語」と「ノノムラー言語」を作ってみる

Impact Mapping

説明

自作 Brainf*ck 派生言語生成ツール orenono のユーザー数 10,000 人獲得というゴールに関わるアクターは

・Who
gem を利用できる Rubyプログラマと機能追加・宣伝を行う開発者とします。

・How
ゴールの達成に影響を与える要素は、例えば

orenono を使ってみた Ruby プログラマが人に勧めること

開発者が宣伝をすること

開発者がユーザー増に影響する補助機能を提供すること

などとします。

・What
Howを達成するために必要なこと。

Ruby プログラマTwitterで拡散できるように、Twitter連携機能を作成する
開発者が宣伝するために、つい使ってみたくなるようなブログエントリを作る。それには面白いサンプルが必要。
開発者が宣伝するために、つい使ってみたくなるようなスライドショーを作る。それには面白いサンプルが必要。
宣伝車がブログエントリを行うための敷居を下げるために、ブログエントリを楽にする補助機能を提供する。

などとします。

これら全体を効果・コストなどをもとに優先度付して、実際にどの機能を作成するか
決定する際の材料にするとともに、関係者全員の共有認識を合わせるツールとして活用します。

リリース後は、測定可能な指標を元にフィードバックを得て、
現在進行中の案を継続するか、やめるか、別の案を採用するかなどを決定します。

旧来の手法と比較するならば、旧来手法の末端の開発者は
「面白いサンプルを作成すること」
Golangで再実装すること」
などといった、仕様だけを伝達され、ゴールやインパクトを伝えられていなかったとします。
この場合、目的を知っていれば思いついたかもしれない、より良い工夫や代替案を提示をする機会を失います。

例えば、「Twitterでorenonoの情報を拡散するために、Twitter連携機能を実装する」
という要件をもらって、何も考えずに実装した場合に大きなコストがかかるかもしれません。
しかし、ゴールを含めた Impact Mapping の全体像を共有すれば、
「ブログエントリによる情報拡散時にTwitter連携機能をもったブログがあるので、
わざわざ新規機能を作らなくても要件を満たせます。」という代案を出すことができます。

ぼやき

このサンプルいまいちな気がする onz

補足

当記事のマインドマップgviz gem を利用しています。
tbpgr の Qiita, Gviz 関連情報

書籍

より詳しいことが知りたい方は下記の書籍を推奨します。

IMPACT MAPPING インパクトのあるソフトウェアを作る

IMPACT MAPPING インパクトのあるソフトウェアを作る