継続的インテグレーション(CI)とはチームがコードで会話すること “Communicate in Code”

アジャイル開発では、「継続的インテーグレーション」が不可欠です。
「継続的インテグレーション」とは”Continuous Integration”の訳です。
略して”CI”、または「常時結合」とも呼ばれます。
チームメンバーが書いたコードを継続的に結合し、動作不具合がないか頻繁にチェックします。
ワンチームスクラムであれば、全員で声をかけあって作業することも可能ですが、大規模スクラム(LeSS)になると、複数チームで共同しますから、今触っているコードを声をかけあって連携しあうのは不可能です。
そこで、各自の作業を定期的にメインラインに統合し、共通のリポジトリー上で総合的な挙動チェックを行います。
継続的インテグレーションにより、チーム間のコードによるコミュニケーションを可能にします。
継続的インテグレーションは、通常、自動テストも一体になっており、コードの増分を自動的にビルドし、リグレッション(回帰)テストを回し、システム一式がヘルシーに動作することを確認します。
常に動くソフトウェアを維持することで、チームのメンバーは安心してインクリメンタルなコーディングに専念することができます。
大規模スクラム(LeSS)では、具体的に以下のことを徹底します。
  • ブランチを使わない
  • 結合領域を作らない
  • メインラインに頻繁に統合する
  • メインラインで全チームの変更を一元管理する
  • メインラインで他のメンバーのコードを確認する
  • 調整が必要なら、ただ話す(Just Talk)

継続的インテグレーションはJenkins等のCI支援ツールを使って行います。プロダクトを2チーム以上にスケールする際には、品質とデリバリースピードを維持するため、継続的インテグレーションは必要不可欠な仕組みになります。