システム開発の構造的側面で、デスマーチを回避する要点 | モデリングでつなぐ

モデリングでつなぐ

非エンジニアとエンジニアを含めたコミュニケーションや開発のためのモデリングの話題とその他の雑記

ちょっとポエムぽいけど、突然降りてきたので書き付ける。

————————

 

モデリングの要点は、意図を排除して、意思に導かれるまま静かに観察することである。

 

意図とは瞬時のものに過ぎず、意図に導かれたモデルは、長期的に使うことはできない。

 

多くの場合、意図に導かれたモデルに、人が引きずられて、デスマーチが起きる。

 

中長期的にシステム開発をする意思を持って、その中長期的な開発スコープを静かに観察した時、自分が見ている対象領域が見えてくる。

 

対象領域の構造が、システムの基礎構造に落とし込まれると、そのモデルは、長期的に使っていても、混乱が少ないモデルになる。

 

モデリングをしないソフトウェア開発者は、モデリングやモデルという言葉を、ソフトウェア構造、に置き換えても良い。

 

図面を書く電気や機械の設計者は、モデリングやモデルという言葉は、設計や設計図、に置き換えても良い。

 

-----------

なにしろ降りてきたものを書いたので、ちょっと感覚的で分かりにくいと思うので、

やや解説。

「意図」というのは、「目的のためにわざとそうすること」。

大抵の場合、意図的に作ったモデルの構造は、予測できないことが起きたときに、大きく乖離していることが多い。

「中長期的な意思」を持つと、スコープが意識されるが、予測できないこととそうでないことを分離していきやすい。

なぜかというと、中長期的な視点に立った時、変わってしまうこともあるだろう、という範囲と、ここは根源的すぎてまず大きく変わることはないだろう、との考えにたどり着きやすい。

だから、自分が見ている対象領域と、その対象領域を用いて、自分が直近でみている事柄の領域の分別が付く。

「意図」を排除しろというのは無理だとしても、

「意思」を持って「意図」と「より普遍的なもの」を分けて捉えることはできる。

当然ながら、より普遍的なものを、分離しておけば、その部分は、中長期的には変化しづらい。ゆえに、その部分のメンテナンスがしやすく、また再利用性も高い。

 

フォローしてね…