小さく作ってテストをくり返しながらルールを育てていく
ルール駆動開発を実現するうえでは、レッドハット社が提供する「Red Hat Decision Manager(旧 Red Hat JBoss BRMS)」の導入をおすすめする。この製品は拡張性の高いルールエンジンを使用しており、開発の推進を手助けしてくれる。
「Red Hat Decision Manager」は、業務担当者にも理解可能なフォーマットを用いた、直感的なルール実装が可能である。DMNを作成ためのエディタが搭載されているうえに、ルールをすぐにRESTサービスとして実行できるサーバー機能も提供している。
ルールエンジンを活用して業務ルールを記載することで、仕様が明確になる。非エンジニアにも理解できる形式であるため、業務担当者がルールの誤りにすぐ気付ける利点もある。また、ルールのメンテナンスも容易だ。
「ルールエンジンを使うことで、小さく作ってテストをくり返しながらルールを育てていけます。ソースコードの解析からはじめると、全ての内容を読み解きながら、不要なところを捨てていくことになります。多くの無駄が生じるのです。必要なルールだけを拾う方法でシステムを育てることで、開発工数の最適化を図ることができます」(松田氏)
また、ルール駆動開発を用いてサービスを適切な粒度で分割することで、モノリシックだったアプリケーションはマイクロサービス化していく。画面やロジック、プロセス、データアクセスといった役割ごとにサービスを分割することで、以下のような利点が生じるという。
- スパゲティコードの解消
- メンテナンス性の向上
- ウォーターフォールからくり返し開発方式へ
- 開発生産性の向上
- 分散環境に対応
「本セッションで解説したように、ルール駆動開発を導入することで開発効率やソフトウェアの品質を向上させることができます。ぜひ、みなさまの開発に役立てていただければ幸いです」(松田氏)
巨大なシステムに立ち向かう際、私たちは得てして「自分自身がすでに知っている開発手法を用いて頑張ろう」といった思考回路に陥ってしまう。だが、レガシーアプリケーションの改修において、その開発手法が有効でないケースはままある。
あたかも、大木を切り倒すために、手持ちの小さなカッターナイフを用いるようなものだ。大きな仕事に取り組む際には、適切な道具を選ぶことが鉄則である。松田氏のセッションは、その原則の重要性と、ルール駆動開発の有効性が十分に伝わるものとなった。
お問い合わせ
レッドハット株式会社