BPStudy #141 DDD実践の現場レポート(2)
「BPStudy #141 DDD実践の現場」のレポート(後半)です。
勉強会の後半は、アクティアの高崎さんのお話でした。
「工業的ではなく、工芸的」
初っ端のこの言葉、すごく斬新に感じました。
ソフトウェア開発に「工芸」という言葉を掛け合わせたことがなかったこと。
工芸の域に達したソフトウェア開発とはどんなものだろうか?
工芸品のようなソフトウェアとはどのようなものだろうか?
ムダがなく しなやかに変化していくソフトウェアのことだろうか?
いろいろな製品に組み込めるような再利用性の高いソフトウェアだろうか?
いろいろ想像してしまった。
世 界 大 炎 上
なぜプロジェクトは炎上するのか?
背景として出てきたのがこの言葉。
最近の身の回りの状況もオーバーラップして、
「世界が滅亡してしまう」と つい思ってしまった。
「レガシーをぶっつぶせ!」に参加した時に聞いた
「2025年にはレガシーシステムの存在による損失が東京オリンピック4回分にもなる」という話ともリンクして、危機感が増した。
でも、やるべきことは単純で、
複雑なものを シンプルにする
こと。
でも実現するのは簡単ではない。
そのためのモデリング(モデル駆動)。
今回のお話では、現場でのモデル駆動による実践についてのお話が中心とのこと。興味深く拝聴させていただいた。
ビジネス要求 と ソースコードの間には距離がある。
中間生成物(モデル)があるとユーザも理解でき、
開発側も最終的なイメージを共有しやすい
図解していただいたこともあり、モデルの重要性がすんなり感じられた気がした。
匠メソッド
ビジネスモデル・キャンバス
RDRA
ER図
そのモデルとして上の4つの手法が紹介された。
[モデル駆動開発のいいところ]
ビジネス要件とプログラムの分離
プログラムの均質化
自動生成による生産性向上
ということで、社内での取り組みを紹介していただいた。
(話の内容が具体的な事例になってきたので、少し割愛)
印象的だったのは、
アクティアで開発されているモデル駆動ツール「mars」。
ドメイン層に注力したモデル駆動ツールであり、
ソースコードの生成までできるとのこと。
モデリングは、よくあるGUIでUMLを書くのかと思っていたら、
DSL(ドメイン特化型言語)でドメインの学習と平行してどんどんモデルを育てていくイメージだった。
「駆動感」がすごくあるなと感じた。
現場での事例をいろいろ聞くことができ、とても良い刺激を受けれた。