ある機能を定義するときには、その外側のことをよく考えるなぁって思ったのでメモ
ある機能のことを考えるときに、ついやってしまうのが、その機能のことだけを考えてしまうってこと
雰囲気こんな感じ↓
あぁ、シンプルでいい感じに定義できたなぁって思ったりするんだけど、でも、それだけだと、この丸の中の局所最適になってしまう
そうすると、作ったあとで外側とのつながりにずれがでてくる
- 使いづらいものができたり
- 開発が終わったあとの運用が大変だったり
- 次の機能拡張が難しくなってたり
- 他のチームとの協業がうまくいかなかったり
だから、設計のときには、この機能以外のことをたくさん考える
それは
- プロダクト全体で考えたときに違和感なく使えるか、抱えている課題を解決するのに別の方法はないか
- 開発のあとの運用はどうなるのか
- 今回は実装しないけど次に実装したい機能は何か、将来的に向かっていきたい方向はどこか
- 他のチームや組織全体が向かっている方向と合ってるか
そういう「外側」の情報によって、選択肢の中から選ぶものが変わってくる
だから、未来も含めたユーザーストーリーマッピングをしたり、運用の設計をしたり、全社的な動きを確認したりして、今回の機能に出てこない部分の情報をふまえて「内側」の定義をしていく
そんな感じ
ただ、外側のことを考えすぎて前に進めなくなると困るので「何を今決めないといけないか、何は後回しでも大丈夫か」を切り分けて、前に進むのだ