ちょっとポエムぽいけど、突然降りてきたので書き付ける。
————————
モデリングの要点は、意図を排除して、意思に導かれるまま静かに観察することである。
意図とは瞬時のものに過ぎず、意図に導かれたモデルは、長期的に使うことはできない。
多くの場合、意図に導かれたモデルに、人が引きずられて、デスマーチが起きる。
中長期的にシステム開発をする意思を持って、その中長期的な開発スコープを静かに観察した時、自分が見ている対象領域が見えてくる。
対象領域の構造が、システムの基礎構造に落とし込まれると、そのモデルは、長期的に使っていても、混乱が少ないモデルになる。
モデリングをしないソフトウェア開発者は、モデリングやモデルという言葉を、ソフトウェア構造、に置き換えても良い。
図面を書く電気や機械の設計者は、モデリングやモデルという言葉は、設計や設計図、に置き換えても良い。
-----------
なにしろ降りてきたものを書いたので、ちょっと感覚的で分かりにくいと思うので、
やや解説。
「意図」というのは、「目的のためにわざとそうすること」。
大抵の場合、意図的に作ったモデルの構造は、予測できないことが起きたときに、大きく乖離していることが多い。
「中長期的な意思」を持つと、スコープが意識されるが、予測できないこととそうでないことを分離していきやすい。
なぜかというと、中長期的な視点に立った時、変わってしまうこともあるだろう、という範囲と、ここは根源的すぎてまず大きく変わることはないだろう、との考えにたどり着きやすい。
だから、自分が見ている対象領域と、その対象領域を用いて、自分が直近でみている事柄の領域の分別が付く。
「意図」を排除しろというのは無理だとしても、
「意思」を持って「意図」と「より普遍的なもの」を分けて捉えることはできる。
当然ながら、より普遍的なものを、分離しておけば、その部分は、中長期的には変化しづらい。ゆえに、その部分のメンテナンスがしやすく、また再利用性も高い。