アジャイル開発におけるモデリング活用実践セミナー(2021-07-14) 開催報告

2021年7月14日午後、「アジャイル開発におけるモデリング活用実践セミナー」を開催いたしました。

この集いは、モデルの普及とモデル作成技術者の育成のために収集しているモデリングのノウハウをご紹介することを目的に、当協議会のモデリング実践部会(主査:中原 俊政)が企画・実施したもので、180名の参加者とともにオンライン会議で開催しました。

はじめに、中原 俊政様からUMTP及びモデリング実践部会を紹介いただきました(図1)。

続いて原田 巌様から「モデリングを活用したシステム開発についての問題提起」として、モデリングの重要性、UMTPでモデリングの有用性や活用方法を理解・習得できる「場」をモデリングワークショップとして提供していること、今後も継続して活動を続ける趣旨と計画を紹介いただきました(図2)。

さらに羽生田 栄一様から、「UMTPモデリング認定L3/L4受験のススメ」として、モデリングの実践力を審査する認定資格の有用性と認定試験概要の紹介をいただきました。

図1 モデリング実践部会の紹介
図2 モデリングを活用したシステム開発についての問題提起

<左から:中原 俊政様、原田 巌様、羽生田 栄一様>

そして原田 巌様をモデレーターとしたパネルディスカッションを行いました。
最初にパネリストの皆様から自己紹介をいただきました。

  • 加藤 潤一様(chatwork(株))
    分散システム、ドメイン駆動設計を実践。コミュニティへも貢献していきたい。
  • 増田 亨様((有)システム設計)
    オブジェクト指向プログラミング、及びその一環としてモデリングやアジャイルを実践。
  • 林 宏勝様((株)ミライトデザイン)
    オブジェクト指向、アジャイル、ドメイン駆動設計を実践。会社やYoutubeで勉強会を開催。

<左から:加藤 潤一様、増田 亨様、林 宏勝様>

続いて「これからは何を学ぶか、どう学ぶか」のテーマで議論しました。

  • フレームワークやレイヤードアーキテクチャはいったん置いておき、オブジェクト指向の基本である値オブジェクトの活用や、ビジネスロジックの表現に取り組む。増田様の著書『現場で役立つシステム設計の原則 ~変更を楽で安全にするオブジェクト指向の実践技法』がお勧めである。
  • 実際のシステムやプロジェクトで使える実践的な題材での学習がよい。
  • 【経験2,3年の若手なら】先輩の仕事で興味を持ったところから始める(例えばクラス図)。
    【経験7,8年の中堅やリーダーなら】後輩に説明する。自分の考えを整理できるし伝え方の訓練になる。なお後輩は最初は全くできないが、そこに付き合い、後輩が「自分が調べたことをもとにその先に進むのが楽しい」と感じるようにもっていく。
  • オブジェクト指向の良書には絶版のものもあるため、これから学ぶ技術者はリープフロッグ現象のように、過去の技術を全て辿りなおさず現代の解へ一気に飛び越えることになる。例えばDDD(ドメイン駆動設計)の場合、様々な設計方法を知った上でDDDを知るのは有用だが、いきなりDDDを学ぶとDDDの理解が浅くなるおそれあり。

その他に以下のような技術的な話もあり、刺激に満ちた議論が行われました

  • DDDのEntityはmutableかimmutableか
  • モデリングにどんな開発環境を使っているか:IntelliJ[1], JIG[2], UVM[3],…
  • モデリングにどんな表記法/手法を使っているか:UML、DFD、ER図、ピクト図解、バリューチェーン分析、ユーザストーリーマッピング、…

またオブジェクト指向黎明期からを知り尽くす方々だけあって、スリーアミーゴス(ヤコブソン、ブーチ、ランボー)、オブジェクト指向エクササイズ、ピアソンショックといった、オブジェクト指向の歴史を辿る上でのキーワードも頻発しました。

最後に、「聴講者・パネリストの皆様がモデリング実践部会に何を望むか」のアイデアを募り、「参加者が主体となって」「自分たちのモデリングの仕方を紹介しあう場を」「定期的に」提供していくことが良いとの意見をいただきました。

なおアンケートでは、多くの方に満足していただけたことの一方で、実際に手を動かすようなワークをしたいとの課題もわかりました。今後の改善に生かしたいと思います。

講演資料は、下記にて閲覧できます。

UMTPでは本日のセミナーをふまえ、モデリング技術の普及・展開と実践の機会の提供として、今後も同様のセミナーを継続していく予定です。今回参加できなかった皆様、次回は是非参加し、更にモデリング技術を高め、いずれはL4認定という頂点をめざしてください。

2021年8月

[1] https://www.jetbrains.com/ja-jp/idea/
[2] https://github.com/dddjava/jig
[3] Universal Verification Methodology https://www.accellera.org/downloads/standards/uvm