4つのフェーズ、4つのリスク
プロダクトづくりをする上で脳内にあるモデルを時間があるうちにメモしておきたい
4つのフェーズ、4つのリスク
自分はプロダクトづくりとはかなり単純化すると「4つのフェーズ」を通じて「4つのリスク(≒ 不確実性) 」と対峙する活動だと捉えている。
このようなメンタルモデルにおいては、チーム内での役割やミーティングをはじめとしたイベントを設計をする際には、「この役割は XXX のフェーズにおいて、XXX のリスクを明らかにする活動」のような整理をすることができるようになる。
これらの詳細を書いていく
4つのフェーズ
4つのフェーズとは、前述の図の以下4つを指している
- Problem Discovery
- Solution Discovery
- Delivery Planning
- Delivery Executing
これらの考え方のベースには、The Zendesk Triple Diamond がある。
前提として、プロダクトチーム全体が全てのフェーズに何かしらの形で関わっているということが重要 (渡しっぱなしにしない) というのは言わずもがなではあるが典型的なプロダクトづくりにおける主の責任領域は以下の図のようなイメージをしている。
それぞれのフェーズには「発散」と「収束」があり、「発散」は主に場になるべく多くの選択肢を出すことを指し、「収束」はその中からもっともらしいものを選択する意思決定を指している。
また garbage in garbage out という言葉があるように、良くも悪くも前のフェーズは後ろのフェーズにも影響を及ぼしているため、完璧な正解を見つけることが難しかったとしても現在明らかになっている情報でプロダクトチームで出せる最高のアウトプットを心がける必要がある。
さもなくば、よく言われるように「高速にゴミを作ってしまう」というような状況になりかねない。
4つのリスク
4つのリスクとは前述の図における以下4つの Risk (と答えるべき問い) のことである
- Value Risk
- Q. 顧客のニーズを満たすのか?
- Usability Risk
- Q. 顧客は迷いなく使うことができるのか?
- Feasibility Risk
- Q. 今ある時間・スキル・技術で実現することができるか?
- Business Viability Risk
- Q. ビジネスにとって持続性があるのか?
これは、Silicon Valley Product Group で Marty Cagan さんが書いている Empowered Product Teams から持ってきたものである。
リスクというのは、不確実性と言い換えることもできる。
また不確実性とは、極端にいうと 「未知の未知」の総量の大きさ だと考えることもできる。
ちなみに「未知の未知」とは存在すらも認知できていない「知らないことすら知らない」という状態である。
例えばプロダクトづくりにおいては「XXX を考慮しないといけないことに気づけなかった」というような状況を指しあらゆるトラブルの元になり得る。
さて話を戻すと、ここまでの話をまとめるとプロダクトづくりとは以下のような活動であると言える
(これはあくまでも自分の中にあるメンタルモデルなので、異論はもちろん認める)
プロダクトチーム全体で4つのフェーズを通して4つのリスクを「未知の未知」を「既知の未知」ないしは「既知の既知」に変換して、「未知の未知」の総量を減らしていくという形で解消していく活動
ただし Cynefin フレームワーク において市場が正解を決めるような Complex な問題を扱っている以上、特に Value Risk や Usability Risk は最終的には市場が正解を決めることになるため、せいぜい仮説を持っておける程度のことしかできない (とはいえわかる範囲では十分に精度を高めるべきではある)。
一方で特に Feasibility Risk についてはプロダクトチームの中である程度「未知の未知」を変換することが期待できる。
Cynefin フレームワーク でいうところの Complicated な要素が大きいからである。
エンジニアとしての価値貢献
プロダクトチーム全体で4つのフェーズを通して4つのリスクを「未知の未知」を「既知の未知」ないしは「既知の既知」に変換して、「未知の未知」の総量を減らしていくという形で解消していく活動
自分自身はソフトウェアエンジニアなので、ここではさらにソフトウェアエンジニアの視点からこのメンタルモデルの中での貢献を踏み込んで考察したい。
エンジニアとしては上図にもある通り、主となる責任領域は Solution Discovery の後半から Delivery 全体となると考えている。
つまり「解くべき問題とその解き方はある程度見えているものの、モノとしてどう実現するべきかまでは曖昧」という状態から先を主として担当しているイメージ。
また対峙するリスクは主に Feasibility Risk となる。
(前述している通り、エンジニアはこれだけやればいいというわけではなく原則として全てのフェーズと全てのリスクに関心を持つべきだと考えている)
さてこの中で 「未知の未知」を「既知の未知」ないしは「既知の既知」に変換して、「未知の未知」の総量を減らしていくという形で解消していく ためにはどうすれば良いか?
それは「未知の未知」を Solution Discovery や Delivery Planning など早いタイミングで発見することで解決できると考えている。
さらに自分は主観やバイアスを再現性ある形で取り除くことで達成されると考えていて、そのために活用しているツール (= 手札) を紹介したい。
- 状態遷移図
- ユースケース図
- ディシジョンテーブル
- Example Mapping
- Event Storming (Big Picture 部分)
- プレモータム
いずれのツールも最初の走りだしでは主観を必要としないものが多く (例えば、ディシジョンテーブルなんかは状態の組み合わせを列挙するところからはじまりそこに主観はない)、 自分の中では 「未知の未知」を「既知の未知」ないしは「既知の既知」に変換して、「未知の未知」の総量を減らしていくという形で解消していく という活動を再現性ある形で実行できていると考えている。
まとめ
- プロダクトづくりとは4つのフェーズ (
Problem Discovery,Solution Discovery,Delivery Planning,Delivery Executing) を通じて4つのリスク (Value,Usability,Feasibility,Business Viability) と対峙する活動 - 特にリスクとは「未知の未知」の総量であり、それを「既知の未知」や「既知の既知」に変換していくことが重要
- エンジニアとしては主に
Feasibility Riskを担当するが、状態遷移図やディシジョンテーブルなどのツールを活用することで「未知の未知」を再現性ある形で早期に発見し、リスクを解消できる - もちろんエンジニアだからといって
Feasibility Riskだけに関心を持てば良いわけではなく、プロダクトチーム全体で全てのフェーズと全てのリスクに向き合うことが大前提