この記事で言いたいこと
設計とは 「正解を当てること」ではなく、曖昧さの中で「ポジション(スタンス)を取ること」 だと感じた。
特に要件が固まっていないツール作り・他社協業の現場では、設計の価値は「決めること」に出る。
設計の正解は誰にもわからない。したがって、思考の材料を集めて、要件を自ら固めに行く姿勢が重要だとわかった。
背景:いま自分が置かれている状況
- ツール作りをしている
- 要件がそこまで固まっていない
- 他社の人と一緒に作っている
- 方向性が深く合意されきっていない
この状態だと、自然にこうなる。
- 「様子見」しがち
- 仕様を詰めるのに時間がかかる
- 結果、ダラダラ進んで終わらない
- 作ってほしい人に価値を届けられない
設計どおりにコードを書くのは、設計の難しさではない
設計が固まっているなら、
- 設計書どおりに実装する
- 仕様どおりに動かす
これはもちろん大事だけど、設計そのものの難しさはここじゃない。
設計が難しいのはむしろ、
- 要件が曖昧
- 将来の運用が見えない
- どれくらいスケールするか分からない
- でも何かを作って前に進める必要がある
という「不確実性の塊」の中で判断しないといけないところ。
AIがあるのでコードを用意することは簡単。正解がない設計を考える能力が重要だとわかった。
設計とはポジション(スタンス)を取ること
自分が最近しっくりきた言い方がこれ。
設計とはポジションを取ること
ここで言うポジションは、
- 「この方向で作る」
- 「ここに賭ける」
- 「この設計思想で押し切る」
みたいな意思決定のこと。
曖昧な状況で「決めない」まま進むと、だいたい破綻する。
だからこそ設計者は、ある程度の仮説を置いて前に進める必要がある。
拡張性を考える、の正体は「全部に対応する」ではない
「拡張性を考えよう」はよく言われるけど、現場で感じたのはこれ。
- 拡張性 = 未来のすべてに対応すること
ではなく - 拡張性 = 何を捨てて、何を残すかを決めること
将来の要求は読めない。
だから設計は、
- どこまでを今やるか
- 何を後回しにするか
- どこが壊れたら直すのか
を決める行為になる。
「間違っていたとしても、責任を取る」が信頼につながる
ポジションを取るのは怖い。
- 外したら修正コストが出る
- 間違いの責任が自分に来る
でも逆に、曖昧なまま進めて誰も決めないと、
- 全員が不安
- 誰も責任を持てない
- 価値が出るまでが遠い
になりがち。
だから自分はこう思った。
- 仮に間違っていても、意図を説明できる
- 修正する前提で、判断した理由を残す
- 自分が責任を持って作っている姿勢を示す
この方が、他社協業でも「安心」や「信頼」に繋がるはず。
まとめ
設計について、最近こういう結論に至った。
- 設計とは「正解を書くこと」ではない
- 設計とは「未来に対する仮説を置くこと」
- 設計とは「決めないリスクから逃げないこと」
- 設計とは「間違える前提で、責任の所在を引き受けること」
要件が曖昧なツール作りの現場こそ、
設計の価値は「ポジションを取ること」に出ると感じた。