コードジンのヘッダーが入ります
CIによる開発プロセスでは、開発者が作成したソースコードをソースコード・リポジトリにチェックインすると、CIサーバによって自動的にビルド作成およびテストが行われる。その結果は迅速にEメール等でフィードバックされ、開発者はすぐにバグ・フィックスにとりかかることができる。これが仮にCIでない場合には、チェックインそのものにも時間がかかり、開発者がバグの存在を把握できるのはずっと先になってしまう。
なお、CIは必ずしも専用のソフトウェアを使うとは限らず、手動で行うケースもあるという。「いずれにしてもCIの目的は共通しており、できる限りバグを減らし、不具合によって発生するコストを削減することです」とケビン・ローレンス氏は語る。ただし、CIでは頻繁にビルドやテストを実行する必要が生じるため、ソフトウェアで自動化するのが現実的だろう。
たとえば手作業のテスト1回あたりに2分かかり、何かバグが見つかったときには、そのバグの調査をしてレポートするために、さらに10分が必要だとする。この場合、バグがなければ90分の間に45回のテストを行えるが、バグが9個見つかればさらに90分必要となり、2倍の3時間を要してしまうことになる。それがCIでテストが自動化されていれば、開発者は余計な時間をかけずに、作成したコードが壊れていないか、ビルドが健全なものかどうかといったことを迅速に把握することができる。
ケビン・ローレンス氏は『People are generally interested in being good citizens.』というAlistair Cockburn(アリスター・コーバーン)氏の言葉を紹介しながら、「開発者は常に、きちんとしたコードを作成したい、開発者として正しい仕事をしたいと望んでいます。それを迅速に行うための手助けをしてくれるのがCIなのです」と、CIの意義を述べた。
アジターソフトウェアではCIを重視した開発を行っており、CI専用のサーバが14台用意されているという。ケビン・ローレンス氏は、同社におけるCIの環境やノウハウの1部を紹介した。「テストを迅速に行えるように、できるだけ小規模なテストに分けて走らせます。そして、開発者へのフィードバックは10分以内を目安としています。開発者へのフィードバック方法も複数用意しており、たとえばバグの発生を視覚的に知らせるLavaランプやフィードバックモニターなどを設置しています」。
もちろん、Eメールによる個人へのフィードバックも行われ、ビルドの状態を一覧できるブラウザのプラグインやデスクトップ・ウィジェットなども用意されている。また、CIの代表的なオープンソースフレームワークである「CruiseControl(クルーズコントロール)」を活用し、すべてのビルドに関する詳細な履歴情報の閲覧や分析も可能だ。これらによって、開発者はより短時間で確実なフィードバックを得ることが可能となっている。
続いてケビン・ローレンス氏は、CIによって得られるメリットについて言及。「QA(Quality Assurance)への到達時点でのバグが90%減少」、「バグに関わるコストを95%削減」といったアジターソフトウェアの顧客の声を紹介した。IEEEの調査でも「36%の不具合低減」という結果が出たという。また、開発者側のメリットとしては、「より早く、より高いクオリティで、ソフトウェアをリリースできること」などを挙げた。
なお、アジターソフトウェアでは、CruiseControlをビルドインしたCI対応のテスト・ソリューション「AgitarOne」を提供している。ケビン・ローレンス氏は最後に、JUnitコード自動生成やコーディング規約チェックなどのAgitarOneの主要機能を説明し、セッションを終えた。