IT運用ブログ

IT運用ブログ>今さら聞けない!?アジャイルと相性バツグンのCI/CDって?

  • サービス品質
2020.08.27

今さら聞けない!?アジャイルと相性バツグンのCI/CDって?

今さら聞けない!?アジャイルと相性バツグンのCI(継続的インテグレーション)って?

執筆者紹介

こんにちは。DevOps担当の矢野です。2001年アシストに入社して以来、一貫して品質管理製品ののプリセールス、ポストセースル(トレーニング、導入支援)を担当しています。本コラムでは、各企業で取り組みが加速しているアジャイル開発について、解説していきます。

不確実なこれからに本気で対応するため、アジャイル開発がますます注目

新型コロナウイルス感染拡大もまだまだ落ち着きを見せませんが、不確実な先行きや顧客ニーズに対応すべく
アジャイルへの取り組みが広がりを見せています。

私が所属する部署では主に、システム開発時の機能テストや負荷テスト製品を扱っていますが、
「アジャイル開発に取り組みたい」というお客様の声がこれまで以上に頻繁に聞こえてきます。

感染拡大や感染防止対策が、結果として個人・企業、そして社会を取り巻く様々なことに
“大きな変化”をもたらしました。それも凄まじいスピードでです。

そんなスピードに追従できるよう、システム開発も
これまでのやりかたではなく、本気で変えていきたい・変えなければならない、という
意識の高まりを肌で感じています。

そもそもアジャイルとは?

さて、そもそもアジャイルとはいったい何なのでしょうか?

アジャイル(Agile)は「俊敏な・すばしっこい」という意味をもつ英単語です。

システム開発においてのアジャイルは、アジャイル開発・アジャイルソフトウェア開発などと言われ
「ビジネススピードに対応するために短期的なリリースを繰り返し、常に改善・いいものを目指す」
ために用いられる様々な手法や概念を意味します。

アジャイルの歴史を振り返る

アジャイルという言葉が広く知られるようになったのは、2001年に「アジャイルソフトウェア開発宣言」が
出されてからです。
1990年後半から商用インターネットが開始され、ITがビジネスの中心に
位置すると同時に、ビジネスの変革スピードがますます速くなっていき、
「アジャイルのような開発スタイルでしか生き残れない」という状況に直面したことが
この宣言の背景にあります。(主に米国企業ではありますが)

アジャイルソフトウェア開発宣言は「この手法でやるべき」と具体的に示すものではなく、
あくまで変化へ対応していくためのひとつの「考え方」です。

そしてアジャイル開発の考え方は、
・できるだけ開発するスコープを絞る
・優先度の高い機能から開発する
・変更を前提とする
・小さい開発を繰り返す
・コミュニケーションを重視

といった特徴があります

従来のウォーターフォール開発との違い

従来のウォーターフォール開発のように、目標を明確にし、順序立てて開発をするのではなく、
アジャイル開発は目的やルールを決めて柔軟に変更しながら、細かいサイクルで
開発をするというように、プロジェクトの進め方や考え方自体に違いがあります。

日本では、2005年くらいから先進的な企業が取り組み始めているなか、
不安や経験不足、本当に短期間で開発からリリースができるのかといった
懸念から、なかなかアジャイル開発に踏み出せない企業も。

一方、あまりにも拙速に事を運んでしまうと
「ウォーターフォールから脱却できない」
「スピードを重視するあまり、バグが多くなってしまう」


といった理由で、アジャイルがうまくいかず、早期リリースができないケースに陥るようです。

東京都の「あのサイト」が、実はアジャイル開発

ここで、アジャイル開発の身近な成功例をご紹介します。
3月3日に東京都が公開した「新型コロナウイルス感染症対策サイト」ですが、このサイトは1週間程度で構築されました。

このサイトでとりわけ話題になっているのが、オープンソースのソフトウェア開発プラットフォーム「GitHub」で開発された点と、同サイトのソースコードを公開し、他の行政機関や開発者が同様のサイトを作れるようにしている点です。ソースコードをオープンにするのは行政機関としては異例らしく、国内外50以上の地域が東京都のソースコードを利用しているそうです。

また話題を集めただけでなく、GitHubに自ら修正を加えた方も多く、1ヵ月でソースコードが修正された回数は1720回、1日平均60回近い修正がされたことになります。

アジャイル開発の非常に良い事例でしたのでご紹介しました。

※東京都新型コロナウイルス感染症対策サイトより(画面は2020年8月12日時点のイメージ)
https://stopcovid19.metro.tokyo.lg.jp/

アジャイルを実現するための様々な「やりかた」

アジャイル開発を実現するためには様々なやりかたがありますが、
うまくいくためには、
「みんなで協力してゴールに向かっていこうという、組織づくりやコミュニケーション
「ちゃんと動く機能を、高速にリリースするための技術」の両輪が揃わなくてはいけません。

●組織づくりやコミュニケ―ション例
・スクラム
・チームの自己組織化
・朝会
・見える化



●確実に高速にリリースするための技術例
・CI/CD(継続的インテグレーション/継続的デリバリー)
・テスト駆動開発
・エクストリームプログラミング


アジャイル開発のやりかたの1つ、スクラムとは?

アジャイル開発を実現するやりかたで、もっともポピュラーなのは
スクラムというフレームワークを用いる方法です。
スクラムとは、「チームでアジャイル開発を円滑に進めるためのフレームワーク」です。

あくまでフレームワーク(枠組み)なので、具体的な開発技法を掛け合わせて
実践していくことになります。

スクラムではスプリントと呼ばれる
動作する機能を生み出すための2週間~最大4週間の短い時間枠が定義されており
そのスプリントを複数回繰り返し、システムをリリースしていきます。

たった数週間しかない中で、複数のエンジニアが作ったプログラムをインテグレート・テスト
するわけですから、すべてを手動でやっていたら到底間に合いません。

スクラム(アジャイル)と相性のいいCI/CD

そこで、注目を集めるのが「CI/CD」です。
CI(継続的インテグレーション)とは、コードに変更があると、ビルドからテストまで
自動化する仕組みのことです。

個々のプログラムからなるシステムは、実際にインテグレートして動かすまでは
何がおきるかわかりません。
大量のコード変更ののちにインテグレート・テストして
バグを発見しても、原因究明は困難を極めます。

CI(継続的インテグレーション)を取り入れることで、コードを変更するたびにビルド・テストが自動で
実行されるので、問題を即座に発見しやすく、また原因究明の範囲も限られるため
開発にかかる時間は大きく削減
できます。
アジャイルの本質である短期的な開発を繰り返す、と非常に相性がいいわけです。

またCD(継続的デリバリー)では、テストをパスしたシステムを自動で実稼働環境にリリースできる
状態にすることができます。

CI/CDともに、まったく新しいやりかたを取り入れるのではなく、
「これまで手動でやってきたことを自動化する」というシンプルな仕組みというのも
大きなポイントではないでしょうか。

CI/CDの実現は大変?立ちはだかる壁

アジャイル開発の実現に、スクラムとCI/CDの組み合わせが有効だということがお分かりいただけたかと思います。
しかし、CI/CDを手軽に実現できるかというと、そうではありません。

その大きな理由に、CI/CD実現のためには多くのツールが必要である、ということが挙げられます。
CIを実現するだけでも
「バージョン管理ツール」「ビルドツール」「テストコード(テストツール)」「CIツール」が
必要です。部分的にバージョン管理ツールやCIツールを導入されている方は多くいらっしゃいますが、2週間から1ヵ月で成果物を出すようなところまで実現されている方は少ないです。

「部分的に」と述べましたが、CI/CDの本来の目的はプロセス改善です。にもかかわらず、部分的なツール導入に終始するケースが少なくありません。
CI/CDを実現するには、プロセス改善とそれを叶えるツールの両方が必要なのです。

CI/CDからアジャイルの1歩を始めてみませんか

さて、アジャイルを実現するためのやりかたは色々ありますが、
まずはCI/CDでアジャイル開発の1歩を進めてみませんか?

アシストでは、
CIを手軽に試せるスターターキットやCD実現のためのソリューション、
そして、アジャイルを受け入れる体制づくりからサポートするサービスなども
提供していますのでお気軽にご相談ください。

CIを気軽に試せる!CIスターターキット

いざCIを触ってみたくとも、環境を作るための予算がない、時間がない、知識がない、と始めるまでのハードルは意外と高いもの。 それを解決するため生まれたのがこのソリューションです。
このソリューションでは、CIお試し環境をまるごとご提供いたします!

アプリケーションデリバリー自動化ソリューション

アプリケーションをデリバリーするために必要なテストは、環境の準備、データの準備、大量テストケースの実行と何かと手間がかかります。このソリューションを活用し、そんな面倒な作業は全て自動化してしまいましょう!

アジャイル価値共創サービス

アジャイル実践にあたって、不可欠な組織の体制づくり。アシストでは体制整備を徹底的にサポートします!「知る・ためす・実践する・標準化する」という4段階で、オープンソースも活用しながら、「勉強会」「ハンズオン」「共同技術検証」「バリューストリームマップ作成支援」「スタートアップ支援」「スクラムガイド作成支援」の6コースを提供します。

【図解】アジャイルやスクラム、CI/CDに関するダウンロード資料公開

本コラムでまとめたアジャイルとスクラム、CI/CDの関係性や、気軽にCIに取り組めるCIスターターキットなどのご紹介を1つの資料にまとめました。お気軽にダウンロードしてください。


執筆者へ聞いてみたいことや、ご依頼はお気軽にお問い合わせください

本コラムの執筆者へのご質問やご依頼は、下記ボタンよりお気軽にお問い合わせください。

執筆者からのひとこと

Web会議システムって色々な使い方がありますね。弊社ではZoomを使っていますが、レコーディング機能がとても便利です。Web会議の議事録代わりになるばかりか、セミナーの練習にも使えるんです。私も、セミナー練習のために何回か使いました。が、自分の声を録音して聞くと、何か新鮮というか気持ち悪いというか…。
でも、言っていることが正しく伝わるか練習するには、とても便利です。これからも使おうと思います。

関連している記事

ページの先頭へ戻る