アジャイル開発とは、小さく作って、確認して、直しながら進める開発方法です。
ここでいう開発とは、アプリやWebサービスなどを作ることです。Webサービスとは、インターネット上で使うサービスのことです。
たとえば、予約サイト、買い物サイト、学習サービスなどがあります。
この記事では、アジャイル開発とは何か、ウォーターフォール開発との違い、メリット・デメリット、スクラムやスプリントとの関係を、初心者向けにわかりやすく解説します。
ここだけ読めばOK
アジャイル開発とは、短い期間で少しずつ作り、確認しながら改善する開発方法です。
最初からすべてを決めきるのではなく、作りながら必要な変更を取り入れていきます。
ほかのIT用語も知りたい方は、初心者向けのIT用語辞典もあわせてご覧ください。
アジャイル開発とは
かんたんに言うと、小さく作って直しながら進める方法
アジャイル開発とは、完成までの道のりを小さく分けて進める開発方法です。
まず、一部を作ります。次に、使う人や関係者に見てもらいます。
そこで出た意見をもとに、直したり追加したりします。この流れをくり返しながら、少しずつ完成に近づけます。
アジャイルの意味
アジャイルは、英語で「すばやい」「身軽な」という意味があります。
ITの世界では、変化に合わせて動きやすい開発の考え方として使われます。
つまり、最初の予定だけにこだわるのではなく、必要な変更に対応しながら作る考え方です。
アジャイル開発を身近な例で考える
文化祭の出し物を少しずつ作るイメージ
たとえば、文化祭の出し物を作る場面を考えてみます。
最初から完璧な出し物をすべて決めるのではなく、まず小さく試してみます。友だちに見てもらい、「ここを変えたほうがよい」と分かったら直します。
アジャイル開発も、これに近い考え方です。
ITの開発では、アプリやWebサービスを少しずつ作ります。そして、実際に見たり使ったりしながら、よりよい形に直していきます。
作って、見せて、直すをくり返す
アジャイル開発では、「作る」「見せる」「直す」を何度もくり返します。
一度作って終わりではありません。使う人の声や、状況の変化に合わせて、少しずつ改善します。
アジャイル開発が使われる場面
Webサービスやアプリ開発
アジャイル開発は、Webサービスやアプリの開発でよく使われます。
アプリとは、スマホやパソコンで使うソフトのことです。たとえば、地図アプリ、家計簿アプリ、学習アプリなどがあります。
このようなサービスやアプリは、使う人の反応を見ながら改善することが多いです。そのため、アジャイル開発と相性がよいです。
変更が多いプロジェクト
プロジェクトとは、何かを作るためのまとまった作業のことです。
開発の途中で「この機能もほしい」と分かることがあります。機能とは、アプリやサービスで「できること」です。
たとえば、ログイン、検索、予約、買い物などが機能にあたります。
アジャイル開発は、このような変更に対応しやすい方法です。最初からすべてを決めきらず、必要に応じて見直しながら進めます。
利用者の声を取り入れたい開発
利用者とは、そのアプリやサービスを使う人のことです。
使う人にとって便利なものを作るには、利用者の声が大切です。
アジャイル開発では、早い段階で使える形を見せることがあります。そのため、意見を聞きながら改善しやすくなります。
アジャイル開発の進め方
アジャイル開発の進め方は、細かく見るといろいろあります。
ここでは、初心者向けに大きな流れだけを説明します。
短い期間で作る
まず、短い期間で作る範囲を決めます。
たとえば、「今回はログイン画面を作る」「今回は検索機能を作る」のように、作るものを小さく分けます。
ログインとは、IDやパスワードなどを使って、サービスを使い始めることです。
確認して改善する
作ったら、関係者や利用者に見てもらいます。
関係者とは、作る人、確認する人、使う人など、その開発に関わる人のことです。
そこで分かったことをもとに、直す場所を決めます。使いにくい部分があれば、次の作業で改善します。
また次の機能を作る
確認が終わったら、次の機能を作ります。
このように、短い期間で作って確認する流れをくり返します。少しずつ、使いやすいものに近づけていきます。
アジャイル開発とウォーターフォール開発の違い
アジャイル開発を理解するには、ウォーターフォール開発との違いを見ると分かりやすいです。
ウォーターフォール開発とは、最初に計画を決めて、上から下へ流れるように順番に進める開発方法です。
ウォーターフォール開発は順番に進める
ウォーターフォール開発では、最初に作るものを決めます。
そのあと、設計、作成、テストという順番で進めます。設計とは、何をどう作るかを決めることです。
テストとは、作ったものが正しく動くかを確認することです。学校の試験ではなく、動きの確認という意味です。
アジャイル開発はくり返しながら進める
アジャイル開発では、短い期間で作って確認する流れをくり返します。
変更があっても、次の作業に反映しやすいのが特徴です。ただし、何でも自由に変えるという意味ではありません。
違いを表で比較
| 項目 | アジャイル開発 | ウォーターフォール開発 |
|---|---|---|
| 進め方 | 小さく作って改善をくり返す | 決めた順番で進める |
| 変更への対応 | 対応しやすい | 後半の変更は大変になりやすい |
| 向いているもの | 変更が多いアプリやWebサービス | 最初に内容を決めやすいもの |
| 確認のタイミング | 短い間隔で確認する | 後半でまとめて確認することが多い |
ITパスポートの学習で、開発方法の違いもあわせて確認したい場合は、ITパスポートのマネジメント系対策も参考になります。
アジャイル開発のメリット
変更に対応しやすい
アジャイル開発のメリットは、変更に対応しやすいことです。
作っている途中で必要なものが変わっても、次の作業に反映しやすくなります。変化が多いサービスに向いています。
早い段階で使える形を確認できる
アジャイル開発では、早い段階で一部の機能を確認できます。
完成するまで待たなくても、実際の画面や動きを見ることがあります。そのため、気づいた点を早めに直せます。
利用者の意見を反映しやすい
利用者の意見を聞きながら作れる点もメリットです。
実際に使う人の声を取り入れることで、より使いやすいものに近づけやすくなります。
アジャイル開発のデメリット
全体の予定が見えにくいことがある
アジャイル開発は、変更に対応しやすい方法です。
その一方で、変更が多いと、全体の予定が見えにくくなることがあります。
そのため、何をいつまでに作るかを、こまめに確認することが大切です。
チーム内のやり取りが多くなる
アジャイル開発では、チームでこまめに話し合います。
短い期間で確認しながら進めるため、連絡や相談が大切になります。話し合いが少ないと、方向がずれることがあります。
向いていない開発もある
アジャイル開発は、どんな開発にも向いているわけではありません。
最初から決められた手順をきちんと守る必要があるものは、ウォーターフォール開発のほうが合う場合もあります。
アジャイル開発の代表的な手法
アジャイル開発には、いくつかの進め方があります。
ここでいう手法とは、「どうやって作業を進めるか」という方法のことです。
スクラム
スクラムとは、チーム全員が一丸となり、短い期間ごとに作業を進める方法です。
ラグビーの「スクラム」のように、チームで力を合わせるイメージです。
スクラムでは、役割やルールを決めます。そして、短い期間で作って確認する流れをくり返します。
カンバン
カンバンとは、作業の状態を見えるようにして進める方法です。
たとえば、「これからやる」「作業中」「完了」のように分けます。今どの作業がどこにあるかが分かりやすくなります。
XP
XPとは、よいプログラムを作るための工夫を大切にする方法です。
プログラムとは、コンピューターに出す命令のことです。
たとえば、2人1組でプログラムを書く「ペアプログラミング」という方法があります。初心者は、アジャイル開発の進め方のひとつと覚えておけば十分です。
アジャイル開発とスクラムの違い
アジャイルは考え方
アジャイル開発は、変化に合わせながら、小さく作って改善する考え方です。
大きな方向性を示す言葉だと考えると分かりやすいです。
スクラムは進め方のひとつ
スクラムは、アジャイル開発を実際に進める方法のひとつです。
チームで役割やルールを決め、短い期間ごとに成果を確認しながら進めます。
つまり、アジャイル開発という大きな考え方の中に、スクラムという進め方があります。
一言でいうと
アジャイルは「考え方」、スクラムは「その考え方を使った進め方のひとつ」です。
スプリントとは
短い開発期間のこと
スプリントとは、スクラムで使う短い作業期間のことです。
たとえば、1週間や2週間など、区切った期間を指します。その期間の中で、決めた作業を進めます。
スクラムでよく使われる言葉
スプリントは、スクラムでよく使われる言葉です。
スプリントごとに、何を作るかを決めます。そして、終わったら成果を確認し、次にどうするかを考えます。
アジャイル開発で要件定義は不要なのか
アジャイル開発では、「要件定義は不要」と誤解されることがあります。
要件定義とは、「何を作る必要があるか」を決めることです。
たとえば、予約サイトなら「日付を選べる」「予約を取り消せる」「予約内容を確認できる」などを決めます。
要件定義は不要ではない
アジャイル開発でも、要件定義は必要です。
ただし、最初にすべてを細かく決めきるのではありません。必要な内容を確認しながら、少しずつ具体的にしていきます。
要求リストにまとめて順番を決める
アジャイル開発では、作りたい機能や要望を「要求リスト」にまとめることがあります。
この要求リストは、プロダクトバックログとも呼ばれます。
プロダクトバックログとは、作りたいものや直したいことを並べた一覧のことです。今必要なことから順に、具体的に決めていきます。
最初にすべてを決めすぎないだけ
アジャイル開発では、最初から完璧な答えを決めようとしません。
使う人の声や状況の変化に合わせて、必要なものを見直します。
必要なことから順に決めていく
大切なのは、今必要なことをきちんと決めることです。
決めないのではなく、決める範囲を小さくしながら進めます。
アジャイル開発宣言とは
アジャイル開発の考え方をまとめたもの
アジャイル開発宣言とは、アジャイル開発で大切にする考え方をまとめたものです。
開発の進め方だけでなく、人とのやり取りや、変化への対応を大切にしています。
初心者は細かい文より考え方をおさえる
初心者は、細かい言葉をすべて暗記する必要はありません。
まずは、「作って終わり」ではなく、「確認しながらよくしていく」という考え方をおさえると理解しやすいです。
アジャイル開発で初心者が間違えやすい点
計画しない開発ではない
アジャイル開発は、計画しない開発ではありません。
むしろ、短い期間ごとに計画を立てます。大きく一度だけ決めるのではなく、小さく何度も確認します。
資料を作らない開発ではない
アジャイル開発は、資料を作らない開発でもありません。
資料とは、説明書や設計のメモのようなものです。アジャイル開発でも、必要な資料は作ります。
ただし、使わない資料を大量に作るより、役に立つ情報を残すことを大切にします。
スクラムだけがアジャイルではない
アジャイル開発と聞くと、スクラムを思い浮かべる人も多いです。
しかし、スクラムはアジャイル開発の進め方のひとつです。カンバンやXPなど、ほかの方法もあります。
アジャイル開発に関するよくある質問
アジャイル開発とは簡単に言うと何ですか?
アジャイル開発とは、小さく作って、確認して、改善をくり返す開発方法です。
変化に合わせながら、少しずつ完成に近づけます。
アジャイル開発とスクラムの違いは何ですか?
アジャイル開発は考え方です。
スクラムは、その考え方を使って開発を進める方法のひとつです。
アジャイル開発とウォーターフォール開発はどちらがよいですか?
どちらが必ずよい、というものではありません。
変更が多いものはアジャイル開発が合いやすいです。最初に内容を決めやすいものは、ウォーターフォール開発が合う場合もあります。
アジャイル開発に要件定義はありますか?
アジャイル開発にも要件定義はあります。
ただし、最初にすべてを決めきるのではなく、要求リストを使いながら、必要なものから順に決めていきます。
プロダクトバックログとは何ですか?
プロダクトバックログとは、作りたい機能や直したいことを並べた一覧です。
初心者は、「これから作るもののリスト」と考えると分かりやすいです。
アジャイル開発は初心者にも覚えるべき言葉ですか?
はい。ITの仕事や試験でも出てくることがあるため、基本の意味は知っておくと役立ちます。
まずは、「小さく作って改善する開発方法」と覚えるとよいです。
まとめ:アジャイル開発とは、小さく作って改善をくり返す開発方法
アジャイル開発とは、小さく作って、確認して、直しながら進める開発方法です。
最初からすべてを決めるのではなく、短い期間で少しずつ作ります。そして、使う人の声や状況の変化を取り入れながら改善します。
ウォーターフォール開発は、最初に計画を決めて順番に進める方法です。一方、アジャイル開発は、くり返しながら進める方法です。
アジャイル開発は、Webサービスやアプリのように変更が多いものに向いています。ただし、計画や話し合いが不要になるわけではありません。
スクラムは、アジャイル開発の進め方のひとつです。スプリントは、スクラムで使う短い作業期間のことです。
XPには、2人1組でプログラムを書くペアプログラミングのような方法があります。また、アジャイル開発では、要求リストを使って作るものを整理することがあります。
