ある機能を定義するときには、その外側のことをよく考える

ある機能を定義するときには、その外側のことをよく考えるなぁって思ったのでメモ

ある機能のことを考えるときに、ついやってしまうのが、その機能のことだけを考えてしまうってこと

雰囲気こんな感じ↓

f:id:bufferings:20220306234816p:plain

あぁ、シンプルでいい感じに定義できたなぁって思ったりするんだけど、でも、それだけだと、この丸の中の局所最適になってしまう

そうすると、作ったあとで外側とのつながりにずれがでてくる

  • 使いづらいものができたり
  • 開発が終わったあとの運用が大変だったり
  • 次の機能拡張が難しくなってたり
  • 他のチームとの協業がうまくいかなかったり

だから、設計のときには、この機能以外のことをたくさん考える

f:id:bufferings:20220306234829p:plain

それは

  • プロダクト全体で考えたときに違和感なく使えるか、抱えている課題を解決するのに別の方法はないか
  • 開発のあとの運用はどうなるのか
  • 今回は実装しないけど次に実装したい機能は何か、将来的に向かっていきたい方向はどこか
  • 他のチームや組織全体が向かっている方向と合ってるか

そういう「外側」の情報によって、選択肢の中から選ぶものが変わってくる

だから、未来も含めたユーザーストーリーマッピングをしたり、運用の設計をしたり、全社的な動きを確認したりして、今回の機能に出てこない部分の情報をふまえて「内側」の定義をしていく

そんな感じ

ただ、外側のことを考えすぎて前に進めなくなると困るので「何を今決めないといけないか、何は後回しでも大丈夫か」を切り分けて、前に進むのだ

そんなことより、楽天のスーパーセールでフードプロセッサーを買ったので、届くのが楽しみー!キャベツのせん切りするぞー!