公開: 2021年10月22日
更新: 2021年10月22日
本小論においては、ソフトウェアの本質的な品質に影響を与える実現機能に対する要求が、経済のグローバル化が進展する社会においては、開発プロジェクトの進行中、経時的に変化する傾向があることを示した。そしてそれは、従来の産業化社会のような動的な変化が少なく、安定した社会におけるソフトウェア開発とは異なる特徴であることを議論した。特に、開発の途中段階における新しい要求の出現や、開発の当初には必要とされていた機能に対する要求が、社会の変化に従って不必要とされる状況など、プロジェクトの成否を左右する不測の事態を発生させる原因となる。
そのような開発すべきソフトウェアに対する要求事項が動的に変化する傾向がある環境においては、従来型の、要求事項がほとんど経時変化しない、安定した工業化社会に適した開発方法であったウォーターフォール型開発は、要求の変化に対する即座の対応が困難であると言う根本的な欠陥をもつ。逆に、要求事項が変化しない安定した社会においては、開発の効率に問題のあった段階的開発法は、新しい社会環境では、要求変化のリスクを吸収する方法として、有望な方法であると考えられることを本小論において示した。この段階的開発法を現代的に翻訳しなおし、新しい名前を冠したものが「アジャイル開発」である。
そのような意味で、アジャイル開発は、経済のグローバル化が急速に進展する21世紀初頭の世界で、経時的にソフトウェア機能や品質に対する要求が変化する環境においては、開発組織や、実際の開発作業に関わる技術者達にとって、合理的な選択となる。このような理論的背景から、アジャイル開発は、利用者の要求に適合するソフトウェアを、適切な開発予算の制約の中で、さらに開発計画の時間的制約条件を満足するプロジェクトとしての実践を可能とする。これは、プロジェクトマネジメントにおいて、プロジェクトの重要な制約と言われる、品質(quality)、経費(cost)、そして納期(delivery)を同時に達成する方法であると言える。
ソフトウェア開発が置かれている状況は、他の一般の製品が置かれている状況と本質的に差異がない。すなわち、アジャイル開発は、ソフトウェア開発のみの方法論ではなく、一般の製品開発のための新しい方法論とも言える。ある自動車メーカの電装系システムの開発者によれば、現在の複雑で高度に統合された自動車の電装系システム開発は、単に個々の部品を独立した部品として設計するだけでは十分でなく、複数の新しい部品の試作を作成して、それを統合した試作車を組み立て、実際に試験をして問題を見出し、それを改良するような設計に変更することが必要になっているとのことである。このやり方は、アジャイル開発に似ている。
現実は、2017年に我々が考えていたよりも急速に変化したようである。本小論で議論した内容が、実際に新製品開発の現場で、日々、問題解決に奮闘している多くの技術者達にも、何らかの参考、指針になることを期待する。