no image

最近耳にする事が増えてきたアジャイル開発とは

1. アジャイル開発とは

IPAでは新たな社会(Soceiety5.0)を目指す上で、ビジネスにおける新たな価値を実現するにはどうしても検証が必要になることから、何事も仮説に基づき先ずはやってみる、仮説検証型の開発(アジャイル開発)を推奨しています。

アジャイル開発とはスクラム開発に代表されるように、反復的に開発を継続する開発手法です。
影響の変化を受けにくく堅牢さが求められ、完成像がはっきりとしているシステム等は、現在採用の多いウォーターフォールモデルでの開発でも問題なさそうであるが、現実にはビジネス要件は日々変化しており、一度作成したシステムの要件が変更されないという事は稀だと考えられ、アジャイル開発の導入が現在進められています。

ウォーターフォールモデルでは設計、構築、テスト、導入と各フェーズ毎に要求と、 品質確認を開発部隊と受入部隊でしっかりと行いシステム全体の開発を進めていきます。 その為、要件の変化の影響を受けやすい開発モデルとなっています。

2. 開発手法のメリット・デメリット

アジャイルを採用する人達からは要件の変化の影響を受け易いものはアジャイルが向いているという意見が多く出されています。
要件の変化の影響を受けないものがウォーターフォールに向いているというわけではありませんが、 ”アジャイルに対する知見が少ない”、”準委任ではなく、伝統的な開発手法、請負形式で開発したい”という 理由でウォーターフォールを採用する事例は今後もある程度継続すると考えられます。
特に日本ではSIの文化が根付いていることもあり、ウォーターフォールに明確なメリットがあるわけではないが、SIer/顧客企業の双方にアジャイルの文化が浸透するには、時間がかかると考えられます。

# ウォーターフォール プロトタイプ(反復型開発手法) スパイラル(反復型開発手法) アジャイル
概要 要求定義、設計、開発、テスト、導入と作業工程毎にトップダウンで分割し作業を進める。
原則的に前工程が終了してから後工程に着手する。
設計、プログラム、テスト、プロトタイプ試用(フィードバック)の工程を
繰り返してシステムの質を高めていく開発手法。
完成するシステムをいくつかの機能毎に分割し、
要求定義、設計、開発、テストを繰返し行う手法。
期間で区切られた反復(要求定義、設計、開発、テスト)を全て同時平行で進め、
繰り返しながら開発を進める。
メリット 前工程完了後に後工程を開始することから、成果物の品質確認(その時点までの成果について開発側とユーザ側で確認する)を行いながら開発を進められる。
開発対象を初期に確定させるため、開発スケジュールの計画立案や見積りが容易。スコープが固定されており、技術が一般的に浸透しているものに向いている。
試作品を確認しながら各工程を繰り返し開発を進めるため、利用者と開発者のギャップを埋め易く、質の良いシステムを作り易い。 要求度の高い機能から設計/実装/テストを実施し、提供するため、より速い期間での提供が可能。反復ごとにプロセス改善が可能。
デメリット 工程が進むほどに前工程の修正に関わる対応コストが増加するため、手戻りにかかるコストが深刻になる。 各工程を繰り返しながら完成形を模索するため、システム仕様が多く、複雑化したり、手戻りすることも多い。区切りとなる指標を決めておかないとスケジュール・コストの肥大化に繋がる可能性が高い。 日本ではアジャイル開発の経験豊富なチーム/技術者が多くない。契約形態はその会社で採用するアジャイル手法に沿った契約形態を検討する必要がある。

3. アジャイル開発の普及度

3-1. アジャイル開発全体の普及度

アジャイルの普及度はというと日本では2018年のPMIのデータではまだ未導入が大半を占めますが、ガートナーの2019年2月のデータによると、アジャイル開発は継続/拡大の比率が他の開発手法に比べ大きく、今後は日本でも浸透が進み主流となると考えられます。


出展:ガートナー(https://www.gartner.com/jp/newsroom/press-releases/pr-20190221)

3-2. アジャイル開発の手法別の普及度

アジャイル開発の手法として採用されているものとしては、前出のPMIの資料、Google トレンドを確認しても、スクラムの採用が圧倒的です。スクラム大人気!

4. アジャイル開発の手法

4-1. アジャイルマニフェスト

アジャイルソフトウェアの目指すところについて、12の原則としてまとめられています。 アジャイル開発にはいくつもの手法がありますが、原則や価値観こそがアジャイル開発。

4-2. スクラム

スクラムガイドとしてスクラムのやり方について公式ガイドが提供されています。
公式サイトではスクラムを複雑な製品を開発/維持するためのフレームワークとして紹介されています。スクラムガイドに記載されていますが、理解は容易だが習得は困難とされています。

スプリントと呼ばれる小さな開発を繰り返し行い、1日15分程度のデイリースクラムと呼ばれる対応(今後24時間の作業計画と前スプリントの作業結果の確認)を行う事が特徴的です。


出展:scrumguides.org , scrum.org , the scrum framework

4-3. カンバン

トヨタのカンバン方式を基にするカンバンは、受け入れタスクとそのステータスを一目で見れるようにしている点が特徴です。
https://www.pmaj.or.jp/library/open/regular/reg20141219.pdf

4-4. XP

顧客が望む各機能をユーザーストーリーとして表し、優先度の高い機能から先にスケジューリングし、分析、設計、製作、テストを順に進めていきます。