Print

アジャイル開発と、ウォーターフォール開発の違い~IoT開発に適しているのはアジャイル開発~


IoTのアプリケーション部分、どうやって開発する?

IoTには、ソフトウェアの部分があります。ソフトウェアはIoTプロジェクト全体をコントロールする上でも重要な機能を持ちます。
そのソフトウェアの開発手法で注目したいのが、アジャイル開発手法です。アジャイル開発手法は、プロジェクトを最初に要件定義(※)してしまうのではなく、小さなブロックにわけて、徐々に機能をリリースしていくものです。
これならば、最初に要件定義が厳密に100%決まっていなくとも、開発して完成するごとに、機能追加をしていけばいいのです。
アジャイル開発手法は、スピード感の必要なベンチャー企業やスタートアップ企業の開発に適しています。
その代わり、全体の開発費用の見積もりが難しく、時間制で単価を決めるなどの工夫も必要です。
では、アジャイル開発手法がIoTにどれだけ適しているか、見ていきましょう。

注※要件定義とは、システム開発を始める際に「そのシステムで何がしたいか」という目標を元に、機能や性能などを明確にする作業のこと。


アジャイル開発手法と、ウォーターフォール開発手法の違い

アジャイル開発手法と、よく対比されるものに、ウォーターフォール開発手法があります。
ウォーターフォール型は従来のソフトウェア開発でよく使われている手法で、幅広く適用されています。
ウォーターフォール型は、事前に要件定義をすべて決定してしまいます。
アジャイル開発が、全体の70%しか要件定義がなされていなくとも、プロジェクトをスタートできるのに対して、ウォーターフォール型は事前に100%、要件定義を行ってからプロジェクトをスタートします。
要件定義、開発、実装、テストの工程がすべて決定し、それぞれ担当者が別々に存在しているのも特徴です。

Basic RGB

まずはプロジェクトマネージャーが要件定義を行い、システムエンジニアが設計を行います。
プログラマーが実装を行って、テストはテスターが行います。
このように、プロジェクトの工程ごとに、活躍するメンバーが違ってくるのも特徴です。もちろん、中小企業のプロジェクトでは、一人のメンバーが複数の工程を担当することもあります。
ですが、大企業のプロジェクトなどになると、プロジェクトリーダーが要件定義、正社員の本社従業員が設計、子会社や協力会社の正社員が実装、派遣社員がテスト工程など、関わってくるメンバー、チームが大規模になることもあります。
ウォーターフォール型には、数多くのメンバーが必要になり、人材の面からも多大なリソースを消費します。

いっぽうのアジャイル開発手法は、チームの規模が小さく、小規模な開発、実装、テストをイテレータ(反復)として繰り返していくため、メンバーはプロジェクトで変わりません。
また、全体の工程も、アジャイル開発では、短期間で次々と機能をリリースしていくため、全体の工程を見直すのが容易です。
いっぽうのウォーターフォール型は、前のプロジェクトの工程が遅れれば遅れるほど、全体の進捗が遅れていきます。


アジャイル開発手法のメリット

アジャイル開発手法のメリットは、まず小さなプロジェクトメンバーでスタートできるところです。
これまでの開発で気心の知れたメンバーと開発を行えば、コミュニケーションコストも最小限で済みます。
社内の最小単位のリソースで開発を行うことができるため、スピーディな開発が可能です。
アジャイル開発は、次々とリリースを行っていき、柔軟に仕様変更へ対応できます。
そのため、製品の市場での反応を見ながら開発を柔軟に行っていくスタートアップ企業などの開発に向いています。

また、アジャイル開発手法は、やればやるほど、プロジェクトが後工程になればなるほど、スピーディに開発を行うことができます。
コミュニケーションコストも下がっていますし、開発リソースをそれほど食いません。
こういった点でも、スピードを重視する小規模なスタートアップ企業などはアジャイル開発を抵抗なく受け入れることができます。

agile


アジャイル開発のデメリット

こんな魅力的なアジャイル開発手法ですが、実際の日本のソフトウェア開発の現場ではほとんど導入されていません。
理由は、アジャイル開発手法は、プロジェクトが進んでいく中で仕様を決定していくため、最初にプロジェクトの全体像が見えず、予算の見積もりを出すのが困難だからです。
日本の大企業の開発の現場では、最初に予算が決定し、プロジェクトの公募に入札していきます。
そのため、プロジェクトの全体像が見えていないアジャイル開発手法は、大企業などのSIerでは導入しづらいという弱点があります。そのため、あまり広く普及はしていません。
ですが、システム開発に関わりのある人の多くが、アジャイル開発のメリットについて知っています。


ウォーターフォール開発のメリット

いっぽうのウォーターフォール開発のメリットはどこにあるのでしょうか。
前述のとおり、ウォーターフォール型は最初にすべてをしっかりと計画立ててプロジェクトに線引し、その計画にしたがって開発を続けていくものです。
そのため、見積もりなどを出しやすく、最初にスケジュールの全貌が見えているのがメリットです。開発スケジュールに対して順調なのか遅れているのか分かりやすく、あらかじめの計画に沿っているのかどうかを確認しやすいのです。
大規模開発に向いているため、大手のSIerなどでは、これらのウォーターフォール開発が採用されています。

waterfall


ウォーターフォール開発のデメリット

日本のソフトウェア開発の現場で多く用いられているウォーターフォール開発ですが、欠点もあります。
最初にすべてを決めてしまい、仕様なども全部決定しているため、途中で仕様変更があれば、最初から手直しになってしまうのです。その結果、予算がふくれ、スケジュールが大幅に後ろにずれてしまうとリリースが遅れていきます。
大抵は上流工程での要件定義や設計が遅れ、その影響でプロジェクト全体のスケジュールが遅れることになります。日本中で、こうしたプロジェクトの遅れにより赤字になってしまった「デスマーチプロジェクト」が誕生し、下流のエンジニアやテスターが悲鳴を上げ、時々メディアで話題になります。
これらは、最初にすべてを決定し、予算もスケジュールもかっちり決まっているウォーターフォール開発がもたらしたもので、大きなデメリットといえるでしょう。


IoTの開発には、アジャイル開発とウォーターフォール開発のどちらが向いている?

さて、IoTのソフトウェア部分の開発には、アジャイル開発とウォーターフォール開発のどちらが向いているでしょうか。
IoTの開発リリースを想像してみましょう。
最初にプロトタイプ製品を開発し、テストや市場での反応をみて、追加の機能をリリースしていくことも多いでしょう。
そのため、仕様変更が柔軟にできて、プロトタイプの開発が容易な、アジャイル開発が向いているのではないでしょうか。
ただし、アジャイル開発手法を知っているエンジニアは多くとも、実際にやったことのあるエンジニアは少ないため、開発の最初は、多少のコミュニケーションコストや知識の共有などに時間がとられることは覚悟したほうがいいでしょう。
ですが、IoTのソフトウェア開発をアジャイル開発で行ってみる価値は十分にありそうです。


PR:エスキュービズムのインテグレーション事業

こうしたアジャイル開発手法を用いて、実際にIoT開発やインテグレーション・プラットフォームの構築に取り組んでみるのはいかがでしょうか。
株式会社エスキュービズムでは、ECサイトの構築から始まり、店頭POSシステム、 アプライアンス(家電)の製造・販売など、独自の視点で開発を行い今までその業界にはなかった製品を生み出してきました。 そして創業から10年をかけて、「ハードウェア」「ソフトウェア」「デジタル」「リアル」という21世紀で求められるビジネスプラットフォームを構築してきました。
こうした「エスキュービズムプラットフォーム」を活用し、モノ、IT、リアル、デジタルなどあらゆる垣根を融合していくことで、業界や企業の課題解決へ導きます。
integration_bnr
button05_toiawase_05

関連記事

訪日外国人客が集まる街へ インバウンド地方創生プロジェクト
エスキュービズムニュースレター!
IoT用語辞典
お役立ち資料
無料ダウンロード
ページ上部へ戻る

運営者

  • 株式会社エスキュービズム
  • 〒105-0011 東京都港区芝公園2-4-1芝パークビル A館 4階
  • TEL : 03-6430-6730(代表)
  • HP:https://s-cubism.jp/