特集

ITよもやま話

生産性向上のための“CI”=“継続的インテグレーション”

技術本部 情報技術戦略部 技術知財企画課 兼 デヴェロップメントセンター 開発管理課 村瀬 芳生

 IT業界において、特にアプリケーション開発の分野では、「生産性向上」「開発効率化」といった言葉をよく耳にする。平たく言えば、「開発のムダを省いてコストを下げる」ということである。
 言葉にするのは簡単であるが、実現はなかなか難しい。IT業界はこの問題を常に追求していると言ってもよい。本稿では、その手段のひとつであるCI(継続的インテグレーション、常時結合)を取り上げる。
 単純だがその効果は大きいので、是非とも活用してほしい。

* * * * *

 図は、プログラム開発の流れを示したものである。実際にはプロジェクトの規模や都合によってさまざまであるが、おおよそこのような流れであろう。
プログラム開発の流れ
 CIとは、簡単に言えば「間違いに早めに気づく仕組み」であり、主として「製造」と「結合テスト」フェーズのコストを下げるための方策である。
 一般的な開発スタイルの製造フェーズでは、各開発者が作成したプログラムをリポジトリ(貯蔵庫)と呼ばれる専用サーバーに格納(コミット)する。

製造フェーズ
製造フェーズ
 この時点でのプログラムは、各開発者が手元の開発環境にて単体テストを実行し、成功を確認済みのものである。各開発者の単体テスト済みプログラム(モジュール)が出揃ってから、次の結合テストフェーズに入る。結合テストフェーズでは、リポジトリに格納されたプログラムを、結合してテストする。

結合テストフェーズ
結合テストフェーズ
 設計が完璧で、プログラムが設計通りに作られていて、なおかつ単体テストがすべて成功していれば、この結合テストはすべて成功するはずである。
 しかし、現実はそうではない。設計の考慮漏れ、開発者間の解釈の齟齬、単体テストのケース漏れといった「間違い」は珍しいものではなく、必ずあると考えるべきである。
 結合テストで問題が発覚し、開発者にフィードバックされ、それを受けて開発者が修正し、再度結合テストを行う・・・・という流れになる。いわゆる「後戻り」という好ましくない事象が発生することになる。

結合テストフェーズ結合テストフェーズ
 この「後戻り」のコストが、時には大きなものになってしまう。設計のやり直し、要件の再定義まで必要になるかも知れない。そのような潜在的な問題に早めに気づくことができれば、後戻りは小さくて済むはずである。
 それを実現するのがCIである。CIの導入によって、プログラムを結合させたビルド(構築)やテストを「頻繁に」実行し、結合テストより前の「製造」フェーズにて問題を顕在化させることが可能となる。

製造フェーズ・CI導入製造フェーズ・CI導入
 この図はCI実現の一例である。
 この例では、開発者がプログラムをリポジトリにコミットしたら、すぐにビルド・テスト実行し、結果を開発者に通知している。結合テストも可能なものはここで実行してしまえばよい。これによって、従来は結合テストフェーズで初めて発覚して大きな後戻りになってしまうような問題が早めに顕在化し、小さな後戻りで済む、ということが期待できる。
 ここで重要なのが、「自動化」である。頻繁にビルドやテストを人の手で実行していてはかえってコストが増加してしまう。「自動化」の実現にはCI支援ツール(CIサーバー)を導入することが大前提となる。CIサーバーを導入することで、「自動的に」かつ「頻繁に」実行することが可能となり、製造フェーズと結合テストフェーズの大幅なコスト削減が期待できる。
 もちろん、CIサーバーの導入にはコストが必要になるが、最近はオープンソースのCIサーバーが普及しつつあり、安価に導入することが可能となっている。
 興味を持たれた方は、「継続的インテグレーション」「CI」といったキーワードで検索されたい。CIが定着すれば、大きな効果を上げることができるだろう。

* * * * *

 間違いは無いに越したことはない。それを減らす努力は当然であるが、それでも間違いはなくならない。間違いをいかに早く見つけるか、その影響を小さくするか、それが開発コストの削減になり、「開発効率化」につながる。開発の現場、ひいてはIT業界は、日々こうしたコスト削減の努力を続け、より品質の高いプログラムを産み出そうとしているのである。

(2011年05月16日)

本ページ上に記載または参照される製品、サービスの名称等は、それぞれ所有者の商標または登録商標です。
当コラムは掲載した時点の情報であり、閲覧される時点では変更されている可能性があります。また、当社は明示的または暗示的を問わず、本コンテンツにいかなる保証も与えるものではありません。

ページトップへ戻る

JSOLへのお問い合わせ

最新のインタビュー

クラウド時代のシステム運用の管理・監視ビジネスを構築する

"JSOLとしてのシステム運用の管理・監視で新たなビジネスの構築に取り組んでいるITアーキテクトをご紹介します。

特集

特集SAP

SAP ERPの豊富な導入実績があり、企業の業務改革を総合的にご支援します。

特集Biz∫

人とシステムの融合による業務効率化を目指し、あらゆる企業の変革を迅速かつ確実に実現します。

特集オムニチャネル

コンサルティングからソリューションまでオムニチャネル化に向けた最適なご支援を提供します。

特集JSOLアグリ

農業生産に係る数理計画を中核に、農業生産者の経営指標の見える化と収益拡大を実現します。