ベタベタなモデル

モデルを作成する時にベタベタでも構わないので、ビジネスで利用されている情報・ルールをそのまま写像したようなモデルを作成できればと考えている。これはモデルの要素を発見するのではなく、マップしていくイメージに近いものがある。(そういえば誰かがモデルは地図であるといっていたな)
これを実現するために、情報については概念ごとに台帳を作成・分析してモデル(分析クラス)を作成するようにしている。ルールについてはロバストネス分析でサービスと一緒に導出項目と検証チェックを識別して分析クラスに割り当てることにしている。
このため、僕が作成するモデルのキーはこの台帳になっている。この台帳の質が良いとモデルの質が良くなり、悪いと悪くなってしまう。

また、モデルを作成していると、良いモデル*1の憧れかなのか、モデルの要素が増えるのが怖いのか、何かわからないが、どうしても一般化をして単純化したくなったりする*2。単純化すると確かにシンプルで見やすくなったりするが、必要なものまで隠れてしまうリスクがある。経験上、一度ベタベタなモデルを作成して単純化するのはあまり失敗しないが、分析作業の中で単純化すると大切な部分が見えないモデルになってしまうように感じる。分析の台帳の作成時にバリエーションをまとめてしまうような単純化を無意識にやってしまうことが多い。

もちろん、素晴らしい抽象化でモデルの見通しを良くすることも多々有り有効なことだと思うが、エンジニアとしては、モデル作成で失敗しないためにも、綺麗なモデルよりもベタベタなモデルを作成していく方向なんだと考えている。

*1:ここでは素晴らしい抽象化が行われているモデルという意図

*2:個人的にはこの誘惑はかなり大きい