2023年12月1日

ナレッジ

開発手法の変遷からその未来について、考えてみた

Miyuki Tanaka

はじめに

皆様は、開発手法、というと何が思い浮かびますか?

ウォーターフォールとアジャイル、これがよく出てくるのではないかと思います。

多分私がもしクイズ番組に出て、「開発手法5個答えてください」と言われたら、最初にこの2つを言う気がします。

しかし実際、開発手法は様々なものが存在していると思います。今回、その歴史を簡単に紐解きながら、開発手法の違いや、今後について考察してみたいと思います。

システム開発手法の変遷について

開発手法の始まりは、プログラミングの始まりに起因します。

チャールズ・バベッジが設計した「解析機関」と呼ばれる機械式汎用コンピューターが誕生したのが1830年頃のこと。完成には至らなかったものの、これが世界初のコンピュータープログラムといわれています。

そこから100年以上経過した、1940年頃、電子式コンピューターが開発されはじめ、「プランカルキュール(Plankalkül)」⋆、「フォートラン(FORTRAN)」と呼ばれるプログラミング言語が次々生み出されていきました。

⋆…「Plankakül」は未完成となったため、実際に使われた言語は「FORTRAN」が初めて。「FORTRAN」は世界初の高水準言語とされています。

ウォーターフォール開発の概念が提唱されたのは1970年のこと。この手法が取り扱われるようになったことにより、「前工程で決定した後に、次工程へとうつる」という認識が共有されました。

ただし、この共有された認識の重要性はIT部門以外には伝わらず、結局、経営者や顧客の意向により、前工程へと戻らざるを得ない状況になってしまうということは、当時から問題視されていたといいます。

1980年頃には、システムの開発を短期間で行う必要性が認識され、ウォーターフォール開発だけでは対応できないことがわかり、1990年頃よりプロトタイピングやスパイラル開発手法が普及しました。同様に1990年代にはアジャイル開発の原型ともいわれるエクストリーム・プログラミング(XP)が提唱されています。

アジャイル開発という概念が生まれたのは2001年のこと。スクラム、エクストリーム・プログラミング(XP)、ユーザー機能駆動開発(FDD)などのフレームワークを統一する概念を、アメリカ・ユタ州の17人の技術者がアジャイルソフトウェア開発宣言として出したのが始まりです。

そして、その後生まれたのが、DevOpsの概念です。2009年の「Velocity2009」というイベントの中で、「開発(Development)と運用(Operations)が協力することで、1日に10回以上のペースでデプロイが可能になること」を紹介したのがきっかけとなりました。

このように、開発手法は、より効率的な開発をするために進化を遂げてきました。このことからも、それぞれの開発手法にはそれぞれの利点があって生み出されてきたことがわかります。

では、これらの開発手法はどのような特徴があるのでしょうか。各開発手法の特徴については、次の章で考えていきたいと思います。

アジャイル開発とほかの開発手法の違い

今回は開発手法として、以下の5つの手法を取り上げたいと思います。

ウォーターフォール開発

ウォーターフォール開発は、滝の水が上から下へと流れていくように、作業工程を順に進めていく開発手法です。

要件定義や設計に時間をかけ、工程ごとにミスや不具合がないか確認しながら進めていくため、修正の規模を抑えることができるのも特徴です。

ウォーターフォールの利点は前述した通り、工程ごとにミスや不具合がないか確認して進めていき、手戻りを前提としない開発手法のため、向いているシステム開発もあります。ウォーターフォール開発には、大規模基幹システムなどの仕様変更を伴わない開発に適しています。

アジャイル開発

アジャイル開発は、システムの各機能ごとに計画、設計、実装、テストといった開発プロセスを短期間のサイクルで繰り返していく開発手法です。先述したように、より効率のいいシステム開発手法はないかと模索した結果生み出された開発手法であり、プロダクトの価値を最大化するために変化することが前提となっています。

さらに、アジャイル開発の場合は、前述したエクストリーム・プログラミング(XP)、スクラム、ユーザー機能駆動開発(FDD)といった、複数の手法に分かれます。

アジャイル開発手法が適したシステムは、ユーザーニーズにマッチした商品・サービスをいち早くリリースして、ブラッシュアップしていくような企画・開発が求められるシステムだとされます。

スパイラル開発

スパイラル開発手法では、機能ごとに要件定義や設計、開発、テスト、評価、改善の工程を繰り返し、プロダクトの完成度を徐々に上げていきます

スパイラル開発においてもプロトタイプの作成が行われます。

ウォーターフォール開発では難しい、顧客からの細かな変更希望が対応できるように、毎回必要な機能を一通り搭載したプロトタイプを定期的に制作する必要があるため、コストがかさみます。

プロトタイピング開発

プロトタイピング開発もまた、ウォーターフォール開発を改良した開発手法で、アジャイル開発手法の一種です。システムに組み込む前のプロトタイプ(試作品)を作成します。そのプロトタイプを評価、テストを繰り返していき、最終的な完成を目指します

リーン開発

リーン開発(または、リーンスタートアップ開発といいます)は、必要最低限の機能を備えたプロダクト(MVP)の作成によりコストを抑え、顧客の声を聞いて何度も改善を重ねる、リーンの考え方を用いた開発手法です。リーンは「乏しい」、「限られている」、「無駄のない」といった意味合いを持つ言葉で、無駄なく「構築→計測→学習」というサイクルをできる限り短い時間で回します。ここまでであれば、プロトタイピング開発と大差ないように思われますが、プロトタイピング開発は基本的に評価を自社内で行うことをイメージしており、リーン開発は、MVPといわれる必要最低限の機能を持たせた製品をターゲットとなる市場に投下し、ユーザーに体感してもらいながら、その反応、評価を得ることを目的にしています。

新規事業への挑戦をする際に、このリーン開発手法をとるのは適しています。幾度か、MVPといわれる必要最低限の機能を持たせた製品の作成を行うことで、新規事業実現のために無駄を省きながら、製品開発を進めることが可能です。

ソフトウェア開発手法の未来について

今回、このように変遷と利点をまとめていく中で、非常に興味深いのは、周りへの理解を求めるのではなく、「IT部門」が自ら変わろうという考えから様々な開発手法が生み出されていることです。変えられないものは他人であり、変えられるものは自分であるという考えとしても理にかなっていると感じます。

経営者や顧客の理解がなければ、ウォーターフォール開発はなしえない。であれば、経営者や顧客に寄り添っていくためには、柔軟な対応ができる開発が必要だと、試行錯誤した結果が、アジャイル開発です。そのように考えていくと今後も、いかに周りが快適な状態で開発を進められるかということにシフトした開発手法が徐々に増えていくのではないかと思います。

AIもコードがかける社会へとシフトしてきた現代において、AIを上手に活用した開発手法の誕生も間近ではないかと感じます。いかに技術を駆使して、すべての人にとって快適で効率的で、最終的に良いプロダクトを開発できるかということを考えていくことが非常に重要であると感じています。

最後に

アイスリーデザインはお客様のDXを支援するデジタルイノベーションパートナーです。アイスリーデザインではデザイナーとエンジニアが連携し、お客様の要望に合わせた最適な開発手法を用い、戦略設計からデザイン、開発、グロースまで支援いたします。DX、開発など、ご検討中の方はぜひこちらからご相談ください。

Miyuki Tanaka

Miyuki Tanaka

おすすめの記事

Recruit

アイスリーデザインでは

一緒に働くメンバーを募集しています

採用情報はこちら矢印