
ソフトウェア開発はアジャイル?それともウォーターフォール?(IPAソフトウェア調査2)

IPAの調査では一番多いのはウォーターフォールで次に多いのがアジャイルで、両者の差はそれほど大きくなく、ノーコード・ローコード開発は少ない状況です。
ソフトウェア開発はこれからも統一されることなく、これらの三種の開発手法は適材適所で鼎立していくことになるでしょう。
ソフトウェアの開発手法はどうなのか
ソフトウェアの開発手法には、ウォーターフォール開発やアジャイル開発、さらに最近ユーザ企業でソフトウェアを内製化するときに使われるノーコード開発やローコード開発、コード生成AIを使った開発などがあります。
これらの開発手法はどれがいいのでしょうか。これからどうなっていくのでしょうか。
開発手法あれこれ
ここでソフトウェア開発手法を簡単に見ていきます。
(1) ウォーターフォール開発
ウォーターフォール開発は、ソフトウェア開発を複数の工程に分割して運用する開発手法です。水が上から下へ落ちる(落水モデル)ように、工程間は後戻りをしない開発です。
この手法では、次工程へ進むときに厳格に審査を行うことで、後戻りを少なくすることが重要になります。
ウォーターフォールは仕様が確定している場合は効率の良い開発になります。
# 元々のウォーターフォールモデルでは後戻りもありなのは秘密です。
(2) アジャイルソフトウェア開発
ソフトウェア開発をアジャイル(俊敏に)開発するための手法です。個別の開発手法ではなく、俊敏にソフトウェア開発する手法の一般名称で、具体的にはアジャイル開発にはスクラムやXPなどの開発手法があります。
この手法の特徴として、ソフトウェアの仕様変更を定常的なものとして受け入れ、結果的にソフトウェアを俊敏に開発することを目指しています。
# アジャイルでは開発の完成がなく、永遠に続くことは秘密です。
(3) ノーコード・ローコード開発
ノーコード開発はノーコード開発ツールを使って、設定のみでプログラミングすることなくソフトウェアを開発する手法です。ローコード開発はローコード開発ツールを使って、比較的少ないコードを作成することで、他の多くの部分はツールによって作成する開発手法です。
これらのツールはソフトウェアの対象が限定されることがデメリットですが、逆に対象が合えば効率の良い開発になります。
# 効率が悪くカスタマイズ禁止なのは秘密です。
なおウォーターフォールとアジャイルは対極的に扱われる場合が多いですが、両者の融合的な開発手法もあります。またノーコード・ローコード開発を一部分のみに採用する開発手法もあります。
ソフトウェア開発手法の状況
ここでIPAの「2023年度ソフトウェア開発に関するアンケート調査」を元にソフトウェア開発手法の状況を見ていくことにします。
なお「2024年度ソフトウェア動向調査」を現在(2024/12/25)実施中ですので、後日見ていくことにします。

IPA「2023年度ソフトウェア開発に関するアンケート調査」の結果を元に筆者が作成
この調査では一つの組織がどのような開発手法を採用しているかを尋ねたアンケートで複数の手法を回答しています。
ウォーターフォール開発が一番多く、全体の74%がウォーターフォールで開発しています。次に多いのがアジャイル開発で、全体の60%でアジャイルで開発しています。ほぼ同程度の割合になっています。一方、ノーコード・ローコード開発は全体の24%でまだ少なく補完的なものになっています。
また複数の開発手法で開発している組織も多く、ウォーターフォールとアジャイルの両方で開発しているのは全体の29%で、両方を採用している組織が一定程度あります。
以上をまとめると以下のようになります。
(1) ウォーターフォールとアジャイルは同程度に多い
(2) ウォーターフォールとアジャイルの両者を採用しているのもある程度ある
(3) ノーコード・ローコード開発はまだ少ない
これからの開発手法
現状の開発手法の分布は前述のようにウォーターフォールとアジャイルが多く、両者を採用している組織もある程度あります。
これらから、ソフトウェア開発は適材適所で開発手法を採用している状況になっています。仕様が固定的で変更が少ない場合はウォーターフォールで開発し、仕様変更が多い場合はアジャイルで開発するなどの使い分けをしています。
またアジャイルは品質が悪いという都市伝説がありますので、品質重視のときはウォーターフォールで開発するという謎の圧力が掛かります。
# この都市伝説が真実であるかどうかは、結果論でしかわかりません。
ソフトウェア開発に限らず、万能の手法がない世界では、この適材適所の原則は誰も否定できません。つまり、この混沌(カオス)の開発手法の状況はこれからも続くことになります。
# アジャイル原理主義者の方はここは軽くスルーしてください。
# アジャイルの天下統一はきっと来ます(と信じてください)。
ノーコード・ローコード開発は現状は少数なので、これから増加するのは間違いありません。コード生成AIによる開発は現状ではほとんどありませんので、今よりは増加しますが、歴史の中に消えるかもしれません。たぶん。
ということで今日辺りの結論「アジャイルとウォーターフォールは仲良く」以上です。
いいなと思ったら応援しよう!
