最新記事公開時にプッシュ通知します
2025年11月20日

合同会社DMM.com プラットフォーム開発本部 エンジニア
ミノ駆動
大手電機からWeb業界へ転身。 リファクタリングやアーキテクチャ改善、若手の設計スキル育成といった、設計全般を推進する業務に従事。暇さえあれば脳内でリファクタリングしている。『良いコード/悪いコードで学ぶ設計入門』の著者。
技術的負債の分析と解消は多くの開発組織が直面する課題です。しかし、その対応は属人化しやすく、専門家のリソース不足からスケールさせるのが困難な場合も少なくありません。120名以上の開発組織のコード品質改善を1人で担うミノ駆動氏も、このスケーラビリティの壁に直面していました。
本記事は、ミノ駆動氏が開発したMCPサーバー「モディフィウス」についての発表内容を再構成したものです。モディフィウスはどのような仕組みで高精度の負債分析と設計改善を実現したのか、その開発経緯と効果、今後の展望をお届けします。
合同会社DMM.comは、DMMテレビやゲームズ、通販など、多様なサービスを展開しています。これらのサービスを下支えしているのが「DMMプラットフォーム」という、会員ID管理、決済処理、ユーザーレビュー管理など、DMMサービス全体で共通利用される技術基盤です。このプラットフォームは、基盤ごとに開発チームが編成されており、関わる開発者の人数は120名以上にのぼります。
一方で、サービス規模の拡大に伴い、このプラットフォームは年々コードの品質が悪化し負債が増大していました。この問題を解決するために立ち上げたのが「コード品質チーム」です。
正式名称は「プラットフォーム開発本部第3開発部 Developer Productivity Group コード品質チーム」。開発生産性を改善する手段は多岐にわたりますが、「コード品質の改善でソフトウェア生産性向上を図る」をミッションとしています。
ここでいう「コード品質」とは、コードの変更容易性を指します。変更容易性とは、なるべくバグを埋め込まず、素早く正確にコード変更できる度合いのことです。変更容易性に問題のあるコードは、些細な変更でバグが埋め込まれやすいため、修正には慎重な検討を要します。その結果、コードの修正に時間がかかり、開発生産性の低下につながってしまうのです。
変更容易性の高い設計を実現するために、コード品質チームはDMMプラットフォーム全体に対し多角的な支援を行っています。例えば、設計ガイドラインの策定、設計スキルの育成支援、各開発チームへの直接的な設計指導など、コード品質の向上に関わるさまざまな施策を推進しています。
こうした取り組みによって、基盤全体のコードの品質は徐々に改善しつつはありました。しかしです。
コード品質チームであるにもかかわらず、なんとメンバーは私1人しかいなかったのです。
私自身は、もっと多くのチームに対して設計支援したいと考えていましたが、正直なところ全く手が回らないのです。 だからいつも思っていました。
「わい、100人ぐらいに増えないかな」
「せや、AIにわいの分身やらせればいい」と。
この着想から開発したのが、MCPサーバー「モディフィウス(Modifius)」です。
モディフィウスは、変更容易性に関して包括的な支援機能を提供するMCPサーバーで、CursorやClaudeCodeといったAIエージェントと連携して使用します。
現状では、高精度な技術負債の分析や負債に対する設計改善の提案、高品質なテストコードの実装といった機能を中心に提供しています。
なおこの名前は、変更容易性を意味する英語「Modifiability」と、ラテン語で威厳のある男性名の語尾である「-ius」を合わせ、「変化を司る者」という意味を込めています。
従来の負債分析に使われる静的解析ツールの分析観点は、行数やコード重複の有無、引数の数など、コードから機械的に判断できる情報のみでした。なぜなら、静的解析ツールでは、コードの「意図」までは分からないからです。
それだけでは当然十分な分析だとは言えません。一方で、生成AIはコードの書かれた背景を推論し、意図を理解した上でカプセル化や技術レイヤ間の関心の分離など、高精度な負債分析ができるのです。
一例として、私の著書『良いコード/悪いコードで学ぶ設計入門』の改訂新版で取り上げている品質の悪いコードを、モディフィウスで分析させたケースをご紹介します。
このコードは、ゲームにおけるダメージ計算のロジックを記述したもので、複数目的のコードが混在しています。モディフィウスは、これらの概念を全て洗い出した上で、関心の分離という観点から「武器の耐久性に関するロジックのコード」や「スペシャルゲージに関するコード」が混在していると指摘。また、目的が異なるコードがちゃんとそれぞれカプセル化されてないこともはっきりと分析しています。
モディフィウスの分析能力は質も量もかなり優れています。400行程度のソースコードの負債を洗いざらい分析しようとした場合、私が目視で調べると熟知するドメインだと速くても15分、ドメイン理解が浅ければ30分ほどかかってしまいます。 しかしモディフィウスだと、私とほぼ同じ精度で、約20秒で完了します。なんと40倍以上の生産性で分析できているのです。さらにいまは、GitHub Actionsからモディフィウスを呼び出し、負債を定期的に計測する基盤も整備しています。
現在、DMMのエンジニア全員がモディフィウスを使える状態になっています。この分析機能について、実際に利用したエンジニアからは、「巨大クラス内で複数のユースケースが混在していることを指摘してくれた」「インフラの関心ごとがアプリケーションに混在していることも指摘してくれた」といった声や、「人間と違って、同じことを聞いても怒られないので気持ちが楽だった」というような、AIならではの利点も挙げられています。
負債分析のほか、見つけた負債に対する設計改善の提案機能も優れています。どのように改善すべきかを尋ねると、Mermaidのクラス図を含め、適切な改善案が出力されます。この設計改善機能についても「どう分割し、ビジネスロジックがどのドメインになるか、クラスの相関図をつくってくれて、正直この通りにリファクタリングするだけでも負債の解消にかなり効果あると感じた」「設計提案内容が現実的で、600行あったファイルを300行までスリム化できた」「改善後のドメインモデル図も分かりやすくレビュー時に話がしやすかった」といった、具体的な成果報告が届いています。
わざわざMCPサーバーとして用意しなくても、AIに普通に指示するだけでも上述の機能を実現できるのでは、と疑問を持つ人もいるかもしれません。しかし、AIは学習内容の平均に収斂する性質があって、ネット上の粗悪なコードも学習してしまっているのです。粗悪な学習内容に基づいた回答をしてくるということも、少なくありません。高品質な回答を引き出すには、適切なプロンプトを与える必要があります。モディフィウスの実態は、まさに変更容易性を高めるプロンプト群です。
モディフィウスは柔軟な機能拡張ができるように徹底的なモジュール化が図られています。心臓部分は「コアプロンプト」となっていて、私の変更容易性に関する思考を模倣した内容が入っています。コアプロンプトの中身は企業秘密ですので内容は明かせませんが、私のミノ駆動本がベースになっています。こうしたコアプロンプトをベースに、様々な支援機能が機能しています。さらに、新しいアーキテクチャやフレームワークの設計観点が容易に追加したり、対応するプログラミング言語を増やしたりすることも容易にできる構造になっています。
実は、最初からMCPサーバーを構築していたわけではなく、AIエージェント用のカスタムプロンプトを提供していました。しかしその場合、都度プロンプトを手動更新するという煩わしさがありました。 また、同じことはClaudeCodeなどのエージェントスキルでも実現できます。ただ、そうしてしまうと、この機能は特定のAIエージェントに強く結合してしまい、複数AIエージェントで使えなくなってしまいます。横断的に提供する手段として、MCPサーバーがふさわしいと判断し提供しております。
モディフィウスは今後さらなる機能拡張を計画しており、その開発も着々と進められています。その中でも私が最も実現したいのは「自動リファクタリング機能」です。テストコードの実装は、もはや人間の仕事ではなくなっていると思います。AIの実装精度は、すでに明らかに人間を上回っています。同じように、リファクタリングもほとんどAIにお任せできる日が来るのではないでしょうか。
モディフィウスは今後、現在のMCPサーバーという形態から「AIエージェント化」することも構想しています。AIエージェントにできれば、DMM社内での利用に留まらず、より広く利用される形にできるのではないかと考えています。もしかしたら皆さんも、広く利用できる形に、できるのではないかと考えています。もし、自動リファクタリング機能を備えたモディフィウスが、日本だけでなく世界中で使われるようになるという形になれば、負債の苦しみから、いよいよ人類が解放される日が来るのではないかと期待しています。
関連記事



人気記事