アジャイル (agile) とは「素早い」「機敏な」という意味。
アジャイル開発とは、
●短期間でリリースできる
●開発途中の変更にも柔軟に対応できる
具体開発のやり方・考え方です。
従来:「素早くない」「機敏ではない」けど、完璧を目指す [ウォーターフォール開発]
これまでシステム開発は [ウォーターフォール] という開発手法を採ってきました。
システム開発には大きく「要件定義」「設計」「開発」「テスト」という工程があります。
ウォーターフォールは「1つの工程が完成したら次の工程へと移っていく開発手法」であり、上流から下流へと戻らず進んでいくため「ウォーターフォール(滝の流れ)」と呼ばれています。
●一つの工程が完了しないと次に進まない [素早くない]
●途中変更が起きても後戻りしない [機敏ではない]
完成まで時間がかかる手法ですが、ミスなく完璧なシステムを作り上げるために産まれた開発手法です。
「素早い」「機敏」だけど、完璧は目指さない [アジャイル開発]
ウォーターフォール開発は、1つの工程が終わったら次、と進める開発手法。
対するアジャイル開発は、機能ごとに開発を分けて工程を回し、あとですべての機能をがっちゃんこする開発手法です。
機能ごとに開発を回すことでウォーターフォール開発と違ってくる点は2つ。
1点目は、完璧を目指さないところ。[素早い]
重要な機能だけ作りこんだらリリース。残りの機能は追ってアップデートしていくという考え方です。そのため[素早い]リリースが可能になります。モノによりますがウォーターフォールではリリースまで2年かかっていたところを、アジャイル開発では1ヵ月でリリースすることも可能です。
2点目は、変更に柔軟に対応できるところ。[機敏]
機能ごとに開発を回しているので変更対応が比較的容易です。ウォーターフォール開発は「前の工程に戻らない前提」なので、どんなに小さな変更でも基本的には受け付けません。どうしても変更が必要な場合、全体スケジュールのまき直し、すべての工程のストップが必要になります。
シンプルに「機能ごとに開発」というやり方に切り替えただけで、従来のウォーターフォール開発とは大きく異なってきます。
それぞれの違いを「車の製造」に例える
ウォーターフォール開発の場合
>1mmのミスなく完璧な車が出来上がったらリリース
アジャイル開発の場合
>社内オーディオ、車体デザイン、エンジンの燃費効率がまだ未完成
それ以外、重要な部分は完成しているのでリリース
未完成部分は追ってアップデート予定
こうしてみると、アジャイル開発の方があきらかに不自然。リリース後アップデートしていくからといって半端な車が堂々と売り出されていたら…売行きも評判も燦燦たるものになるでしょう。
ですが、WEBサービス・プロダクトという領域においては、むしろアジャイル開発の方が自然です。WEB上でいつでもアップデート可能だからです。ウィンドウズが自動アップデートされていくのと同じで、ずっと進化していく前提です。
つまり、リリース時がマックスではなく、むしろスタートなのがWEBのシステム・サービス・プロダクトの特徴であり、開発手法はアジャイルの方が適しています。
まとめ
アジャイル開発とは「素早く」「機敏」に進める開発手法。機能ごとに開発を回していき、あとでがっちゃんこするやり方です。
そのため、
a.重要な機能だけ作りこんで、最短リリースを目指せる
b.機能ごとに開発しているので、変更対応も全体を止めることなく、各々柔軟に対応できる
ただし a. の考え方は、受け入れられる企業・受け入れられない企業で分かれます。
またアジャイル開発は、内製でなければ十分対応できない手法でもあり、自社にエンジニアを雇用できる会社じゃないとむずかしいため、すべての会社がアジャイル開発を実施できるわけではないという実情もあります。
「DXはアジャイル開発でなければならない」と考えると行き詰ります。それぞれの開発手法を理解することでどう活用していくのが適切かを考える方がよいでしょう。
執筆者
リビルダーズ編集部