SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2024 セッションレポート(AD)

レッドハットに学ぶ、レガシーモダナイゼーション戦略──ドメイン駆動設計から始める業界横断の成功手法とは?

【15-D-6】レガシーモダナイゼーションに効く!オススメのモダン化手法3選

  • X ポスト
  • このエントリーをはてなブックマークに追加

ドメイン駆動設計の次のステップは?──「アプリケーションシンプリファイ」と「アジャイルアプローチ」

 ドメイン駆動設計の次のステップを見ていこう。まずはアプリケーションシンプリファイだ。かつては既存のレガシーシステムが抱える技術的負債を出発点として、ルール駆動開発を行っていた。このテーマは2020年2021年のDevelopers Summitで発表した内容なので今回は割愛する。興味があれば資料を参照してほしい。

 現在ではアプリケーションシンプリファイへと手法が昇華している。まず「Clarify」であえて既存のソースコードを見ず、現行のビジネスプロセスの中核からビジネスロジックモデルを洗い出していく。次に「(Over)Simplify」で洗い出したビジネスロジックだけをシンプルアプリケーションとして実装する。そして「Satisfy」では新旧システムの両方で処理した結果を比較して、枝を実装していく。新旧の一致率(品質)が満足いくものになるまで、比較と実装を繰り返していくという流れになる。

 「Clarify」では「あえてソースコードを見ない」のが大きなポイントだ。ある程度成熟したビジネスを例として考える。典型的な顧客は75%で、その顧客をカバーするソースコードの割合は25%、それ以外の顧客を含めても使われているソースコードは全体の40%だったとする。もし利用するコードが40%しかないと最初からわかっていたら、ソースコードすべてに目を通す必要があるだろうか。まずは主要な顧客を広くカバーする25%のコードを開発して、後で足りない部分15%(とはいえ実際この15%は目に見えない)を追加していこうという考え方が重要になる。

ソースコードを見ないでシンプルアプリケーションで始める理由
ソースコードを見ないでシンプルアプリケーションで始める理由

 続いて、アジャイルアプローチが必要な場合に進もう。多くの役員は「成長過程のビジネスが既存顧客や基幹システムのデータにアクセスできたらシナジーが生まれるのでは」と期待する。そこで新システムのSoEは、レガシーシステムのSoRのデータベースに直接アクセスするか、APIでアクセスしたいと要請する。大抵は交渉が難航し、折衷案としてSoRのデータを非同期でSoEに渡すことになる。これでは鮮度の悪いデータが社内に共有されてしまう。

SoEとSoRの関係性
SoEとSoRの関係性

 ここでは、レガシーシステムと新システムをクラウドネイティブにつなげることが求められる。このテーマはレッドハットが提供している「マイクロサービスEssential」や「Integration Dojo(インテグレーション錬成道場)」といったワークショップで詳しく学ぶことができる。

 レガシーシステムとクラウドネイティブなシステムの適切な接続や、シンプルなアプリケーションを開発が実現されると、モダナイズは最終形に近づいてくる。新旧どちらのシステムも同じデータ基盤上に乗り、疎結合に相互に連携できて、ビジネス的な効果も出せる状態だ。

クラウドネイティブにレガシーシステムと新システムをつなげたい
クラウドネイティブにレガシーシステムと新システムをつなげたい

 アジャイルアプローチではマイクロサービスにとらわれず、システム間の接続の方法に注力した方が良い。また、マイクロサービス化を一気にやろうとすると、ウォーターフォールな手法で分割することが目的になってしまいがちだ。暮林氏は「ドメイン駆動設計を駆使して都合よく切れる場所を判断し、切っては繋ぐことを繰り返していくのがいいです」と推奨する。

 またアジャイルアプローチはアジャイル開発を含むものの、アジャイルそのものではないことも気をつけておきたい。もしアジャイルのレベルを高めたいのであれば、レッドハットが提供する「Open Innovation Labs」というハイエンドなアジャイル支援サービスを検討してもいいだろう。

 最後にそれぞれの手法を活用する段階を補足しておこう。「自分がどこにいるのか分からない」というモダナイズの超初期にドメイン駆動設計を使う。次に新規をどう接続するかを考える時にアジャイルアプローチを使い、これを念頭におきながらアプリケーションシンプリファイを進めていく。

暮林氏は「それぞれのアプローチは必要とされるピークの段階が違いますが、ピークを超えたらやらなくてもいいのではなく、ピーク時にやらないと手遅れになると考えてください。モダナイゼーションの段階に応じて効果的なものを実践していきましょう」と呼びかけて講演を締めた。

関連リンク

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Developers Summit 2024 セッションレポート連載記事一覧

もっと読む

この記事の著者

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

加山 恵美(カヤマ エミ)

フリーランスライター。茨城大学理学部卒。金融機関のシステム子会社でシステムエンジニアを経験した後にIT系のライターとして独立。エンジニア視点で記事を提供していきたい。EnterpriseZine/DB Onlineの取材・記事や、EnterpriseZine/Security Onlineキュレーターも担当しています。Webサイト:http://emiekayama.net

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

山出 高士(ヤマデ タカシ)

雑誌や広告写真で活動。東京書籍刊「くらべるシリーズ」でも写真を担当。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

提供:レッドハット株式会社

【AD】本記事の内容は記事掲載開始時点のものです 企画・制作 株式会社翔泳社

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/19192 2024/03/29 12:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング