-SHARESHARECONTENTこんにちは、東京エンジニアのS.Wです。今日はアジャイル開発における常時結合について簡単に説明します。ここまでアジャイル開発の概要や開発手法について触れてきましたが、その根底にある目的は「顧客へ価値あるソフトウェアを提供し続けること」にあります。Integration、以下CI)とは、それを実現するための重要なプロセスになります。■CIとはCIとは、開発したコードをビルドツールを使用して、ソフトウェアの配置を自動化します。具体的には以下の作業を繰り返し自動で行います。・CIのフロー1ソースコードのコミット2ビルド3自動テスト4検証環境へのデプロイ5フィードバックフィードバックは顧客に検証環境でアプリケーションを実際に触って確認してもらいます。ここで想定通りの機能が実現されていない場合、開発者は1へ戻ってソースコードの修正を行います。一般的にはこの工程を1日に1回行い、顧客は常に最新のアプリケーションをチェックすることができます。■自動テストについて自動テストを実現するためには、JUnit(Java)やPHPUnit(PHP)などのテストフレームワークを用いてテストコードを作成します。この作業はそれなりの工数を必要とするため、それを嫌う開発者は多いです。(筆者も・・・)しかし、顧客に常に安定したアプリケーションを提供するという点で、CIを行う上で必須の要素であることは確かです。テストコードの実装時間は、不具合発生時のコード解析やデバッグ作業に費やす時間に比べれば短いものなので、頑張って書きましょう。(半分自分に言ってる)■CIのメリット・問題の早期発見こまめにコミット~テスト~検証を繰り返すことにより、どのコミットで不具合が生じたのかを把握しやすくなるので、修正コストを抑えることができます。■CIを行う上でのポイント・CIのタイミングCIを行うタイミングとしては上記フローの2~4を毎日決まった時間に行うの一般的です。この期間が空きすぎてしまうと、前回のアプリケーションからの変更が大きくなってしまい、メリットが薄れてしまいます。・CIのエラーは最優先で対応CIのフローで問題が発生するとしたら以下です。2アプリケーションのビルドエラー3自動テストが通らない4デプロイ時のエラーこれらの問題が発生したら最優先で解消に向けて調査・対応を行います。常に安定して動くソフトウェアを提供し続けることが重要です。■まとめいかがでしたでしょうか。ここまで4回にわたりアジャイル開発の基礎と開発手法について触れてきました。コンソーシアム」という団体から、認定試験が配信されています。https://agilecert.org/)試験は基礎編のレベル1と、実践・技術編のレベル2の2段階で配信されていています。本ブログで配信してきた上記内容は、レベル1の内容についてざっくりと触れてきました。レベル2の内容についても今後配信していきたいと思います。