by shigemk2

当面は技術的なことしか書かない

マルチステージ型継続的インテグレーションのすすめ #juc2012

継続的インテグレーションのメリット

  1. 手戻りをなくし、品質を保持する
  2. いつでもリリースが可能
  3. 作業コストの削減(開発者の作業時間を増やす)
  4. 一貫した繰り返しの作業を行う
  5. 開発データの蓄積

メリットを享受できているか

e.g. 結合ビルドで行う
モジュールA,B,C(実装→テスト→レビュー→結合→リリース)
チームごとにモジュールが開発されていて、最後に各モジュールを統合してCIを行う
テストからのフィードバックを行い開発のスピードアップを図る

問題 結合できるレベルに達していないソースが構成管理に格納されていることがある(全体としても失敗してしまう)
→こうなってしまうと、開発コストが上がり、開発スピードも下がり、プロダクトの品質が下がってしまう。

十分に成熟したモジュールを作成する必要がある

改善策はあるか
つぎの視点で見直すことが重要

この2点について、現状がどうなっているかをきちんとおさえる

マルチステージ型継続的インテグレーション

ソフトウェアの成熟度

実装、テスト、結合それぞれの段階でCIを行う
各チームのプロセスに合わせてCIを行うことで、小さなミスやエラーも早い段階で検出することが可能となる。

ビルド失敗時の影響範囲を限定的にする。

デモムービーによる説明

ツールは

ソースコード解析ツール Understand
C++test

など

チームビルド(影響力の小さいエラーを検出)
結合ビルド(アーキテクチャルール違反のチェックなど)

まとめ

段階的な継続的インテグレーションのススメ