メシのタネ

メシのタネになる、AIや技術総合情報のサイト


例外を語れない設計判断は、責務の範囲を示せない


  1. Architecture
  2. 例外を語れない設計判断は、責務の範囲を示せない

ソフトウェア開発をしていると、
一度は耳にしたことがあると思う。

「内部向けのAPIだし、
そこまで厳密に設計しなくていいですよね」

言っていること自体は、分かる。
スピードも大事だし、全部を最初から固めるのは現実的じゃない。

この判断で前に進んだ現場も、たくさんある。

ただ、この一言が、
あとからもう一度、違う形で戻ってくることも多い。

よく見る光景

しばらく経ってから、
こんなやり取りが始まる。

え、これフロント以外から叩かれる想定だったっけ?

いや、たしか「内部向け」って話だった気がするんだけど……Slackで誰か言ってなかった?

あれ、その判断したとき○○さんってもうチームにいたっけ?

どれも強く断定されない。
「違う」と言い切る人もいない。

ただ、
みんな少しずつ自信がない。

この空気、
見覚えがある人は多いと思う。

これは設計の良し悪しの話ではない

こういう場面でありがちなのが、

  • 厳密にやるべきだった
  • 設計が甘かった
  • ちゃんと考えてなかった

という方向に話が寄っていくことだ。

でも、少し引いて見ると、
問題はそこじゃないことが多い。

あのときの判断は、
その場の状況では妥当だった可能性が高い。

ただ一つ、抜けていたとしたらこれだ。

その判断は、
どこまでを前提にしていたのか。

判断は「正しいか」より「射程」で壊れる

ソフトウェア開発の判断は、
だいたい条件付きだ。

今のメンバー構成なら。
今の運用なら。
今のスコープなら。

この「なら」が、
言葉にされないまま消えていく。

すると後から、

  • 条件が少し変わっただけで
  • 判断そのものが否定されたように見える

という状態になる。

実際には、
判断が間違っていたわけじゃない。

適用範囲が共有されていなかっただけだ。

例外が語られていない判断

ここで一つだけ、
よくある共通点がある。

その判断について、

「このケースでは当てはまらない」

という話が、ほとんど出てこない。

忙しいし、そこまで細かく言語化する余裕もない。

だから自然と、

  • 成立する前提
  • 成立しないケース

が、まとめて省略される。

その結果、

  • 判断の射程が見えなくなる
  • 責任の境界が曖昧になる
  • 次の判断がしづらくなる

という状態が残る。

少しだけ整理すると

この話は、難しいフレームワークの話ではない。

やっていることは、だいたい次の流れだ。

  • その判断は、何を意味しているのか
  • どんな前提に支えられているのか
  • 条件が変わっても成立するのか
  • どこから先は成立しないのか

特別なことではない。
現場で起きていることを、
少し言葉にしているだけだ。

例外を語れない判断は、責任範囲を語っていない

「この判断は、こういう場合には使えない」

この一言があるかどうかで、
判断の性質はかなり変わる。

例外を出すと、
判断が弱くなるように見えるかもしれない。

でも実際には逆で、

  • どこまで任せていいかが分かる
  • 変更が来たときに切り替えやすい
  • 後から責めにくくなる

判断が、道具として扱えるようになる。

最後に

ソフトウェア開発では、
判断をしない、という選択肢はほぼない。

だから大事なのは、

その判断が正しいかどうか、ではなく
どこまで通用するつもりだったのか。

そこが見えているかどうかだ。

今やっているその判断、
どこから先は当てはまらないだろうか。

そこを一度だけ考えてみる。
それだけで、次の判断は少し楽になる。

少なくとも、
あとから戻ってきたときに
「話が違う」にはなりにくい。

現場なんて、
だいたいそんなものだけど。


コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください