CI/CDツール導入は欧米ではすでに経営上のミッション
より早く、より良いモノやサービスを提供して競合他社より競争優位に立つ。そのために欠かせないのが、モノづくりやサービス提供を支えるソフトウェアのリリーススピードの向上である。欧米の企業ではそれを経営のミッションに掲げているため、ソフトウェア開発の現場では、CI/CDツールの導入が進んでおり、今ではどう効果を上げていくかが経営課題になっているという。
このように欧米ではすでに導入が当たり前になっているCI/CDツール。CIとは継続的インテグレーションの略で、アジャイル開発のプラクティスのひとつ。簡単に言えば頻繁にビルドやテストを行うための手法だ。「ソフトウェアをこまめにチェックすることで、手戻りの減少やバグ修正コストの削減を実現し、早期リリースが可能になります」と会田氏は説明する。一方のCDは継続的デリバリーの略で、頻繁にリリースを可能にすることができるプラクティスだ。ソフトウェアを常に本番環境に簡単にリリースすることで、ユーザーからのフィードバックを受けやすくなる。
CI/CDツールを導入するメリットのひとつは、「ビジネス上の競争優位性が高められることです」と会田氏は語る。競合他社よりも早くリリースすることで、お客さまからのフィードバックが早く得られ、お客さまにより満足いただけるモノ・サービスづくりができるようになるというのだ。
さらに開発現場においては、品質の向上や開発リソースを知的な作業に集中できるようになるだけでなく、「精神的な安心が得られる」という最大のメリットがある。書いたコードはその日のうちにチェックされて問題点が指摘されるため、リリース後に大きな障害が発生するリスクが減らせるからだ。
導入の障壁を解消する「TechMatrix Jenkins Platform Package for Java」
このようなメリットがあるにもかかわらず、日本ではCI/CDの導入がそれほど進んでいないという。その理由について会田氏は「私たちのお客さまからは、ツールを選定し、セットアップして立ち上げるのは意外に大変な作業と聞きます。だから躊躇してしまうようです」と述べる。
たとえOSSツールを自前でセットアップし、環境を作ったとしても、多くの開発現場ではCI専門のチームを抱えておらず、開発チームの誰かがビルドサーバの面倒を見ることになる。ビルドエラーが出ても、すぐに対応できず放置されたり、チェックツールの結果が多くて修正する気が起きなくなったりするという。つまり長く使うことを考慮した環境を作れずにいるため運用に乗らない。「本来のメリットを享受できず効果が出にくいのでそれ以上の投資ができず、スケールしないケースが多いのです」と会田氏は指摘する。
しかしここ最近のITの内製化の流れから、コストや効率性を考えて、自動化を進めていく機運が高まっているという。そこでテクマトリックスでは「どう導入していいかわからない」という開発現場向けに、某金融系企業に提供したCI環境構築のためのソリューションを参考に、CIの第一歩となる自動化基盤の構築を主軸に置いた環境整備のためのソリューションをパッケージ化した。それが「TechMatrix Jenkins Platform Package for Java(以下、TJPP)」だ。
TJPPは以下の内容で構成される。
- Jtest Engine ノードロックライセンス1本
- バグ検出アセスメントサービス
- Jenkinsを用いた自動化環境の構築
- 環境構築手順書の作成
- 環境構築のノウハウをレクチャー
- 構築した環境の保守サポート(3カ月間)
CIツールはOSSのJenkins、静的コード解析ツールは米Parasoft社が開発したJtestを採用。CheckstyleやSpotBugsなど、数ある静的コード解析ツールの中からJtestを採用しているのには理由がある。それは、Jtestがオープンソースのツールと比べてバグ検出の精度が高いことや同社に導入のノウハウがあること。さらに開発現場で検出したい問題に対応したコーディングルールの選定を、オプションサービスとして用意できる点もその理由だ。
また、それらのセットアップから自動化環境の構築、さらには環境構築のノウハウの伝授、保守サポートまでがパッケージ化されている。個別で構築する際に、ツール選定や評価、環境構築、保守運用という各フェーズで表れる障壁が、このパッケージを活用することでなくなるのである。